public class BehaviorContextMatcher extends BaseMatcher<BehaviorContextMatch>
Use the pattern matcher on a given model via on(IncQueryEngine)
,
e.g. in conjunction with IncQueryEngine.on(Notifier)
.
Matches of the pattern will be represented as BehaviorContextMatch
.
Original source:
A Behavior that is directly owned as a nestedClassifier does not have a context.
Otherwise, to determine the context of a Behavior, find the first
BehavioredClassifier reached by following the chain of owner relationships
from the Behavior, if any. If there is such a BehavioredClassifier, then it
is the context, unless it is itself a Behavior with a non-empty context, in
which case that is also the context for the original Behavior.
(if nestingClass < > null then
null
else
let b:BehavioredClassifier = self.behavioredClassifier(self.owner) in
if b.oclIsKindOf(Behavior) and b.oclAsType(Behavior)._'context' < > null then
b.oclAsType(Behavior)._'context'
else
b
endif
endif
)
// Can't compile OCL to IncQuery because of org.eclipse.ocl.SemanticException: Unrecognized variable: (nestingClass)
@Surrogate(feature = "context")
pattern behaviorContext(source: Behavior, target: BehavioredClassifier) {
find internalBehaviorContext+(source, target);
neg find internalBehaviorContext(target, _);
}
BehaviorContextMatch
,
BehaviorContextProcessor
,
BehaviorContextQuerySpecification
Constructor and Description |
---|
BehaviorContextMatcher(IncQueryEngine engine)
Deprecated.
use
on(IncQueryEngine) instead |
BehaviorContextMatcher(org.eclipse.emf.common.notify.Notifier emfRoot)
Deprecated.
use
on(IncQueryEngine) instead, e.g. in conjunction with IncQueryEngine.on(Notifier) |
Modifier and Type | Method and Description |
---|---|
int |
countMatches(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget)
Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
|
void |
forEachMatch(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget,
IMatchProcessor<? super BehaviorContextMatch> processor)
Executes the given processor on each match of the pattern that conforms to the given fixed values of some parameters.
|
boolean |
forOneArbitraryMatch(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget,
IMatchProcessor<? super BehaviorContextMatch> processor)
Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
|
java.util.Collection<BehaviorContextMatch> |
getAllMatches(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget)
Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
|
java.util.Set<org.eclipse.uml2.uml.Behavior> |
getAllValuesOfsource()
Retrieve the set of values that occur in matches for source.
|
java.util.Set<org.eclipse.uml2.uml.Behavior> |
getAllValuesOfsource(BehaviorContextMatch partialMatch)
Retrieve the set of values that occur in matches for source.
|
java.util.Set<org.eclipse.uml2.uml.Behavior> |
getAllValuesOfsource(org.eclipse.uml2.uml.BehavioredClassifier pTarget)
Retrieve the set of values that occur in matches for source.
|
java.util.Set<org.eclipse.uml2.uml.BehavioredClassifier> |
getAllValuesOftarget()
Retrieve the set of values that occur in matches for target.
|
java.util.Set<org.eclipse.uml2.uml.BehavioredClassifier> |
getAllValuesOftarget(org.eclipse.uml2.uml.Behavior pSource)
Retrieve the set of values that occur in matches for target.
|
java.util.Set<org.eclipse.uml2.uml.BehavioredClassifier> |
getAllValuesOftarget(BehaviorContextMatch partialMatch)
Retrieve the set of values that occur in matches for target.
|
BehaviorContextMatch |
getOneArbitraryMatch(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget)
Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
|
boolean |
hasMatch(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget)
Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
under any possible substitution of the unspecified parameters (if any).
|
BehaviorContextMatch |
newMatch(org.eclipse.uml2.uml.Behavior pSource,
org.eclipse.uml2.uml.BehavioredClassifier pTarget)
Returns a new (partial) match.
|
static BehaviorContextMatcher |
on(IncQueryEngine engine)
Initializes the pattern matcher within an existing EMF-IncQuery engine.
|
static IQuerySpecification<BehaviorContextMatcher> |
querySpecification() |
countMatches, countMatches, forEachMatch, forEachMatch, forOneArbitraryMatch, forOneArbitraryMatch, getAllMatches, getAllMatches, getAllValues, getAllValues, getEngine, getOneArbitraryMatch, getOneArbitraryMatch, getParameterNames, getPatternName, getPositionOfParameter, getSpecification, hasMatch, newEmptyMatch, newMatch
@Deprecated public BehaviorContextMatcher(org.eclipse.emf.common.notify.Notifier emfRoot) throws IncQueryException
on(IncQueryEngine)
instead, e.g. in conjunction with IncQueryEngine.on(Notifier)
The matcher will be created within the managed IncQueryEngine
belonging to the EMF model root, so
multiple matchers will reuse the same engine and benefit from increased performance and reduced memory footprint.
emfRoot
- the root of the EMF containment hierarchy where the pattern matcher will operate. Recommended: Resource or ResourceSet.IncQueryException
- if an error occurs during pattern matcher creation@Deprecated public BehaviorContextMatcher(IncQueryEngine engine) throws IncQueryException
on(IncQueryEngine)
insteadengine
- the existing EMF-IncQuery engine in which this matcher will be created.IncQueryException
- if an error occurs during pattern matcher creationpublic static BehaviorContextMatcher on(IncQueryEngine engine) throws IncQueryException
engine
- the existing EMF-IncQuery engine in which this matcher will be created.IncQueryException
- if an error occurs during pattern matcher creationpublic java.util.Collection<BehaviorContextMatch> getAllMatches(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget)
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.public BehaviorContextMatch getOneArbitraryMatch(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget)
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.public boolean hasMatch(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget)
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.public int countMatches(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget)
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.public void forEachMatch(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget, IMatchProcessor<? super BehaviorContextMatch> processor)
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.processor
- the action that will process each pattern match.public boolean forOneArbitraryMatch(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget, IMatchProcessor<? super BehaviorContextMatch> processor)
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.processor
- the action that will process the selected match.public BehaviorContextMatch newMatch(org.eclipse.uml2.uml.Behavior pSource, org.eclipse.uml2.uml.BehavioredClassifier pTarget)
The returned match will be immutable. Use BaseMatcher.newEmptyMatch()
to obtain a mutable match object.
pSource
- the fixed value of pattern parameter source, or null if not bound.pTarget
- the fixed value of pattern parameter target, or null if not bound.public java.util.Set<org.eclipse.uml2.uml.Behavior> getAllValuesOfsource()
public java.util.Set<org.eclipse.uml2.uml.Behavior> getAllValuesOfsource(BehaviorContextMatch partialMatch)
public java.util.Set<org.eclipse.uml2.uml.Behavior> getAllValuesOfsource(org.eclipse.uml2.uml.BehavioredClassifier pTarget)
public java.util.Set<org.eclipse.uml2.uml.BehavioredClassifier> getAllValuesOftarget()
public java.util.Set<org.eclipse.uml2.uml.BehavioredClassifier> getAllValuesOftarget(BehaviorContextMatch partialMatch)
public java.util.Set<org.eclipse.uml2.uml.BehavioredClassifier> getAllValuesOftarget(org.eclipse.uml2.uml.Behavior pSource)
public static IQuerySpecification<BehaviorContextMatcher> querySpecification() throws IncQueryException
IncQueryException
- if the pattern definition could not be loaded