Class CountingTcRelation<V>
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.base.itc.alg.counting.CountingTcRelation<V>
-
- Type Parameters:
V
-
- All Implemented Interfaces:
ITcRelation<V>
public class CountingTcRelation<V> extends java.lang.Object implements ITcRelation<V>
Transitive closure relation implementation for the Counting algorithm.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CountingTcRelation(boolean backwardIndexing)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addTuple(V source, V target, int count)
Returns true if the tc relation did not contain previously such a tuple that is defined by (source,target), false otherwise (in this case count is incremented with the given count parameter).protected void
clear()
boolean
containsTuple(V source, V target)
Returns true if a (source, target) node is present in the transitive closure relation, false otherwise.static <V> CountingTcRelation<V>
createFrom(IBiDirectionalGraphDataSource<V> gds)
void
deleteTupleEnd(V deleted)
boolean
equals(java.lang.Object obj)
int
getCount(V source, V target)
java.util.Set<V>
getTupleEnds(V source)
Returns the set of nodes that are reachable from the given node.java.util.Set<V>
getTupleStarts()
Returns the starting nodes from a transitive closure relation.java.util.Set<V>
getTupleStarts(V target)
Returns the set of nodes from which the target node is reachable, if already computed.int
hashCode()
protected boolean
isEmpty()
java.lang.String
toString()
protected void
union(CountingTcRelation<V> rA)
boolean
updateTuple(V source, V target, boolean isInsertion)
Derivation count of the tuple (source,target) is incremented or decremented.
-
-
-
Method Detail
-
isEmpty
protected boolean isEmpty()
-
clear
protected void clear()
-
union
protected void union(CountingTcRelation<V> rA)
-
addTuple
public boolean addTuple(V source, V target, int count)
Returns true if the tc relation did not contain previously such a tuple that is defined by (source,target), false otherwise (in this case count is incremented with the given count parameter).- Parameters:
source
- the source of the tupletarget
- the target of the tuplecount
- the count of the tuple, must be positive- Returns:
- true if the relation did not contain previously the tuple
-
updateTuple
public boolean updateTuple(V source, V target, boolean isInsertion)
Derivation count of the tuple (source,target) is incremented or decremented. Returns true iff updated to / from zero derivation count.- Since:
- 1.7
-
deleteTupleEnd
public void deleteTupleEnd(V deleted)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getTupleEnds
public java.util.Set<V> getTupleEnds(V source)
Description copied from interface:ITcRelation
Returns the set of nodes that are reachable from the given node.- Specified by:
getTupleEnds
in interfaceITcRelation<V>
- Parameters:
source
- the starting node- Returns:
- the set of reachable nodes
-
getTupleStarts
public java.util.Set<V> getTupleStarts(V target)
Returns the set of nodes from which the target node is reachable, if already computed.- Parameters:
target
- the target node- Returns:
- the set of source nodes
- Throws:
java.lang.UnsupportedOperationException
- if backwards index not computed
-
getTupleStarts
public java.util.Set<V> getTupleStarts()
Description copied from interface:ITcRelation
Returns the starting nodes from a transitive closure relation.- Specified by:
getTupleStarts
in interfaceITcRelation<V>
- Returns:
- the set of starting nodes
-
containsTuple
public boolean containsTuple(V source, V target)
Returns true if a (source, target) node is present in the transitive closure relation, false otherwise.- Parameters:
source
- the source nodetarget
- the target node- Returns:
- true if tuple is present, false otherwise
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
createFrom
public static <V> CountingTcRelation<V> createFrom(IBiDirectionalGraphDataSource<V> gds)
-
-