com.ibm.wala.cast.java.ipa.callgraph
Class AstJavaZeroOneContainerCFABuilder

java.lang.Object
  extended by com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
      extended by com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
          extended by com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
              extended by com.ibm.wala.cast.java.ipa.callgraph.AstJavaSSAPropagationCallGraphBuilder
                  extended by com.ibm.wala.cast.java.ipa.callgraph.AstJavaCFABuilder
                      extended by com.ibm.wala.cast.java.ipa.callgraph.AstJavaZeroOneContainerCFABuilder
All Implemented Interfaces:
CallGraphBuilder, HeapModel, InstanceKeyFactory, PointerKeyFactory

public class AstJavaZeroOneContainerCFABuilder
extends AstJavaCFABuilder

0-1-CFA Call graph builder which analyzes calls to "container methods" in a context which is defined by the receiver instance.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.ibm.wala.cast.java.ipa.callgraph.AstJavaSSAPropagationCallGraphBuilder
AstJavaSSAPropagationCallGraphBuilder.AstJavaConstraintVisitor, AstJavaSSAPropagationCallGraphBuilder.AstJavaInterestingVisitor, AstJavaSSAPropagationCallGraphBuilder.EnclosingObjectReferenceKey
 
Nested classes/interfaces inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
AstSSAPropagationCallGraphBuilder.AstConstraintVisitor, AstSSAPropagationCallGraphBuilder.AstInterestingVisitor, AstSSAPropagationCallGraphBuilder.AstPointerAnalysisImpl
 
Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
SSAPropagationCallGraphBuilder.ConstraintVisitor, SSAPropagationCallGraphBuilder.InterestingVisitor
 
Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
PropagationCallGraphBuilder.ArrayLoadOperator, PropagationCallGraphBuilder.ArrayStoreOperator, PropagationCallGraphBuilder.FilterOperator, PropagationCallGraphBuilder.GetFieldOperator, PropagationCallGraphBuilder.InstanceArrayStoreOperator, PropagationCallGraphBuilder.InstancePutFieldOperator, PropagationCallGraphBuilder.InverseFilterOperator, PropagationCallGraphBuilder.MutableBoolean, PropagationCallGraphBuilder.PutFieldOperator, PropagationCallGraphBuilder.TypedPointerKey
 
Field Summary
 
Fields inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
DEBUG_PROPERTIES, DEBUG_TYPE_INFERENCE
 
Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
PERIODIC_WIPE_SOFT_CACHES, SHORT_CIRCUIT_SINGLE_USES, WIPE_SOFT_CACHE_INTERVAL
 
Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
assignOperator, callGraph, cha, contextSelector, DEBUG_GENERAL, entrypointCallSites, filterOperator, instanceKeyFactory, inverseFilterOperator, options, pointerKeyFactory, system
 
Constructor Summary
AstJavaZeroOneContainerCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter)
           
 
Method Summary
protected  ContextSelector makeContainerContextSelector(IClassHierarchy cha, ZeroXInstanceKeys keys)
           
protected  ZeroXInstanceKeys makeInstanceKeys(IClassHierarchy cha, AnalysisOptions options, SSAContextInterpreter contextInterpreter)
           
 
Methods inherited from class com.ibm.wala.cast.java.ipa.callgraph.AstJavaSSAPropagationCallGraphBuilder
makeInterestingVisitor, makeTypeInference, makeVisitor, useObjectCatalog
 
Methods inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
createEmptyCallGraph, hasNoInterestingUses, isUncataloguedField, makeDefaultContextInterpreters, makeVisitor
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
addBlockInstructionConstraints, addConstraintsFromNode, addNodeInstructionConstraints, addNodePassthruExceptionConstraints, contentsAreInvariant, contentsAreInvariant, getCaughtExceptionTypes, getCFAContextInterpreter, getIncomingPEIs, getInstanceKeyForPEI, getInstanceKeyForPEI, getInvariantContents, getInvariantContents, getTargetPointerKey, getTargetsForCall, getUniqueCatchKey, hasUniqueCatchBlock, isConstantRef, iterateCrossProduct, iteratePointerKeys, makeSolver, processCallingConstraints, unconditionallyAddConstraintsFromNode
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
addAssignmentsForCatchPointerKey, addConstraintsFromChangedNode, addConstraintsFromNewNodes, assignInstanceToCatch, catches, customInit, filterForClass, getAnalysisCache, getCallGraph, getClassHierarchy, getContextInterpreter, getContextSelector, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getInstanceKeyForAllocation, getInstanceKeyForClassObject, getInstanceKeyForConstant, getInstanceKeyForMultiNewArray, getInstanceKeys, getInstanceKeysForClass, getJavaLangObject, getMutableInstanceKeysForClass, getOptions, getPointerAnalysis, getPointerKeyFactory, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getPropagationSystem, getSolver, getTargetForCall, haveAlreadyVisited, isJavaLangObject, makeCallGraph, makeCallGraph, makeSystem, markAlreadyVisited, markChanged, markDiscovered, representsNullType, setContextInterpreter, setContextSelector, setInstanceKeys, wasChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.HeapModel
getClassHierarchy
 
Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory
getInstanceKeyForAllocation, getInstanceKeyForClassObject, getInstanceKeyForConstant, getInstanceKeyForMultiNewArray
 
Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory
getFilteredPointerKeyForLocal, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField
 

Constructor Detail

AstJavaZeroOneContainerCFABuilder

public AstJavaZeroOneContainerCFABuilder(IClassHierarchy cha,
                                         AnalysisOptions options,
                                         AnalysisCache cache,
                                         ContextSelector appContextSelector,
                                         SSAContextInterpreter appContextInterpreter)
Parameters:
cha - governing class hierarchy
warnings - object to track analysis warnings
options - call graph construction options
appContextSelector - application-specific logic to choose contexts
appContextInterpreter - application-specific logic to interpret a method in context
reflect - reflection specification
Method Detail

makeInstanceKeys

protected ZeroXInstanceKeys makeInstanceKeys(IClassHierarchy cha,
                                             AnalysisOptions options,
                                             SSAContextInterpreter contextInterpreter)

makeContainerContextSelector

protected ContextSelector makeContainerContextSelector(IClassHierarchy cha,
                                                       ZeroXInstanceKeys keys)
Parameters:
cha -
keys -
Returns:
an object which creates contexts for call graph nodes based on the container disambiguation policy