proguard.evaluation
Class Processor

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.evaluation.Processor
All Implemented Interfaces:
ConstantVisitor, InstructionVisitor

public class Processor
extends SimplifiedVisitor
implements InstructionVisitor, ConstantVisitor

This InstructionVisitor executes the instructions that it visits on a given local variable frame and stack.


Constructor Summary
Processor(Variables variables, Stack stack, ValueFactory valueFactory, BranchUnit branchUnit, InvocationUnit invocationUnit)
          Creates a new processor that operates on the given environment.
 
Method Summary
 void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction)
           
 void visitClassConstant(Clazz clazz, ClassConstant classConstant)
           
 void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
           
 void visitDoubleConstant(Clazz clazz, DoubleConstant doubleConstant)
           
 void visitFloatConstant(Clazz clazz, FloatConstant floatConstant)
           
 void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)
           
 void visitLongConstant(Clazz clazz, LongConstant longConstant)
           
 void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction)
           
 void visitSimpleInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SimpleInstruction simpleInstruction)
           
 void visitStringConstant(Clazz clazz, StringConstant stringConstant)
           
 void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction)
           
 void visitVariableInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VariableInstruction variableInstruction)
           
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyMethodrefConstant, visitAnyParameterAnnotationsAttribute, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyVerificationType, visitArrayElementValue, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleType, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFieldrefConstant, visitFloatType, visitFullFrame, visitInnerClassesAttribute, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitLongType, visitMethodrefConstant, visitMoreZeroFrame, visitNameAndTypeConstant, visitNullType, visitObjectType, visitProgramClass, visitProgramField, visitProgramMember, visitProgramMethod, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTopType, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitUtf8Constant, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface proguard.classfile.constant.visitor.ConstantVisitor
visitFieldrefConstant, visitInterfaceMethodrefConstant, visitMethodrefConstant, visitNameAndTypeConstant, visitUtf8Constant
 

Constructor Detail

Processor

public Processor(Variables variables,
                 Stack stack,
                 ValueFactory valueFactory,
                 BranchUnit branchUnit,
                 InvocationUnit invocationUnit)
Creates a new processor that operates on the given environment.

Parameters:
variables - the local variable frame.
stack - the local stack.
branchUnit - the class that can affect the program counter.
invocationUnit - the class that can access other program members.
Method Detail

visitSimpleInstruction

public void visitSimpleInstruction(Clazz clazz,
                                   Method method,
                                   CodeAttribute codeAttribute,
                                   int offset,
                                   SimpleInstruction simpleInstruction)
Specified by:
visitSimpleInstruction in interface InstructionVisitor
Overrides:
visitSimpleInstruction in class SimplifiedVisitor

visitConstantInstruction

public void visitConstantInstruction(Clazz clazz,
                                     Method method,
                                     CodeAttribute codeAttribute,
                                     int offset,
                                     ConstantInstruction constantInstruction)
Specified by:
visitConstantInstruction in interface InstructionVisitor
Overrides:
visitConstantInstruction in class SimplifiedVisitor

visitVariableInstruction

public void visitVariableInstruction(Clazz clazz,
                                     Method method,
                                     CodeAttribute codeAttribute,
                                     int offset,
                                     VariableInstruction variableInstruction)
Specified by:
visitVariableInstruction in interface InstructionVisitor
Overrides:
visitVariableInstruction in class SimplifiedVisitor

visitBranchInstruction

public void visitBranchInstruction(Clazz clazz,
                                   Method method,
                                   CodeAttribute codeAttribute,
                                   int offset,
                                   BranchInstruction branchInstruction)
Specified by:
visitBranchInstruction in interface InstructionVisitor
Overrides:
visitBranchInstruction in class SimplifiedVisitor

visitTableSwitchInstruction

public void visitTableSwitchInstruction(Clazz clazz,
                                        Method method,
                                        CodeAttribute codeAttribute,
                                        int offset,
                                        TableSwitchInstruction tableSwitchInstruction)
Specified by:
visitTableSwitchInstruction in interface InstructionVisitor
Overrides:
visitTableSwitchInstruction in class SimplifiedVisitor

visitLookUpSwitchInstruction

public void visitLookUpSwitchInstruction(Clazz clazz,
                                         Method method,
                                         CodeAttribute codeAttribute,
                                         int offset,
                                         LookUpSwitchInstruction lookUpSwitchInstruction)
Specified by:
visitLookUpSwitchInstruction in interface InstructionVisitor
Overrides:
visitLookUpSwitchInstruction in class SimplifiedVisitor

visitIntegerConstant

public void visitIntegerConstant(Clazz clazz,
                                 IntegerConstant integerConstant)
Specified by:
visitIntegerConstant in interface ConstantVisitor
Overrides:
visitIntegerConstant in class SimplifiedVisitor

visitLongConstant

public void visitLongConstant(Clazz clazz,
                              LongConstant longConstant)
Specified by:
visitLongConstant in interface ConstantVisitor
Overrides:
visitLongConstant in class SimplifiedVisitor

visitFloatConstant

public void visitFloatConstant(Clazz clazz,
                               FloatConstant floatConstant)
Specified by:
visitFloatConstant in interface ConstantVisitor
Overrides:
visitFloatConstant in class SimplifiedVisitor

visitDoubleConstant

public void visitDoubleConstant(Clazz clazz,
                                DoubleConstant doubleConstant)
Specified by:
visitDoubleConstant in interface ConstantVisitor
Overrides:
visitDoubleConstant in class SimplifiedVisitor

visitStringConstant

public void visitStringConstant(Clazz clazz,
                                StringConstant stringConstant)
Specified by:
visitStringConstant in interface ConstantVisitor
Overrides:
visitStringConstant in class SimplifiedVisitor

visitClassConstant

public void visitClassConstant(Clazz clazz,
                               ClassConstant classConstant)
Specified by:
visitClassConstant in interface ConstantVisitor
Overrides:
visitClassConstant in class SimplifiedVisitor