proguard.optimize.evaluation
Class LoadingInvocationUnit

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.evaluation.BasicInvocationUnit
          extended by proguard.optimize.evaluation.LoadingInvocationUnit
All Implemented Interfaces:
ConstantVisitor, MemberVisitor, InvocationUnit

public class LoadingInvocationUnit
extends BasicInvocationUnit

This InvocationUbit loads parameter values and return values that were previously stored with the methods that are invoked.

See Also:
StoringInvocationUnit

Field Summary
 
Fields inherited from class proguard.evaluation.BasicInvocationUnit
valueFactory
 
Constructor Summary
LoadingInvocationUnit(ValueFactory valueFactory)
          Creates a new LoadingInvocationUnit with the given value factory.
LoadingInvocationUnit(ValueFactory valueFactory, boolean loadFieldValues, boolean loadMethodParameterValues, boolean loadMethodReturnValues)
          Creates a new LoadingInvocationUnit with the given value factory, for loading the specified values.
 
Method Summary
protected  Value getFieldClassValue(Clazz clazz, RefConstant refConstant, java.lang.String type)
          Returns the class though which the specified field is accessed.
protected  Value getFieldValue(Clazz clazz, RefConstant refConstant, java.lang.String type)
          Returns the value of the specified field.
protected  Value getMethodParameterValue(Clazz clazz, Method method, int parameterIndex, java.lang.String type, Clazz referencedClass)
          Returns the value of the specified method parameter.
protected  Value getMethodReturnValue(Clazz clazz, RefConstant refConstant, java.lang.String type)
          Returns the return value of the specified method.
 
Methods inherited from class proguard.evaluation.BasicInvocationUnit
enterMethod, exitMethod, invokeMember, setFieldClassValue, setFieldValue, setMethodParameterValue, setMethodReturnValue, visitAnyMethodrefConstant, visitFieldrefConstant, visitLibraryField, visitLibraryMethod, visitProgramField, visitProgramMethod
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyParameterAnnotationsAttribute, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyVerificationType, visitArrayElementValue, visitBranchInstruction, visitClassConstant, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantInstruction, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFloatConstant, visitFloatType, visitFullFrame, visitInnerClassesAttribute, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryMember, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodrefConstant, visitMoreZeroFrame, visitNameAndTypeConstant, visitNullType, visitObjectType, visitProgramClass, visitProgramMember, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitStringConstant, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitTopType, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitUtf8Constant, visitVariableInstruction, 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
visitClassConstant, visitDoubleConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodrefConstant, visitNameAndTypeConstant, visitStringConstant, visitUtf8Constant
 

Constructor Detail

LoadingInvocationUnit

public LoadingInvocationUnit(ValueFactory valueFactory)
Creates a new LoadingInvocationUnit with the given value factory.


LoadingInvocationUnit

public LoadingInvocationUnit(ValueFactory valueFactory,
                             boolean loadFieldValues,
                             boolean loadMethodParameterValues,
                             boolean loadMethodReturnValues)
Creates a new LoadingInvocationUnit with the given value factory, for loading the specified values.

Method Detail

getFieldClassValue

protected Value getFieldClassValue(Clazz clazz,
                                   RefConstant refConstant,
                                   java.lang.String type)
Description copied from class: BasicInvocationUnit
Returns the class though which the specified field is accessed.

Overrides:
getFieldClassValue in class BasicInvocationUnit

getFieldValue

protected Value getFieldValue(Clazz clazz,
                              RefConstant refConstant,
                              java.lang.String type)
Description copied from class: BasicInvocationUnit
Returns the value of the specified field.

Overrides:
getFieldValue in class BasicInvocationUnit

getMethodParameterValue

protected Value getMethodParameterValue(Clazz clazz,
                                        Method method,
                                        int parameterIndex,
                                        java.lang.String type,
                                        Clazz referencedClass)
Description copied from class: BasicInvocationUnit
Returns the value of the specified method parameter.

Overrides:
getMethodParameterValue in class BasicInvocationUnit

getMethodReturnValue

protected Value getMethodReturnValue(Clazz clazz,
                                     RefConstant refConstant,
                                     java.lang.String type)
Description copied from class: BasicInvocationUnit
Returns the return value of the specified method.

Overrides:
getMethodReturnValue in class BasicInvocationUnit