public abstract class AbstractSpecialInvokeTypeFlow extends DirectInvokeTypeFlow
calleeactualParameters, actualReturn, isContextInsensitive, originalInvoke, receiverType, targetMethoddeclaredType, graphRef, id, inQueue, nextId, source, state, usedAsAParameter, usedAsAReceiver| Modifier | Constructor and Description |
|---|---|
protected |
AbstractSpecialInvokeTypeFlow(BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn) |
protected |
AbstractSpecialInvokeTypeFlow(PointsToAnalysis bb,
MethodFlowsGraph methodFlows,
AbstractSpecialInvokeTypeFlow original) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addState(PointsToAnalysis bb,
TypeState add,
boolean postFlow) |
abstract Collection<MethodFlowsGraph> |
getCalleesFlows(PointsToAnalysis bb)
Returns the context sensitive method flows for the callees resolved for the invoke type flow.
|
protected void |
initCallee()
Initialize the callee lazily so that if the invoke flow is not reached in this context, i.e.
|
void |
onObservedSaturated(PointsToAnalysis bb,
TypeFlow<?> observed)
Notified by an observed flow that it is saturated.
|
abstract void |
onObservedUpdate(PointsToAnalysis bb)
Notify the observer that the observed type flow state has changed.
|
String |
toString() |
void |
update(PointsToAnalysis bb) |
getCallees, isDirectInvokeactualParametersCount, canBeStaticallyBound, filterReceiverState, getActualParameter, getActualParameters, getActualReturn, getOriginalInvoke, getPosition, getReceiver, getReceiverType, getResult, getTargetMethod, isContextInsensitive, isContextInsensitiveVirtualInvoke, linkCallee, linkReturn, markAsContextInsensitive, setActualReturn, setObserved, updateReceiver, updateReceiveraddInput, addObservee, addObserver, addObserver, addState, addUse, addUse, canSaturate, copy, declaredTypeFilter, doAddUse, equals, filter, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initFlow, isAllInstantiated, isClone, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObserverOfSaturation, notifyUseOfSaturation, onInputSaturated, onSaturated, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapAtObserver, swapAtUse, swapOutprotected AbstractSpecialInvokeTypeFlow(BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn)
protected AbstractSpecialInvokeTypeFlow(PointsToAnalysis bb, MethodFlowsGraph methodFlows, AbstractSpecialInvokeTypeFlow original)
public boolean addState(PointsToAnalysis bb, TypeState add, boolean postFlow)
public void update(PointsToAnalysis bb)
protected void initCallee()
public abstract void onObservedUpdate(PointsToAnalysis bb)
TypeFlowonObservedUpdate in class TypeFlow<BytecodePosition>public void onObservedSaturated(PointsToAnalysis bb, TypeFlow<?> observed)
TypeFlowonObservedSaturated in class TypeFlow<BytecodePosition>public abstract Collection<MethodFlowsGraph> getCalleesFlows(PointsToAnalysis bb)
InvokeTypeFlowgetCalleesFlows in class InvokeTypeFlow