Use generic ClassLoader so we can use our own HelmaClassLoader.

This commit is contained in:
hns 2002-11-29 17:54:20 +00:00
parent 0aa65b8683
commit 148cd5de94
3 changed files with 26 additions and 10 deletions

View file

@ -53,7 +53,7 @@ public class ESBeans extends ESLoader {
*/
public ESBeans(String packageName,
ESBeans previousPackage,
LocalClassLoader classLoader,
ClassLoader classLoader,
Evaluator evaluator) {
super(packageName,previousPackage,classLoader,evaluator);
}
@ -94,7 +94,7 @@ public class ESBeans extends ESLoader {
throw new EcmaScriptException("Missing class directory or jar file name");
}
String directoryOrJar = arguments[0].toString();
LocalClassLoader classLoader =
ClassLoader classLoader =
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
return new ESBeans(null, null, classLoader, evaluator);
} else {

View file

@ -56,7 +56,7 @@ public abstract class ESLoader extends ESObject {
// Incremental package name
protected String packageName = null;
protected ESLoader previousPackage = null;
protected LocalClassLoader classLoader = null;
protected ClassLoader classLoader = null;
// the non compatible flag
static private CompatibilityDescriptor nonCompatible =
@ -70,6 +70,14 @@ public abstract class ESLoader extends ESObject {
super(null, evaluator);
}
/**
* To contruct the Bean or Package object with a specific class loader
*/
public ESLoader(Evaluator evaluator, ClassLoader loader) {
super(null, evaluator);
this.classLoader = loader;
}
/**
* To construct a bean or package sub-object (with a specific
* partial or complete package name
@ -80,7 +88,7 @@ public abstract class ESLoader extends ESObject {
*/
public ESLoader(String packageName,
ESLoader previousPackage,
LocalClassLoader classLoader,
ClassLoader classLoader,
Evaluator evaluator) {
super(null, evaluator);
this.packageName = packageName;

View file

@ -43,6 +43,14 @@ public class ESPackages extends ESLoader {
super(evaluator);
}
/**
* Create the top level package loader (object Package)
* @param evaluator the evaluator
*/
public ESPackages(Evaluator evaluator, ClassLoader loader) {
super(evaluator, loader);
}
/**
* Create a new package loader or package prefix
* @param packageName The extension of the package name
@ -52,7 +60,7 @@ public class ESPackages extends ESLoader {
*/
public ESPackages(String packageName,
ESPackages previousPackage,
LocalClassLoader classLoader,
ClassLoader classLoader,
Evaluator evaluator) {
super(packageName,previousPackage,classLoader,evaluator);
}
@ -117,7 +125,7 @@ public class ESPackages extends ESLoader {
throw new EcmaScriptException("Missing class directory or file name");
}
String directoryOrJar = arguments[0].toString();
LocalClassLoader classLoader =
ClassLoader classLoader =
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
return new ESPackages(null, null, classLoader, evaluator);
} else {