net.sf.retrotranslator.transformer
Class GeneralReplacementVisitor

java.lang.Object
  extended by net.sf.retrotranslator.transformer.NameTranslator
      extended by net.sf.retrotranslator.transformer.GenericClassVisitor
          extended by net.sf.retrotranslator.transformer.GeneralReplacementVisitor
All Implemented Interfaces:
ClassVisitor

 class GeneralReplacementVisitor
extends GenericClassVisitor

Author:
Taras Puchko

Field Summary
private  java.lang.String currentClassName
           
private static java.lang.String DOUBLE_ARG_DESCRIPTOR
           
private  ReplacementLocator locator
           
private static java.lang.String LONG_ARG_DESCRIPTOR
           
private  boolean threadLocalExcluded
           
private  NameTranslator translator
           
 
Constructor Summary
GeneralReplacementVisitor(ClassVisitor classVisitor, ReplacementLocator locator)
           
 
Method Summary
private  void buildInstance(MethodVisitor visitor, java.lang.String owner, ConstructorReplacement replacement)
           
protected  java.lang.String identifier(java.lang.String s)
           
private  boolean isExcluded(java.lang.String name)
           
private  void pushArguments(MethodVisitor visitor, MemberReplacement[] arguments)
           
private  void swap(MethodVisitor visitor, MemberReplacement argument)
           
protected  java.lang.String typeName(java.lang.String s)
           
 void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
          Visits the header of the class.
private  boolean visitConstructor(ClassReplacement replacement, MethodVisitor visitor, java.lang.String owner, java.lang.String desc)
           
protected  void visitFieldInstruction(MethodVisitor visitor, int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
           
protected  void visitMethodInstruction(MethodVisitor visitor, int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
           
protected  void visitTypeInstruction(MethodVisitor visitor, int opcode, java.lang.String desc)
           
 
Methods inherited from class net.sf.retrotranslator.transformer.GenericClassVisitor
visitAnnotation, visitAttribute, visitEnd, visitField, visitInnerClass, visitMethod, visitOuterClass, visitSource
 
Methods inherited from class net.sf.retrotranslator.transformer.NameTranslator
declarationSignature, fixIdentifier, methodDescriptor, type, typeDescriptor, typeNameOrTypeDescriptor, typeNames, typeOrValue, types, typeSignature
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LONG_ARG_DESCRIPTOR

private static final java.lang.String LONG_ARG_DESCRIPTOR

DOUBLE_ARG_DESCRIPTOR

private static final java.lang.String DOUBLE_ARG_DESCRIPTOR

locator

private final ReplacementLocator locator

translator

private final NameTranslator translator

currentClassName

private java.lang.String currentClassName

threadLocalExcluded

private boolean threadLocalExcluded
Constructor Detail

GeneralReplacementVisitor

public GeneralReplacementVisitor(ClassVisitor classVisitor,
                                 ReplacementLocator locator)
Method Detail

identifier

protected java.lang.String identifier(java.lang.String s)
Overrides:
identifier in class NameTranslator

typeName

protected java.lang.String typeName(java.lang.String s)
Overrides:
typeName in class NameTranslator

visit

public void visit(int version,
                  int access,
                  java.lang.String name,
                  java.lang.String signature,
                  java.lang.String superName,
                  java.lang.String[] interfaces)
Description copied from interface: ClassVisitor
Visits the header of the class.

Specified by:
visit in interface ClassVisitor
Overrides:
visit in class GenericClassVisitor
Parameters:
version - the class version.
access - the class's access flags (see Opcodes). This parameter also indicates if the class is deprecated.
name - the internal name of the class (see getInternalName).
signature - the signature of this class. May be null if the class is not a generic one, and does not extend or implement generic classes or interfaces.
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 Object class.
interfaces - the internal names of the class's interfaces (see getInternalName). May be null.

isExcluded

private boolean isExcluded(java.lang.String name)

visitTypeInstruction

protected void visitTypeInstruction(MethodVisitor visitor,
                                    int opcode,
                                    java.lang.String desc)
Overrides:
visitTypeInstruction in class GenericClassVisitor

visitFieldInstruction

protected void visitFieldInstruction(MethodVisitor visitor,
                                     int opcode,
                                     java.lang.String owner,
                                     java.lang.String name,
                                     java.lang.String desc)
Overrides:
visitFieldInstruction in class GenericClassVisitor

visitMethodInstruction

protected void visitMethodInstruction(MethodVisitor visitor,
                                      int opcode,
                                      java.lang.String owner,
                                      java.lang.String name,
                                      java.lang.String desc)
Overrides:
visitMethodInstruction in class GenericClassVisitor

visitConstructor

private boolean visitConstructor(ClassReplacement replacement,
                                 MethodVisitor visitor,
                                 java.lang.String owner,
                                 java.lang.String desc)

buildInstance

private void buildInstance(MethodVisitor visitor,
                           java.lang.String owner,
                           ConstructorReplacement replacement)

pushArguments

private void pushArguments(MethodVisitor visitor,
                           MemberReplacement[] arguments)

swap

private void swap(MethodVisitor visitor,
                  MemberReplacement argument)