Class IFDSTaintDomain<E extends ISSABasicBlock>
java.lang.Object
org.scandroid.domain.IFDSTaintDomain<E>
- All Implemented Interfaces:
TabulationDomain<DomainElement,
,BasicBlockInContext<E>> OrdinalSetMapping<DomainElement>
,Iterable<DomainElement>
public class IFDSTaintDomain<E extends ISSABasicBlock>
extends Object
implements TabulationDomain<DomainElement,BasicBlockInContext<E>>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
add
(DomainElement o) Add an Object to the set of mapped objects.int
getMappedObject
(int n) int
getPossibleElements
(CodeElement codeElement) int
getSize()
boolean
boolean
hasPriorityOver
(PathEdge<BasicBlockInContext<E>> p1, PathEdge<BasicBlockInContext<E>> p2) returnstrue
if p1 should be processed before p2 by theTabulationSolver
iterator()
stream()
Stream over mapped objects.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
IFDSTaintDomain
public IFDSTaintDomain()
-
-
Method Details
-
getPossibleElements
-
add
Description copied from interface:OrdinalSetMapping
Add an Object to the set of mapped objects.- Specified by:
add
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- the integer to which the object is mapped.
-
getMappedIndex
- Specified by:
getMappedIndex
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- the number of a given object, or -1 if the object is not currently in the range.
-
hasPriorityOver
public boolean hasPriorityOver(PathEdge<BasicBlockInContext<E>> p1, PathEdge<BasicBlockInContext<E>> p2) Description copied from interface:TabulationDomain
returnstrue
if p1 should be processed before p2 by theTabulationSolver
For example, if this domain supports a partial order on facts, return true if p1.d2 is weaker than p2.d2 (intuitively p1.d2 meet p2.d2 = p1.d2)
return false otherwise
- Specified by:
hasPriorityOver
in interfaceTabulationDomain<DomainElement,
BasicBlockInContext<E extends ISSABasicBlock>>
-
getMappedObject
- Specified by:
getMappedObject
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- the object numbered n.
-
getMaximumIndex
public int getMaximumIndex()- Specified by:
getMaximumIndex
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- the maximum integer mapped to an object
-
getSize
public int getSize()- Specified by:
getSize
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- the current size of the bijection
-
hasMappedIndex
- Specified by:
hasMappedIndex
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- whether the given object is mapped by this mapping
-
iterator
- Specified by:
iterator
in interfaceIterable<E extends ISSABasicBlock>
-
stream
Description copied from interface:OrdinalSetMapping
Stream over mapped objects.- Specified by:
stream
in interfaceOrdinalSetMapping<E extends ISSABasicBlock>
- Returns:
- a stream over the mapped objects
-
codeElements
-