/**************************************************************************
* Copyright (c) 2001 by Acunia N.V. All rights reserved. *
* *
* This software is copyrighted by and is the sole property of Acunia N.V. *
* and its licensors, if any. All rights, title, ownership, or other *
* interests in the software remain the property of Acunia N.V. and its *
* licensors, if any. *
* *
* This software may only be used in accordance with the corresponding *
* license agreement. Any unauthorized use, duplication, transmission, *
* distribution or disclosure of this software is expressly forbidden. *
* *
* This Copyright notice may not be removed or modified without prior *
* written consent of Acunia N.V. *
* *
* Acunia N.V. reserves the right to modify this software without notice. *
* *
* Acunia N.V. *
* Vanden Tymplestraat 35 info@acunia.com *
* 3000 Leuven http://www.acunia.com *
* Belgium - EUROPE *
**************************************************************************/
package gnu.testlet.wonka.lang.ClassLoader; //complete the package name ...
import java.util.HashMap;
public class ExClassLoader extends ClassLoader {
private HashMap hm;
private String name;
public ExClassLoader(HashMap classes, String name){
hm = classes;
this.name = name;
}
public ExClassLoader(ClassLoader cl, HashMap classes, String name){
super(cl);
hm = classes;
this.name = name;
}
public Class loadClass(String n)throws ClassNotFoundException {
// System.out.println("called loadClass "+n);
return super.loadClass(n);
}
protected Class loadClass(String n, boolean b)throws ClassNotFoundException {
// System.out.println("called loadClass "+n+" and boolean "+b);
return super.loadClass(n,b);
}
protected Class findClass(String className) throws ClassNotFoundException {
//System.out.println(name+" is looking for "+className);
Object o = hm.get(className);
if (o == null){
throw new ClassNotFoundException(className+" not found");
}
byte [] bytes = (byte[])o;
return defineClass(className, bytes, 0, bytes.length);
}
public String toString(){
return super.toString()+" "+name;
}
}