Interface IPatternMatch
-
- All Superinterfaces:
java.lang.Cloneable
- All Known Implementing Classes:
BasePatternMatch
,GenericPatternMatch
public interface IPatternMatch extends java.lang.Cloneable
Generic interface for a single match of a pattern. Each instance is a (partial) substitution of pattern parameters, essentially a parameter to value mapping.Can also represent a partial match; unsubstituted parameters are assigned to null. Pattern matchers must never return a partial match, but they accept partial matches as method parameters.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.Object
get(int position)
Returns the value of the parameter at the given position, or null if position is invalid.java.lang.Object
get(java.lang.String parameterName)
Returns the value of the parameter with the given name, or null if name is invalid.boolean
isCompatibleWith(IPatternMatch other)
Checks that this match is compatible with the given other match.boolean
isMutable()
Returns whether the match object can be further modified after its creation.java.util.List<java.lang.String>
parameterNames()
Returns the list of symbolic parameter names.java.lang.String
patternName()
Identifies the name of the pattern for which this is a match.java.lang.String
prettyPrint()
Prints the list of parameter-value pairs.boolean
set(int position, java.lang.Object newValue)
Sets the parameter at the given position to the given value.boolean
set(java.lang.String parameterName, java.lang.Object newValue)
Sets the parameter with the given name to the given value.IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>
specification()
java.lang.Object[]
toArray()
Converts the match to an array representation, with each pattern parameter at their respective position.IPatternMatch
toImmutable()
Takes an immutable snapshot of this match.
-
-
-
Method Detail
-
specification
IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> specification()
- Returns:
- the pattern for which this is a match.
-
patternName
java.lang.String patternName()
Identifies the name of the pattern for which this is a match.
-
parameterNames
java.util.List<java.lang.String> parameterNames()
Returns the list of symbolic parameter names.
-
get
java.lang.Object get(java.lang.String parameterName)
Returns the value of the parameter with the given name, or null if name is invalid.
-
get
java.lang.Object get(int position)
Returns the value of the parameter at the given position, or null if position is invalid.
-
set
boolean set(java.lang.String parameterName, java.lang.Object newValue)
Sets the parameter with the given name to the given value.Works only if match is mutable. See
isMutable()
.- Throws:
java.lang.UnsupportedOperationException
- if match is not mutable.
-
set
boolean set(int position, java.lang.Object newValue)
Sets the parameter at the given position to the given value.Works only if match is mutable. See
isMutable()
.- Throws:
java.lang.UnsupportedOperationException
- if match is not mutable.
-
isMutable
boolean isMutable()
Returns whether the match object can be further modified after its creation. Setters work only if the match is mutable.Matches computed by the pattern matchers are not mutable, so that the match set cannot be modified externally. Partial matches used as matcher input, however, can be mutable; such match objects can be created using
ViatraQueryMatcher.newEmptyMatch()
.- Returns:
- whether the match can be modified
-
toArray
java.lang.Object[] toArray()
Converts the match to an array representation, with each pattern parameter at their respective position. In case of a partial match, unsubstituted parameters will be represented as null elements in the array.- Returns:
- a newly constructed array containing each parameter substitution of the match in order.
-
toImmutable
IPatternMatch toImmutable()
Takes an immutable snapshot of this match.- Returns:
- the match itself in case of immutable matches, an immutable copy in case of mutable ones.
-
prettyPrint
java.lang.String prettyPrint()
Prints the list of parameter-value pairs.
-
isCompatibleWith
boolean isCompatibleWith(IPatternMatch other)
Checks that this match is compatible with the given other match. This is used for filtering the match set of a matcher. Two non-null matches are compatible if and only if:- They share the same pattern.
- For each parameter, where they are set (non-null) in both matches, their values are equal.
- Parameters:
other
-- Returns:
- true, if this is compatible with other, or other is null
-
-