dk.netarkivet.common.utils.batch
Class ByteClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by dk.netarkivet.common.utils.batch.ByteClassLoader

public class ByteClassLoader
extends java.lang.ClassLoader

A subclass of ClassLoader that can take a byte[] containing a class file.


Field Summary
(package private)  byte[] binaryData
          Binary class data loaded from file.
 
Constructor Summary
ByteClassLoader(byte[] bytes)
          Constructor taking a class as an array of bytes.
ByteClassLoader(java.io.File binaryFile)
          Constructor that reads data from a file
 
Method Summary
 java.lang.Class defineClass()
          Define the class that this class loader knows about.
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, 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

binaryData

byte[] binaryData
Binary class data loaded from file.

Constructor Detail

ByteClassLoader

public ByteClassLoader(java.io.File binaryFile)
Constructor that reads data from a file

Parameters:
binaryFile - A file containing a Java class.

ByteClassLoader

public ByteClassLoader(byte[] bytes)
Constructor taking a class as an array of bytes.

Parameters:
bytes - Array of bytes containing a class definition.
Method Detail

defineClass

public java.lang.Class defineClass()
Define the class that this class loader knows about. The name of the class is taken from the data given in the constructor. Note that this does *not* override any of the java.lang.ClassLoader#defineClass methods. Calling this method directly is the only way to get the class defined by this classloader.

Returns:
A new Class object for this class.