All Downloads are FREE. Search and download functionalities are using the official Maven repository.

brooklyn.util.javalang.LoadedClassLoader Maven / Gradle / Ivy

Go to download

Utility classes and methods developed for Brooklyn but not dependendent on Brooklyn or much else

There is a newer version: 0.7.0-M1
Show newest version
package brooklyn.util.javalang;

import java.util.LinkedHashMap;
import java.util.Map;

/** a classloader which allows you to register classes and resources which this loader will return when needed,
 * (essentially a registry rather than a classloader, but useful if you need to make new classes available in
 * an old context) */
public class LoadedClassLoader extends ClassLoader {

    Map> loadedClasses = new LinkedHashMap>();
    
    protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
        Class result = loadedClasses.get(name);
        if (result==null) throw new ClassNotFoundException(""+name+" not known here");
        if (resolve) resolveClass(result);
        return result;
    }

    public void addClass(Class clazz) {
        loadedClasses.put(clazz.getName(), clazz);
    }
    
    // TODO could also add resources
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy