Package proguard.evaluation.value
Class IdentifiedValueFactory
- java.lang.Object
-
- proguard.evaluation.value.BasicValueFactory
-
- proguard.evaluation.value.ParticularValueFactory
-
- proguard.evaluation.value.IdentifiedValueFactory
-
- All Implemented Interfaces:
ValueFactory
- Direct Known Subclasses:
DetailedArrayValueFactory
public class IdentifiedValueFactory extends ParticularValueFactory
This class provides methods to create and reuse Value instances that are identified by unique integer IDs.
-
-
Field Summary
-
Fields inherited from class proguard.evaluation.value.ParticularValueFactory
referenceValueFactory
-
Fields inherited from class proguard.evaluation.value.BasicValueFactory
DOUBLE_VALUE, FLOAT_VALUE, INTEGER_VALUE, LONG_VALUE, REFERENCE_VALUE, UNKNOWN_VALUE
-
-
Constructor Summary
Constructors Constructor Description IdentifiedValueFactory()
Creates a new IdentifiedValueFactory which does not keep track of particular references.IdentifiedValueFactory(ValueFactory referenceValueFactory)
Creates a new IdentifiedValueFactory, which uses the given valuefactory for both array and non-array reference construction.IdentifiedValueFactory(ValueFactory arrayReferenceValueFactory, ValueFactory referenceValueFactory)
Creates a new IdentifiedValueFactory.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ReferenceValue
createArrayReferenceValue(java.lang.String type, Clazz referencedClass, IntegerValue arrayLength)
Creates a new ReferenceValue that represents a non-null array with elements of the given type, with the given length.DoubleValue
createDoubleValue()
Creates a new DoubleValue with an undefined value.FloatValue
createFloatValue()
Creates a new FloatValue with an undefined value.IntegerValue
createIntegerValue()
Creates a new IntegerValue with an undefined value.LongValue
createLongValue()
Creates a new LongValue with an undefined value.ReferenceValue
createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull)
Creates a new ReferenceValue that represents the given type.ReferenceValue
createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, java.lang.Object value)
Deprecated.ReferenceValue
createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset)
Creates a new ReferenceValue that represents the given type, created at the specified code location.ReferenceValue
createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, java.lang.Object value)
Deprecated.ReferenceValue
createReferenceValueForId(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, java.lang.Object id)
Creates a new ReferenceValue that represents the given type with a specified ID.ReferenceValue
createReferenceValueForId(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, java.lang.Object id, java.lang.Object value)
Deprecated.static int
generateReferenceId()
-
Methods inherited from class proguard.evaluation.value.ParticularValueFactory
createArrayReferenceValue, createDoubleValue, createFloatValue, createIntegerValue, createLongValue, createReferenceValue, createReferenceValue, createReferenceValue, createReferenceValueForId, createReferenceValueNull
-
Methods inherited from class proguard.evaluation.value.BasicValueFactory
checkCreationLocation, checkReferenceValue, createIntegerValue, createValue
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.evaluation.value.ValueFactory
createIntegerValue, createReferenceValue, createReferenceValue, createReferenceValue, createValue
-
-
-
-
Constructor Detail
-
IdentifiedValueFactory
public IdentifiedValueFactory()
Creates a new IdentifiedValueFactory which does not keep track of particular references.
-
IdentifiedValueFactory
public IdentifiedValueFactory(ValueFactory referenceValueFactory)
Creates a new IdentifiedValueFactory, which uses the given valuefactory for both array and non-array reference construction.
-
IdentifiedValueFactory
public IdentifiedValueFactory(ValueFactory arrayReferenceValueFactory, ValueFactory referenceValueFactory)
Creates a new IdentifiedValueFactory.- Parameters:
arrayReferenceValueFactory
- the valuefactory to delegate new array references to.referenceValueFactory
- the valuefactory to delegate new references to.
-
-
Method Detail
-
createIntegerValue
public IntegerValue createIntegerValue()
Description copied from interface:ValueFactory
Creates a new IntegerValue with an undefined value.- Specified by:
createIntegerValue
in interfaceValueFactory
- Overrides:
createIntegerValue
in classBasicValueFactory
-
createLongValue
public LongValue createLongValue()
Description copied from interface:ValueFactory
Creates a new LongValue with an undefined value.- Specified by:
createLongValue
in interfaceValueFactory
- Overrides:
createLongValue
in classBasicValueFactory
-
createFloatValue
public FloatValue createFloatValue()
Description copied from interface:ValueFactory
Creates a new FloatValue with an undefined value.- Specified by:
createFloatValue
in interfaceValueFactory
- Overrides:
createFloatValue
in classBasicValueFactory
-
createDoubleValue
public DoubleValue createDoubleValue()
Description copied from interface:ValueFactory
Creates a new DoubleValue with an undefined value.- Specified by:
createDoubleValue
in interfaceValueFactory
- Overrides:
createDoubleValue
in classBasicValueFactory
-
createReferenceValue
public ReferenceValue createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull)
Description copied from interface:ValueFactory
Creates a new ReferenceValue that represents the given type. The type must be an internal class name or an array type. If the type isnull
, the ReferenceValue representsnull
.- Specified by:
createReferenceValue
in interfaceValueFactory
- Overrides:
createReferenceValue
in classParticularValueFactory
-
createReferenceValue
@Deprecated public ReferenceValue createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, java.lang.Object value)
Deprecated.Deprecated, useParticularValueFactory.createReferenceValue(Clazz, boolean, boolean, AnalyzedObject)
.- Specified by:
createReferenceValue
in interfaceValueFactory
- Overrides:
createReferenceValue
in classParticularValueFactory
-
createReferenceValue
public ReferenceValue createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset)
Description copied from interface:ValueFactory
Creates a new ReferenceValue that represents the given type, created at the specified code location. The type must be an internal class name or an array type. If the type isnull
, the ReferenceValue representsnull
.- Specified by:
createReferenceValue
in interfaceValueFactory
- Overrides:
createReferenceValue
in classParticularValueFactory
-
createReferenceValue
@Deprecated public ReferenceValue createReferenceValue(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, java.lang.Object value)
Deprecated.Deprecated, useParticularValueFactory.createReferenceValue(Clazz, boolean, boolean, CodeLocation, AnalyzedObject)
- Specified by:
createReferenceValue
in interfaceValueFactory
- Overrides:
createReferenceValue
in classParticularValueFactory
-
createReferenceValueForId
public ReferenceValue createReferenceValueForId(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, java.lang.Object id)
Description copied from interface:ValueFactory
Creates a new ReferenceValue that represents the given type with a specified ID. The type must be an internal class name or an array type. If the type isnull
, the ReferenceValue representsnull
.- Specified by:
createReferenceValueForId
in interfaceValueFactory
- Overrides:
createReferenceValueForId
in classParticularValueFactory
-
createReferenceValueForId
@Deprecated public ReferenceValue createReferenceValueForId(java.lang.String type, Clazz referencedClass, boolean mayBeExtension, boolean mayBeNull, java.lang.Object id, java.lang.Object value)
Deprecated.Deprecated, useParticularValueFactory.createReferenceValueForId(Clazz, boolean, boolean, Object, AnalyzedObject)
.- Specified by:
createReferenceValueForId
in interfaceValueFactory
- Overrides:
createReferenceValueForId
in classParticularValueFactory
-
createArrayReferenceValue
public ReferenceValue createArrayReferenceValue(java.lang.String type, Clazz referencedClass, IntegerValue arrayLength)
Description copied from interface:ValueFactory
Creates a new ReferenceValue that represents a non-null array with elements of the given type, with the given length.- Specified by:
createArrayReferenceValue
in interfaceValueFactory
- Overrides:
createArrayReferenceValue
in classParticularValueFactory
-
generateReferenceId
public static int generateReferenceId()
-
-