org.cojen.classfile
Class RuntimeClassFile

java.lang.Object
  extended by org.cojen.classfile.ClassFile
      extended by org.cojen.classfile.RuntimeClassFile

public class RuntimeClassFile
extends ClassFile

Allows classes to be defined and loaded at runtime. A random number is appended to class names to prevent name collisions and to discourage referencing them persistently outside the runtime environment. This behavior can be disabled by constructing with explicit set to true.

Debugging can be enabled via the java command-line option "-Dorg.cojen.classfile.RuntimeClassFile.DEBUG=true". This causes all generated classes to be written to the temp directory, and a message is written to System.out indicating exactly where.

Author:
Brian S O'Neill

Constructor Summary
RuntimeClassFile()
           
RuntimeClassFile(String className)
           
RuntimeClassFile(String className, String superClassName)
           
RuntimeClassFile(String className, String superClassName, ClassLoader parentLoader)
           
RuntimeClassFile(String className, String superClassName, ClassLoader parentLoader, ProtectionDomain domain)
           
RuntimeClassFile(String className, String superClassName, ClassLoader parentLoader, ProtectionDomain domain, boolean explicit)
           
 
Method Summary
 Class defineClass()
          Finishes the class definition.
 ClassLoader getClassLoader()
          Returns the ClassLoader used by defined classes.
 
Methods inherited from class org.cojen.classfile.ClassFile
addAttribute, addConstructor, addDefaultConstructor, addField, addInitializer, addInnerClass, addInnerClass, addInnerClass, addInterface, addInterface, addMethod, addMethod, addMethod, addMethod, addRuntimeInvisibleAnnotation, addRuntimeVisibleAnnotation, getAttributes, getClassDepth, getClassName, getConstantPool, getConstructors, getFields, getInitializer, getInnerClasses, getInnerClassName, getInterfaces, getMajorVersion, getMethods, getMinorVersion, getModifiers, getOuterClass, getRuntimeInvisibleAnnotations, getRuntimeVisibleAnnotations, getSignatureAttr, getSourceFile, getSuperClassName, getTarget, getType, isDeprecated, isInnerClass, isSynthetic, markDeprecated, markSynthetic, readFrom, readFrom, readFrom, readFrom, setModifiers, setSourceFile, setTarget, setVersion, toString, writeTo, writeTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RuntimeClassFile

public RuntimeClassFile()

RuntimeClassFile

public RuntimeClassFile(String className)
Parameters:
className - fully qualified class name; pass null to use default

RuntimeClassFile

public RuntimeClassFile(String className,
                        String superClassName)
Parameters:
className - fully qualified class name; pass null to use default
superClassName - fully qualified super class name; pass null to use Object.

RuntimeClassFile

public RuntimeClassFile(String className,
                        String superClassName,
                        ClassLoader parentLoader)
Parameters:
className - fully qualified class name; pass null to use default
superClassName - fully qualified super class name; pass null to use Object.
parentLoader - parent class loader; pass null to use default

RuntimeClassFile

public RuntimeClassFile(String className,
                        String superClassName,
                        ClassLoader parentLoader,
                        ProtectionDomain domain)
Parameters:
className - fully qualified class name; pass null to use default
superClassName - fully qualified super class name; pass null to use Object.
parentLoader - parent class loader; pass null to use default
domain - to define class in; pass null to use default

RuntimeClassFile

public RuntimeClassFile(String className,
                        String superClassName,
                        ClassLoader parentLoader,
                        ProtectionDomain domain,
                        boolean explicit)
Parameters:
className - fully qualified class name; pass null to use default
superClassName - fully qualified super class name; pass null to use Object.
parentLoader - parent class loader; pass null to use default
domain - to define class in; pass null to use default
explicit - pass true to prevent name mangling
Method Detail

defineClass

public Class defineClass()
Finishes the class definition.


getClassLoader

public ClassLoader getClassLoader()
Returns the ClassLoader used by defined classes.



Copyright © 2004-2011 Brian S O'Neill. All Rights Reserved.