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

java.lang.Object
  |
  +--org.apache.tools.ant.taskdefs.optional.sitraka.bytecode.ClassPathLoader

public class ClassPathLoader
extends java.lang.Object

Core of the bytecode analyzer. It loads classes from a given classpath.

Author:
Stephane Bailliez

Nested Class Summary
static interface ClassPathLoader.FileLoader
          the interface to implement to look up for specific resources
 
Field Summary
static ClassPathLoader.FileLoader NULL_LOADER
           
 
Constructor Summary
ClassPathLoader(java.io.File[] entries)
          create a new instance with a given set of urls
ClassPathLoader(java.lang.String classPath)
          create a new instance with a given classpath.
ClassPathLoader(java.lang.String[] entries)
          create a new instance with a given set of urls.
 
Method Summary
static java.io.InputStream getCachedStream(java.io.InputStream is)
          useful methods to read the whole input stream in memory so that it can be accessed faster.
 java.util.Hashtable getClasses()
          return the whole set of classes in the classpath.
 java.util.Enumeration loaders()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NULL_LOADER

public static final ClassPathLoader.FileLoader NULL_LOADER
Constructor Detail

ClassPathLoader

public ClassPathLoader(java.lang.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(java.lang.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(java.io.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

loaders

public java.util.Enumeration loaders()
Returns:
the set of FileLoader loaders matching the given classpath.

getClasses

public java.util.Hashtable getClasses()
                               throws java.io.IOException
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)
java.io.IOException

getCachedStream

public static java.io.InputStream getCachedStream(java.io.InputStream is)
                                           throws java.io.IOException
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.

java.io.IOException


Copyright © 2000-2002 Apache Software Foundation. All Rights Reserved.