package org.drools.android.robolectric;
import dalvik.system.BaseDexClassLoader;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
/**
* {@link BaseDexClassLoader} which loads classes normally,
* not converting to dex first
*/
@Implements(value = BaseDexClassLoader.class, looseSignatures = true, callThroughByDefault = false, inheritImplementationMethods = true)
public class ShadowBaseDexClassLoader extends ClassLoader {
@Implementation
public void __constructor__(String dexPath, File optimizedDirectory, String libraryPath, ClassLoader parent) {
System.out.println("CREATING Base DEX SHADOW __constructor__!!!!!!!!!!!!!!!!!!");
}
@Implementation
@Override
public Class<?> loadClass(String name) throws ClassNotFoundException {
return super.loadClass(name);
}
@Implementation
@Override
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
return super.loadClass(name, resolve);
}
@Implementation
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
return super.findClass(name);
}
@Implementation
@Override
public URL getResource(String name) {
return super.getResource(name);
}
@Implementation
@Override
public Enumeration<URL> getResources(String name) throws IOException {
return super.getResources(name);
}
@Implementation
@Override
protected URL findResource(String name) {
return super.findResource(name);
}
@Implementation
@Override
protected Enumeration<URL> findResources(String name) throws IOException {
return super.findResources(name);
}
@Implementation
@Override
public InputStream getResourceAsStream(String name) {
return super.getResourceAsStream(name);
}
@Implementation
@Override
protected Package definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) throws IllegalArgumentException {
return super.definePackage(name, specTitle, specVersion, specVendor, implTitle, implVersion, implVendor, sealBase);
}
}