com.sshtools.j2ssh.util
Class ExtensionClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by com.sshtools.j2ssh.util.ExtensionClassLoader

public class ExtensionClassLoader
extends java.lang.ClassLoader

Title:

Description:

Copyright: Copyright (c) 2003

Company:

Version:
$Id: ExtensionClassLoader.java,v 1.1 2007/08/08 13:37:12 kathe Exp $
Author:
Lee David Painter

Nested Class Summary
private static class ExtensionClassLoader.ClassCacheEntry
           
private  class ExtensionClassLoader.ResourceEnumeration
           
 
Field Summary
private  java.util.Hashtable cache
           
(package private)  java.util.Vector classpath
           
private static org.apache.commons.logging.Log log
           
private  java.util.HashMap packages
           
 
Constructor Summary
ExtensionClassLoader()
           
ExtensionClassLoader(java.lang.ClassLoader parent)
           
 
Method Summary
 void add(java.io.File file)
           
 void add(java.io.File[] files)
           
 void add(java.lang.String file)
           
 java.lang.Class findClass(java.lang.String name)
           
protected  java.net.URL findResource(java.lang.String name)
           
private  java.net.URL findResourceInDirectory(java.io.File dir, java.lang.String name)
           
private  java.net.URL findResourceInZipfile(java.io.File file, java.lang.String name)
           
protected  java.util.Enumeration findResources(java.lang.String name)
           
 java.net.URL getResource(java.lang.String name, java.io.File location)
           
 boolean isJarArchive(java.io.File file)
           
private  byte[] loadBytesFromStream(java.io.InputStream in, int length)
           
 byte[] loadClassData(java.lang.String name)
           
private  byte[] loadClassFromDirectory(java.io.File dir, java.lang.String name, ExtensionClassLoader.ClassCacheEntry cache)
           
private  byte[] loadClassFromZipfile(java.io.File file, java.lang.String name, ExtensionClassLoader.ClassCacheEntry cache)
           
private  java.io.InputStream loadResourceFromDirectory(java.io.File dir, java.lang.String name)
           
private  java.io.InputStream loadResourceFromZipfile(java.io.File file, java.lang.String name)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static org.apache.commons.logging.Log log

classpath

java.util.Vector classpath

cache

private java.util.Hashtable cache

packages

private java.util.HashMap packages
Constructor Detail

ExtensionClassLoader

public ExtensionClassLoader()

ExtensionClassLoader

public ExtensionClassLoader(java.lang.ClassLoader parent)
Method Detail

add

public void add(java.lang.String file)

add

public void add(java.io.File[] files)

add

public void add(java.io.File file)

isJarArchive

public boolean isJarArchive(java.io.File file)

getResource

public java.net.URL getResource(java.lang.String name,
                                java.io.File location)

findResource

protected java.net.URL findResource(java.lang.String name)
Overrides:
findResource in class java.lang.ClassLoader

findResources

protected java.util.Enumeration findResources(java.lang.String name)
Overrides:
findResources in class java.lang.ClassLoader

loadClassData

public byte[] loadClassData(java.lang.String name)
                     throws java.lang.ClassNotFoundException
Throws:
java.lang.ClassNotFoundException

findClass

public java.lang.Class findClass(java.lang.String name)
                          throws java.lang.ClassNotFoundException
Overrides:
findClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

loadBytesFromStream

private byte[] loadBytesFromStream(java.io.InputStream in,
                                   int length)
                            throws java.io.IOException
Throws:
java.io.IOException

loadClassFromDirectory

private byte[] loadClassFromDirectory(java.io.File dir,
                                      java.lang.String name,
                                      ExtensionClassLoader.ClassCacheEntry cache)
                               throws java.io.IOException
Throws:
java.io.IOException

loadClassFromZipfile

private byte[] loadClassFromZipfile(java.io.File file,
                                    java.lang.String name,
                                    ExtensionClassLoader.ClassCacheEntry cache)
                             throws java.io.IOException
Throws:
java.io.IOException

loadResourceFromDirectory

private java.io.InputStream loadResourceFromDirectory(java.io.File dir,
                                                      java.lang.String name)

findResourceInDirectory

private java.net.URL findResourceInDirectory(java.io.File dir,
                                             java.lang.String name)

findResourceInZipfile

private java.net.URL findResourceInZipfile(java.io.File file,
                                           java.lang.String name)

loadResourceFromZipfile

private java.io.InputStream loadResourceFromZipfile(java.io.File file,
                                                    java.lang.String name)