org.dellroad.jc
Class SearchpathFinder

java.lang.Object
  extended byorg.dellroad.jc.SearchpathFinder
All Implemented Interfaces:
ClassfileFinder

public class SearchpathFinder
extends Object
implements ClassfileFinder

Implementation of ClassfileFinder used by the BootstrapObjectGenerator class for object file generation when another virtual machine besides JC must be used. This class simply searches a standard ``classpath'' directory and ZIP/JAR file search path for class files.


Constructor Summary
SearchpathFinder(String path)
          Create a finder using the supplied classpath.
 
Method Summary
protected  void finalize()
           
 byte[] getClassfile(String className)
          Retrieve the class file that is used to define the named class.
 long getClassfileHash(String className)
          Return the hash of the bytes that would be returned by getClassfile() with the same arguments.
 String getPath()
          Returns the constructor's argument.
 File[] getPathArray()
          Returns the path split out into individual components.
static String[] splitPath(String path)
          Split a search path into components.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SearchpathFinder

public SearchpathFinder(String path)
Create a finder using the supplied classpath.

Parameters:
path - Class search path containing directory names and ZIP/JAR file names, for example /some/dir1:/some/dir2:/other/file.zip.
Method Detail

getPath

public String getPath()
Returns the constructor's argument.


getPathArray

public File[] getPathArray()
Returns the path split out into individual components.


getClassfile

public byte[] getClassfile(String className)
                    throws ClassNotFoundException
Description copied from interface: ClassfileFinder
Retrieve the class file that is used to define the named class. This is a capability specific to the JC virtual machine.

Specified by:
getClassfile in interface ClassfileFinder
Parameters:
className - Class name (with slashes, not dots)
Throws:
ClassNotFoundException - if class is not found

getClassfileHash

public long getClassfileHash(String className)
                      throws ClassNotFoundException
Description copied from interface: ClassfileFinder
Return the hash of the bytes that would be returned by getClassfile() with the same arguments. The hash of a class file is defined as the last 16 bytes of the MD5 of the class file.

Specified by:
getClassfileHash in interface ClassfileFinder
Parameters:
className - Class name (with slashes, not dots)
Throws:
ClassNotFoundException - if class is not found

finalize

protected void finalize()

splitPath

public static String[] splitPath(String path)
Split a search path into components. Splits on the platform specific path separator.

Parameters:
path - Search path containing file/directory names, e.g., /some/dir1:/some/file2:/other/file.zip.