org.powermock.core.classloader
Class DeferSupportingClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.powermock.core.classloader.DeferSupportingClassLoader
Direct Known Subclasses:
MockClassLoader

public abstract class DeferSupportingClassLoader
extends java.lang.ClassLoader

Defers classloading of system classes to a delegate.

Author:
Johan Haleby, Jan Kronquist

Constructor Summary
DeferSupportingClassLoader(java.lang.ClassLoader classloader, java.lang.String[] deferPackages)
           
 
Method Summary
 void addIgnorePackage(java.lang.String... packagesToIgnore)
           
protected  java.net.URL findResource(java.lang.String name)
          Finds the resource with the specified name on the search path.
protected  java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
           
protected  java.lang.Class<?> loadClass(java.lang.String name, boolean resolve)
           
protected abstract  java.lang.Class<?> loadModifiedClass(java.lang.String s)
           
protected  boolean shouldDefer(java.lang.String[] packages, java.lang.String name)
           
protected  boolean shouldIgnore(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
           
protected  boolean shouldIgnore(java.lang.String[] packages, java.lang.String name)
           
protected abstract  boolean shouldLoadUnmodifiedClass(java.lang.String className)
           
protected  boolean shouldModify(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
           
protected abstract  boolean shouldModifyClass(java.lang.String s)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DeferSupportingClassLoader

public DeferSupportingClassLoader(java.lang.ClassLoader classloader,
                                  java.lang.String[] deferPackages)
Method Detail

addIgnorePackage

public void addIgnorePackage(java.lang.String... packagesToIgnore)

loadClass

protected java.lang.Class<?> loadClass(java.lang.String name,
                                       boolean resolve)
                                throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

shouldDefer

protected boolean shouldDefer(java.lang.String[] packages,
                              java.lang.String name)

shouldIgnore

protected boolean shouldIgnore(java.lang.Iterable<java.lang.String> packages,
                               java.lang.String name)

shouldIgnore

protected boolean shouldIgnore(java.lang.String[] packages,
                               java.lang.String name)

findResource

protected java.net.URL findResource(java.lang.String name)
Finds the resource with the specified name on the search path.

Overrides:
findResource in class java.lang.ClassLoader
Parameters:
name - the name of the resource
Returns:
a URL for the resource, or null if the resource could not be found.

findResources

protected java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
                                                     throws java.io.IOException
Overrides:
findResources in class java.lang.ClassLoader
Throws:
java.io.IOException

shouldModify

protected boolean shouldModify(java.lang.Iterable<java.lang.String> packages,
                               java.lang.String name)

loadModifiedClass

protected abstract java.lang.Class<?> loadModifiedClass(java.lang.String s)
                                                 throws java.lang.ClassFormatError,
                                                        java.lang.ClassNotFoundException
Throws:
java.lang.ClassFormatError
java.lang.ClassNotFoundException

shouldModifyClass

protected abstract boolean shouldModifyClass(java.lang.String s)

shouldLoadUnmodifiedClass

protected abstract boolean shouldLoadUnmodifiedClass(java.lang.String className)


Copyright © 2007-2012. All Rights Reserved.