Package dev.roanh.gmark.lang.cpq
Class EdgeCPQ
java.lang.Object
dev.roanh.gmark.lang.generic.GenericEdge
dev.roanh.gmark.lang.cpq.EdgeCPQ
- All Implemented Interfaces:
QueryFragment
,CPQ
,QueryLanguageSyntax
,OutputFormal
,OutputSQL
,OutputXML
CPQ modelling a single label traversal.
-
Field Summary
Fields inherited from class dev.roanh.gmark.lang.generic.GenericEdge
symbol
Fields inherited from interface dev.roanh.gmark.lang.QueryLanguageSyntax
CHAR_DISJUNCTION, CHAR_INTERSECTION, CHAR_INVERSE, CHAR_JOIN, CHAR_KLEENE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Returns the diameter of this CPQ.boolean
isLoop()
Tests if this CPQ is a loop, meaning its source and target are the same.toQueryGraph
(QueryGraphCPQ.Vertex source, QueryGraphCPQ.Vertex target) Computes and returns the query graph for this CPQ using the given source and target vertices for the computation.Methods inherited from class dev.roanh.gmark.lang.generic.GenericEdge
getLabel, getOperationType, toAbstractSyntaxTree, toFormalSyntax, toString, writeSQL, writeXML
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface dev.roanh.gmark.lang.cpq.CPQ
computeCore, getQueryLanguage, isHomomorphicTo, toQueryGraph
Methods inherited from interface dev.roanh.gmark.output.OutputFormal
toFormalSyntax
Methods inherited from interface dev.roanh.gmark.ast.QueryFragment
getOperationType, toAbstractSyntaxTree
-
Constructor Details
-
EdgeCPQ
Constructs a new edge CPQ with the given label to traverse.- Parameters:
symbol
- The label to traverse.
-
-
Method Details
-
toQueryGraph
Description copied from interface:CPQ
Computes and returns the query graph for this CPQ using the given source and target vertices for the computation. Usually usingCPQ.toQueryGraph()
instead should be sufficient for most use cases, using this version instead can lead to unexpected results.- Specified by:
toQueryGraph
in interfaceCPQ
- Parameters:
source
- The source vertex to use.target
- The target vertex to use.- Returns:
- The query graph for this CPQ.
- See Also:
-
getDiameter
public int getDiameter()Description copied from interface:CPQ
Returns the diameter of this CPQ. The diameter of a CPQ is the largest number of labels to which the join operation is applied. A simpler way to think of this concept is the length of the largest path through the CPQ from source to target.- Specified by:
getDiameter
in interfaceCPQ
- Returns:
- The diameter of this CPQ.
-
isLoop
public boolean isLoop()Description copied from interface:CPQ
Tests if this CPQ is a loop, meaning its source and target are the same. When visualised as a query graph this means that the source and target node are the same node. In its grammar form this means that there is an intersection with identity at the highest level in the CPQ.
-