org.apache.derby.impl.services.reflect
Class JarLoader

java.lang.Object
  extended byjava.lang.ClassLoader
      extended byorg.apache.derby.impl.services.reflect.JarLoader

public class JarLoader
extends java.lang.ClassLoader


Nested Class Summary
 
Nested classes inherited from class java.lang.ClassLoader
 
Field Summary
private static JarFile jarFileFactory
           
private  JarFile jf
           
private  UpdateLoader updateLoader
           
private  HeaderPrintWriter vs
           
 
Fields inherited from class java.lang.ClassLoader
 
Constructor Summary
(package private) JarLoader(UpdateLoader updateLoader, java.lang.String[] name, HeaderPrintWriter vs)
           
 
Method Summary
(package private)  java.lang.Class checkLoaded(java.lang.String className, boolean resolve)
           
(package private)  java.lang.String getJarName()
           
private  java.io.InputStream getRawStream(java.io.InputStream in, java.lang.String name)
          Get a stream from a zip file that is itself a stream.
private  java.io.InputStream getRawStream(java.util.zip.ZipFile zip, java.lang.String name)
          Get a stream directly from a ZipFile.
 java.io.InputStream getResourceAsStream(java.lang.String name)
           
(package private)  java.io.InputStream getStream(java.lang.String name)
          Get an InputStream for the given resource.
(package private)  void initialize()
           
private  java.lang.Object load()
           
 java.lang.Class loadClass(java.lang.String className, boolean resolve)
          Handle all requests to the top-level loader.
private  java.lang.Class loadClassData(java.io.InputStream in, java.lang.String className, java.lang.String jvmClassName, boolean resolve)
           
(package private)  java.lang.Class loadClassData(java.lang.String className, java.lang.String jvmClassName, boolean resolve)
           
private  java.lang.Class loadClassData(java.util.zip.ZipEntry ze, java.io.InputStream in, java.lang.String className, boolean resolve)
           
private  java.lang.Class loadClassDataFromJar(java.lang.String className, java.lang.String jvmClassName, boolean resolve)
           
(package private)  JarFile setInvalid(boolean newJarFile)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, 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
 

Field Detail

jarFileFactory

private static final JarFile jarFileFactory

updateLoader

private UpdateLoader updateLoader

jf

private JarFile jf

vs

private HeaderPrintWriter vs
Constructor Detail

JarLoader

JarLoader(UpdateLoader updateLoader,
          java.lang.String[] name,
          HeaderPrintWriter vs)
Method Detail

initialize

void initialize()

loadClass

public java.lang.Class loadClass(java.lang.String className,
                                 boolean resolve)
                          throws java.lang.ClassNotFoundException
Handle all requests to the top-level loader.

Throws:
java.lang.ClassNotFoundException - Class can not be found

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String name)

getJarName

final java.lang.String getJarName()

loadClassData

java.lang.Class loadClassData(java.lang.String className,
                              java.lang.String jvmClassName,
                              boolean resolve)

getStream

java.io.InputStream getStream(java.lang.String name)
Get an InputStream for the given resource.


loadClassDataFromJar

private java.lang.Class loadClassDataFromJar(java.lang.String className,
                                             java.lang.String jvmClassName,
                                             boolean resolve)
                                      throws java.io.IOException
Throws:
java.io.IOException

loadClassData

private java.lang.Class loadClassData(java.io.InputStream in,
                                      java.lang.String className,
                                      java.lang.String jvmClassName,
                                      boolean resolve)
                               throws java.io.IOException
Throws:
java.io.IOException

loadClassData

private java.lang.Class loadClassData(java.util.zip.ZipEntry ze,
                                      java.io.InputStream in,
                                      java.lang.String className,
                                      boolean resolve)
                               throws java.io.IOException
Throws:
java.io.IOException

checkLoaded

java.lang.Class checkLoaded(java.lang.String className,
                            boolean resolve)

load

private java.lang.Object load()

setInvalid

JarFile setInvalid(boolean newJarFile)

getRawStream

private java.io.InputStream getRawStream(java.util.zip.ZipFile zip,
                                         java.lang.String name)
Get a stream directly from a ZipFile. In this case we can safely return the stream directly. It's a new stream set up by the zip code to read just the contents of this entry.


getRawStream

private java.io.InputStream getRawStream(java.io.InputStream in,
                                         java.lang.String name)
Get a stream from a zip file that is itself a stream. Here we need to get the size of the zip entry and put a limiting stream around it. Otherwise the caller would end up reading the entire zip file!



Apache Derby V10.0 Engine Documentation - Copyright © 1997,2004 The Apache Software Foundation or its licensors, as applicable.