/**
*
*/
package hk.hku.cecid.piazza.commons.test.utils;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
/**
* @author aaronwalker
*
*/
public class FixtureStore {
public static ClassLoader createFixtureLoader(boolean delegate, Class<?> class1) {
return new FixtureClassLoader(delegate,class1);
}
public static class FixtureClassLoader extends ClassLoader {
private boolean delegate;
private Class<?> parentCL;
public FixtureClassLoader(boolean delegate, Class<?> class1) {
this.delegate = delegate;
this.parentCL = class1;
}
@Override
public URL getResource(String resource) {
URL url = super.getResource(parentCL.getName() + "/" + resource);
if(url == null && delegate) {
return super.getResource(resource);
}
return url;
}
@Override
public InputStream getResourceAsStream(String resource) {
InputStream is = super.getResourceAsStream(parentCL.getName() + "/" + resource);
if(is == null && delegate) {
return super.getResourceAsStream(resource);
}
return is;
}
@Override
public Enumeration<URL> getResources(String resource) throws IOException {
Enumeration<URL> urls = super.getResources(parentCL.getName() + "/" + resource);
if(urls == null && delegate) {
return super.getResources(resource);
}
return urls;
}
}
}