org.logicalcobwebs.cglib.reflect
Class FastClassEmitter

java.lang.Object
  extended by org.logicalcobwebs.asm.ClassAdapter
      extended by org.logicalcobwebs.cglib.core.ClassEmitter
          extended by org.logicalcobwebs.cglib.reflect.FastClassEmitter
All Implemented Interfaces:
ClassVisitor

 class FastClassEmitter
extends ClassEmitter


Nested Class Summary
private static class FastClassEmitter.GetIndexCallback
           
 
Field Summary
private static Signature CONSTRUCTOR_GET_INDEX
           
private static Signature CSTRUCT_CLASS
           
private static Type FAST_CLASS
           
private static Signature GET_MAX_INDEX
           
private static Signature GET_SIGNATURE_WITHOUT_RETURN_TYPE
           
private static Type ILLEGAL_ARGUMENT_EXCEPTION
           
private static Type INVOCATION_TARGET_EXCEPTION
           
private static Type[] INVOCATION_TARGET_EXCEPTION_ARRAY
           
private static Signature INVOKE
           
private static Signature METHOD_GET_INDEX
           
private static Signature NEW_INSTANCE
           
private static Signature SIGNATURE_GET_INDEX
           
private static Signature TO_STRING
           
private static int TOO_MANY_METHODS
           
 
Fields inherited from class org.logicalcobwebs.asm.ClassAdapter
cv
 
Constructor Summary
FastClassEmitter(ClassVisitor v, java.lang.String className, java.lang.Class type)
           
 
Method Summary
private  void emitIndexByClassArray(java.lang.reflect.Method[] methods)
           
private  void emitIndexBySignature(java.lang.reflect.Method[] methods)
           
private static int[] getIntRange(int length)
           
private static void invokeSwitchHelper(CodeEmitter e, java.lang.Object[] members, int arg)
           
private  void signatureSwitchHelper(CodeEmitter e, java.util.List signatures)
           
 
Methods inherited from class org.logicalcobwebs.cglib.core.ClassEmitter
begin_class, begin_method, begin_static, declare_field, define_attribute, end_class, getAccess, getClassType, getStaticHook, getSuperType, init, setTarget, visit, visitAttribute, visitEnd, visitField, visitMethod
 
Methods inherited from class org.logicalcobwebs.asm.ClassAdapter
visitInnerClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CSTRUCT_CLASS

private static final Signature CSTRUCT_CLASS

METHOD_GET_INDEX

private static final Signature METHOD_GET_INDEX

SIGNATURE_GET_INDEX

private static final Signature SIGNATURE_GET_INDEX

TO_STRING

private static final Signature TO_STRING

CONSTRUCTOR_GET_INDEX

private static final Signature CONSTRUCTOR_GET_INDEX

INVOKE

private static final Signature INVOKE

NEW_INSTANCE

private static final Signature NEW_INSTANCE

GET_MAX_INDEX

private static final Signature GET_MAX_INDEX

GET_SIGNATURE_WITHOUT_RETURN_TYPE

private static final Signature GET_SIGNATURE_WITHOUT_RETURN_TYPE

FAST_CLASS

private static final Type FAST_CLASS

ILLEGAL_ARGUMENT_EXCEPTION

private static final Type ILLEGAL_ARGUMENT_EXCEPTION

INVOCATION_TARGET_EXCEPTION

private static final Type INVOCATION_TARGET_EXCEPTION

INVOCATION_TARGET_EXCEPTION_ARRAY

private static final Type[] INVOCATION_TARGET_EXCEPTION_ARRAY

TOO_MANY_METHODS

private static final int TOO_MANY_METHODS
See Also:
Constant Field Values
Constructor Detail

FastClassEmitter

public FastClassEmitter(ClassVisitor v,
                        java.lang.String className,
                        java.lang.Class type)
Method Detail

emitIndexBySignature

private void emitIndexBySignature(java.lang.reflect.Method[] methods)

emitIndexByClassArray

private void emitIndexByClassArray(java.lang.reflect.Method[] methods)

signatureSwitchHelper

private void signatureSwitchHelper(CodeEmitter e,
                                   java.util.List signatures)

invokeSwitchHelper

private static void invokeSwitchHelper(CodeEmitter e,
                                       java.lang.Object[] members,
                                       int arg)

getIntRange

private static int[] getIntRange(int length)