Class ExtendBinaryTransitiveClosure
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.localsearch.operations.extend.ExtendBinaryTransitiveClosure
-
- All Implemented Interfaces:
IPatternMatcherOperation
,ISearchOperation
- Direct Known Subclasses:
ExtendBinaryTransitiveClosure.Backward
,ExtendBinaryTransitiveClosure.Forward
public abstract class ExtendBinaryTransitiveClosure extends java.lang.Object implements ISearchOperation, IPatternMatcherOperation
Checking for a transitive closure expressed as a local search pattern matcher. The matched pattern must have two parameters of the same model type.- Since:
- 1.7
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ExtendBinaryTransitiveClosure.Backward
Calculates the transitive closure of a pattern match in a backward direction (first parameter unbound, second bound)static class
ExtendBinaryTransitiveClosure.Forward
Calculates the transitive closure of a pattern match in a forward direction (first parameter bound, second unbound).-
Nested classes/interfaces inherited from interface org.eclipse.viatra.query.runtime.localsearch.operations.ISearchOperation
ISearchOperation.ISearchOperationExecutor
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ExtendBinaryTransitiveClosure(CallInformation information, int seedPosition, int targetPosition, boolean reflexive)
The source position will be matched in the called pattern to the first parameter; while target to the second.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract java.lang.Object[]
calculateCallFrame(java.lang.Object seed)
ISearchOperation.ISearchOperationExecutor
createExecutor()
Initializes a new operation executor for the given operation.CallInformation
getCallInformation()
Returns the precomputed call information associated with the current operationprotected abstract java.lang.Object
getTarget(Tuple frame)
java.util.List<java.lang.Integer>
getVariablePositions()
java.lang.String
toString()
java.lang.String
toString(java.util.function.Function<java.lang.Integer,java.lang.String> variableMapping)
Creates a string representation of the search operation by replacing the variable numbers according to the parameter function.
-
-
-
Constructor Detail
-
ExtendBinaryTransitiveClosure
protected ExtendBinaryTransitiveClosure(CallInformation information, int seedPosition, int targetPosition, boolean reflexive)
The source position will be matched in the called pattern to the first parameter; while target to the second.- Since:
- 2.0
-
-
Method Detail
-
calculateCallFrame
protected abstract java.lang.Object[] calculateCallFrame(java.lang.Object seed)
-
getTarget
protected abstract java.lang.Object getTarget(Tuple frame)
-
createExecutor
public ISearchOperation.ISearchOperationExecutor createExecutor()
Description copied from interface:ISearchOperation
Initializes a new operation executor for the given operation. Repeated calls must return different executor instances.- Specified by:
createExecutor
in interfaceISearchOperation
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toString
public java.lang.String toString(java.util.function.Function<java.lang.Integer,java.lang.String> variableMapping)
Description copied from interface:ISearchOperation
Creates a string representation of the search operation by replacing the variable numbers according to the parameter function. It is expected that the provided function does return a non-null value for each variable index that is returned byISearchOperation.getVariablePositions()
; otherwise aNullPointerException
will be thrown during the calculation of the string.- Specified by:
toString
in interfaceISearchOperation
-
getVariablePositions
public java.util.List<java.lang.Integer> getVariablePositions()
- Specified by:
getVariablePositions
in interfaceISearchOperation
- Returns:
- the ordered list of the variable numbers that are affected by the search operation
-
getCallInformation
public CallInformation getCallInformation()
Description copied from interface:IPatternMatcherOperation
Returns the precomputed call information associated with the current operation- Specified by:
getCallInformation
in interfaceIPatternMatcherOperation
-
-