public class Instantiator
extends java.lang.Object
implements com.ibm.wala.util.ssa.IInstantiator
Creates an instance of (hopefully) anything.
| Constructor and Description |
|---|
Instantiator(com.ibm.wala.ipa.summaries.VolatileMethodSummary body,
com.ibm.wala.util.ssa.TypeSafeInstructionFactory instructionFactory,
com.ibm.wala.util.ssa.SSAValueManager pm,
com.ibm.wala.ipa.cha.IClassHierarchy cha,
com.ibm.wala.types.MethodReference scope,
com.ibm.wala.ipa.callgraph.AnalysisScope analysisScope) |
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.util.ssa.SSAValue |
createInstance(com.ibm.wala.types.TypeReference T,
boolean asManaged,
com.ibm.wala.util.ssa.SSAValue.VariableKey key,
java.util.Set<? extends com.ibm.wala.util.ssa.SSAValue> seen)
Creates a new instance of type calling all that's necessary.
|
int |
createInstance(com.ibm.wala.types.TypeReference type,
java.lang.Object... instantiatorArgs)
Satisfy the interface.
|
public Instantiator(com.ibm.wala.ipa.summaries.VolatileMethodSummary body,
com.ibm.wala.util.ssa.TypeSafeInstructionFactory instructionFactory,
com.ibm.wala.util.ssa.SSAValueManager pm,
com.ibm.wala.ipa.cha.IClassHierarchy cha,
com.ibm.wala.types.MethodReference scope,
com.ibm.wala.ipa.callgraph.AnalysisScope analysisScope)
public com.ibm.wala.util.ssa.SSAValue createInstance(com.ibm.wala.types.TypeReference T,
boolean asManaged,
com.ibm.wala.util.ssa.SSAValue.VariableKey key,
java.util.Set<? extends com.ibm.wala.util.ssa.SSAValue> seen)
If T is a class-type all its constructors are searched for the one found best suited (takes the least arguments, ...). New instances are created for all parameters, then the constructor is called.
If T represents multiple types (is an interface, abstract class, ...) _all_ implementors of that type are instantiated After that they get Phi-ed together.
If T is an array-type a new array of length 1 is generated.
TODO: Do we want to mix in REUSE-Parameters?
public int createInstance(com.ibm.wala.types.TypeReference type,
java.lang.Object... instantiatorArgs)
createInstance in interface com.ibm.wala.util.ssa.IInstantiator