org.apache.tools.ant.taskdefs.optional.sitraka.bytecode

Class ClassPathLoader

public class ClassPathLoader extends Object

Core of the bytecode analyzer. It loads classes from a given classpath.
Nested Class Summary
interfaceClassPathLoader.FileLoader
the interface to implement to look up for specific resources
Field Summary
static ClassPathLoader.FileLoaderNULL_LOADER
Constructor Summary
ClassPathLoader(String classPath)
create a new instance with a given classpath.
ClassPathLoader(String[] entries)
create a new instance with a given set of urls.
ClassPathLoader(File[] entries)
create a new instance with a given set of urls
Method Summary
static InputStreamgetCachedStream(InputStream is)
useful methods to read the whole input stream in memory so that it can be accessed faster.
HashtablegetClasses()
return the whole set of classes in the classpath.
Enumerationloaders()

Field Detail

NULL_LOADER

public static final ClassPathLoader.FileLoader NULL_LOADER

Constructor Detail

ClassPathLoader

public ClassPathLoader(String classPath)
create a new instance with a given classpath. It must be urls separated by the platform specific path separator.

Parameters: classPath the classpath to load all the classes from.

ClassPathLoader

public ClassPathLoader(String[] entries)
create a new instance with a given set of urls.

Parameters: entries valid file urls (either .jar, .zip or directory)

ClassPathLoader

public ClassPathLoader(File[] entries)
create a new instance with a given set of urls

Parameters: entries file urls to look for classes (.jar, .zip or directory)

Method Detail

getCachedStream

public static InputStream getCachedStream(InputStream is)
useful methods to read the whole input stream in memory so that it can be accessed faster. Processing rt.jar and tools.jar from JDK 1.3.1 brings time from 50s to 7s.

getClasses

public Hashtable getClasses()
return the whole set of classes in the classpath. Note that this method can be very resource demanding since it must load all bytecode from all classes in all resources in the classpath at a time. To process it in a less resource demanding way, it is maybe better to use the loaders() that will return loader one by one.

Returns: the hashtable containing ALL classes that are found in the given classpath. Note that the first entry of a given classname will shadow classes with the same name (as a classloader does)

loaders

public Enumeration loaders()

Returns: the set of FileLoader loaders matching the given classpath.

Copyright