Class TransferInput<V extends AbstractValue<V>,S extends Store<S>> 
- Type Parameters:
- V- type of the abstract value that is tracked
- S- the store type used in the analysis
- All Implemented Interfaces:
- org.plumelib.util.UniqueId
TransferInput is used as the input type of the individual transfer functions of a ForwardTransferFunction or a BackwardTransferFunction. It also contains a reference to
 the node for which the transfer function will be applied.
 A TransferInput contains one or two stores. If two stores are present, one belongs to
 'then', and the other to 'else'.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionThe corresponding analysis class to get intermediate flow results.The 'else' result store (ornullif none is present).The corresponding node.The 'then' result store (ornullif none is present).
- 
Constructor SummaryConstructorsModifierConstructorDescriptionCreate aTransferInput, given a store and a node-value mapping.Create aTransferInput, given two stores and a node-value mapping.protectedTransferInput(TransferInput<V, S> from) Copy constructor.TransferInput(Node n, Analysis<V, S, ?> analysis, TransferResult<V, S> to) Create aTransferInput, given aTransferResultand a node-value mapping.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanReturnstrueif and only if this transfer input contains two stores that are potentially not equal.copy()Returns an exact copy of this store.booleanReturns the result store produced if theNodethis result belongs to evaluates tofalse.getNode()Returns theNodefor thisTransferInput.Returns the regular result store produced if no exception is thrown by theNodecorresponding to this transfer function result.Returns the result store produced if theNodethis result belongs to evaluates totrue.longgetUid()Returns the abstract value of noden, which is required to be a 'sub-node' (that is, a direct or indirect child) of the node this transfer input is associated with.inthashCode()leastUpperBound(TransferInput<V, S> other) Compute the least upper bound of two stores.toString()Methods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.plumelib.util.UniqueIdgetClassAndUid
- 
Field Details
- 
Constructor Details- 
TransferInputCreate aTransferInput, given aTransferResultand a node-value mapping.Aliasing: The stores returned by any methods of towill be stored internally and are not allowed to be used elsewhere. Full control of them is transferred to this object.The node-value mapping nodeValuesis provided by the analysis and is only read from within thisTransferInput.
- 
TransferInputCreate aTransferInput, given a store and a node-value mapping.Aliasing: The store swill be stored internally and is not allowed to be used elsewhere. Full control oversis transferred to this object.The node-value mapping nodeValuesis provided by the analysis and is only read from within thisTransferInput.
- 
TransferInputCreate aTransferInput, given two stores and a node-value mapping.Aliasing: The two stores s1ands2will be stored internally and are not allowed to be used elsewhere. Full control of them is transferred to this object.
- 
TransferInputCopy constructor.- Parameters:
- from- a- TransferInputto copy
 
 
- 
- 
Method Details- 
getUidpublic long getUid(@UnknownInitialization TransferInput<V extends AbstractValue<V>, S extends Store<S>> this) - Specified by:
- getUidin interface- org.plumelib.util.UniqueId
 
- 
getNodeReturns theNodefor thisTransferInput.- Returns:
- the Nodefor thisTransferInput
 
- 
getValueOfSubNodeReturns the abstract value of noden, which is required to be a 'sub-node' (that is, a direct or indirect child) of the node this transfer input is associated with. Furthermore,ncannot be a l-value node. Returnsnullif no value is available.- Parameters:
- n- a node
- Returns:
- the abstract value of node n, ornullif no value is available
 
- 
getRegularStoreReturns the regular result store produced if no exception is thrown by theNodecorresponding to this transfer function result.- Returns:
- the regular result store produced if no exception is thrown by the Nodecorresponding to this transfer function result
 
- 
getThenStoreReturns the result store produced if theNodethis result belongs to evaluates totrue.- Returns:
- the result store produced if the Nodethis result belongs to evaluates totrue
 
- 
getElseStoreReturns the result store produced if theNodethis result belongs to evaluates tofalse.- Returns:
- the result store produced if the Nodethis result belongs to evaluates tofalse
 
- 
containsTwoStorespublic boolean containsTwoStores()Returnstrueif and only if this transfer input contains two stores that are potentially not equal. Note that the resulttruedoes not imply thatgetRegularStorecannot be called (or vice versa forfalse). Rather, it indicates thatgetThenStoreorgetElseStorecan be used to give more precise results. Otherwise, if the result isfalse, then all three methodsgetRegularStore,getThenStore, andgetElseStorereturn equivalent stores.- Returns:
- trueif and only if this transfer input contains two stores that are potentially not equal
 
- 
copyReturns an exact copy of this store.- Returns:
- an exact copy of this store
 
- 
leastUpperBoundCompute the least upper bound of two stores.Important: This method must fulfill the same contract as leastUpperBoundofStore.- Parameters:
- other- a transfer input
- Returns:
- the least upper bound of this and other
 
- 
equals
- 
hashCodepublic int hashCode()
- 
toString
 
-