org.logicalcobwebs.cglib.core
Class ClassEmitter
java.lang.Object
org.logicalcobwebs.asm.ClassAdapter
org.logicalcobwebs.cglib.core.ClassEmitter
- All Implemented Interfaces:
- ClassVisitor
- Direct Known Subclasses:
- EnhancerEmitter, FastClassEmitter, MixinEmitter, ParallelSorterEmitter
public class ClassEmitter
- extends ClassAdapter
- Author:
- Juozas Baliuka, Chris Nokleberg
Method Summary |
void |
begin_class(int access,
java.lang.String className,
Type superType,
Type[] interfaces,
java.lang.String sourceFile)
|
CodeEmitter |
begin_method(int access,
Signature sig,
Type[] exceptions,
Attribute attrs)
|
CodeEmitter |
begin_static()
|
void |
declare_field(int access,
java.lang.String name,
Type type,
java.lang.Object value,
Attribute attrs)
|
void |
define_attribute(Attribute attrs)
|
void |
end_class()
|
int |
getAccess()
|
Type |
getClassType()
|
(package private) ClassEmitter.FieldInfo |
getFieldInfo(java.lang.String name)
|
CodeEmitter |
getStaticHook()
|
Type |
getSuperType()
|
protected void |
init()
|
(package private) boolean |
isFieldDeclared(java.lang.String name)
|
void |
setTarget(ClassVisitor cv,
ClassVisitor outer)
|
void |
visit(int access,
java.lang.String name,
java.lang.String superName,
java.lang.String[] interfaces,
java.lang.String sourceFile)
Visits the header of the class. |
void |
visitAttribute(Attribute attrs)
Visits a non standard attribute of the class. |
void |
visitEnd()
Visits the end of the class. |
void |
visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.Object value,
Attribute attrs)
Visits a field of the class. |
CodeVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String[] exceptions,
Attribute attrs)
Visits a method of the class. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
STATIC_HOOK
private static final Signature STATIC_HOOK
STATIC_HOOK_FLAG
private static final java.lang.String STATIC_HOOK_FLAG
- See Also:
- Constant Field Values
access
private int access
classType
private Type classType
superType
private Type superType
fieldInfo
private java.util.Map fieldInfo
seenStatic
private boolean seenStatic
hook
private CodeEmitter hook
ended
private boolean ended
outer
private ClassVisitor outer
ClassEmitter
public ClassEmitter(ClassVisitor cv)
ClassEmitter
public ClassEmitter()
setTarget
public void setTarget(ClassVisitor cv,
ClassVisitor outer)
begin_class
public void begin_class(int access,
java.lang.String className,
Type superType,
Type[] interfaces,
java.lang.String sourceFile)
getStaticHook
public CodeEmitter getStaticHook()
init
protected void init()
getAccess
public int getAccess()
getClassType
public Type getClassType()
getSuperType
public Type getSuperType()
end_class
public void end_class()
begin_method
public CodeEmitter begin_method(int access,
Signature sig,
Type[] exceptions,
Attribute attrs)
begin_static
public CodeEmitter begin_static()
declare_field
public void declare_field(int access,
java.lang.String name,
Type type,
java.lang.Object value,
Attribute attrs)
define_attribute
public void define_attribute(Attribute attrs)
isFieldDeclared
boolean isFieldDeclared(java.lang.String name)
getFieldInfo
ClassEmitter.FieldInfo getFieldInfo(java.lang.String name)
visit
public void visit(int access,
java.lang.String name,
java.lang.String superName,
java.lang.String[] interfaces,
java.lang.String sourceFile)
- Description copied from interface:
ClassVisitor
- Visits the header of the class.
- Specified by:
visit
in interface ClassVisitor
- Overrides:
visit
in class ClassAdapter
- Parameters:
access
- the class's access flags (see Constants
). This
parameter also indicates if the class is deprecated.name
- the internal name of the class (see getInternalName
).superName
- the internal of name of the super class (see getInternalName
). For interfaces, the super
class is Object
. May be null, but only for the java.lang.Object
class.interfaces
- the internal names of the class's interfaces (see getInternalName
). May be null.sourceFile
- the name of the source file from which this class was
compiled. May be null.
visitEnd
public void visitEnd()
- Description copied from interface:
ClassVisitor
- Visits the end of the class. This method, which is the last one to be
called, is used to inform the visitor that all the fields and methods of
the class have been visited.
- Specified by:
visitEnd
in interface ClassVisitor
- Overrides:
visitEnd
in class ClassAdapter
visitField
public void visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.Object value,
Attribute attrs)
- Description copied from interface:
ClassVisitor
- Visits a field of the class.
- Specified by:
visitField
in interface ClassVisitor
- Overrides:
visitField
in class ClassAdapter
- Parameters:
access
- the field's access flags (see Constants
). This
parameter also indicates if the field is synthetic and/or deprecated.name
- the field's name.desc
- the field's descriptor (see Type
).value
- the field's initial value. This parameter, which may be
null if the field does not have an initial value, must be an
Integer
, a Float
, a
Long
, a Double
or a
String
. This parameter is only used for static
fields. Its value is ignored for non static fields, which must be
initialized through bytecode instructions in constructors or methods.attrs
- the non standard method attributes, linked together by their
next field. May be null.
visitMethod
public CodeVisitor visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String[] exceptions,
Attribute attrs)
- Description copied from interface:
ClassVisitor
- Visits a method of the class. This method must return a new
CodeVisitor
instance (or null) each time it
is called, i.e., it should not return a previously returned visitor.
- Specified by:
visitMethod
in interface ClassVisitor
- Overrides:
visitMethod
in class ClassAdapter
- Parameters:
access
- the method's access flags (see Constants
). This
parameter also indicates if the method is synthetic and/or deprecated.name
- the method's name.desc
- the method's descriptor (see Type
).exceptions
- the internal names of the method's exception
classes (see getInternalName
). May be
null.attrs
- the non standard method attributes, linked together by their
next field. May be null.
- Returns:
- an object to visit the byte code of the method, or null if
this class visitor is not interested in visiting the code of this
method.
visitAttribute
public void visitAttribute(Attribute attrs)
- Description copied from interface:
ClassVisitor
- Visits a non standard attribute of the class. This method must visit only
the first attribute in the given attribute list.
- Specified by:
visitAttribute
in interface ClassVisitor
- Overrides:
visitAttribute
in class ClassAdapter
- Parameters:
attrs
- a non standard class attribute. Must not be null.