public class RetePatternMatcher extends TransformerNode implements IQueryResultProvider
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
connected |
protected IQueryRuntimeContext |
context |
protected ReteEngine |
engine |
protected java.util.Map<java.lang.String,java.lang.Integer> |
posMapping |
protected Production |
productionNode |
protected RecipeTraceInfo |
productionNodeTrace |
protected java.util.Map<java.lang.Object,Receiver> |
taggedChildren |
mailbox, parentchildrennodeId, reteContainer, tag, traceInfos| Constructor and Description |
|---|
RetePatternMatcher(ReteEngine engine,
RecipeTraceInfo productionNodeTrace) |
| Modifier and Type | Method and Description |
|---|---|
void |
addUpdateListener(IUpdateable listener,
java.lang.Object listenerTag,
boolean fireNow)
Internal method that registers low-level callbacks for match appearance and disappearance.
|
void |
connect(Receiver receiver,
boolean synchronize)
Connects a new external receiver that will receive update notifications from now on.
|
void |
connect(Receiver receiver,
java.lang.Object tag,
boolean synchronize)
Connects a new external receiver that will receive update notifications from now on.
|
int |
count(java.lang.Object[] inputMapping,
boolean[] fixed)
Counts the number of occurrences of the pattern that match inputMapping on positions where fixed is true.
|
int |
countMatches(java.lang.Object[] parameters)
Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
|
void |
disconnect(Receiver receiver)
Disconnects a child node.
|
boolean |
disconnectByTag(java.lang.Object tag)
Disconnects the child node that was connected by specifying the given tag.
|
java.util.Collection<? extends Tuple> |
getAllMatches(java.lang.Object[] parameters)
Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
|
Tuple |
getOneArbitraryMatch(java.lang.Object[] parameters)
Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
|
Production |
getProductionNode() |
IQueryBackend |
getQueryBackend()
The underlying query evaluator backend.
|
java.util.ArrayList<Tuple> |
matchAll(java.lang.Object[] inputMapping,
boolean[] fixed) |
Tuple |
matchOne(java.lang.Object[] inputMapping,
boolean[] fixed) |
Tuple |
matchOneRandomly(java.lang.Object[] inputMapping,
boolean[] fixed) |
void |
removeUpdateListener(java.lang.Object listenerTag)
Removes an existing listener previously registered with the given tag.
|
protected Tuple |
transform(Tuple input) |
pullInto, updateappendParent, assignTraceInfo, getMailbox, getParents, instantiateMailbox, propagatePullInto, removeParentappendChild, constructIndex, getPulledContents, getReceivers, issueError, propagateUpdate, removeChildacceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCoreclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitappendChild, constructIndex, getPulledContents, getReceivers, removeChildacceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfos, setTagprotected ReteEngine engine
protected IQueryRuntimeContext context
protected Production productionNode
protected RecipeTraceInfo productionNodeTrace
protected java.util.Map<java.lang.String,java.lang.Integer> posMapping
protected java.util.Map<java.lang.Object,Receiver> taggedChildren
protected boolean connected
public RetePatternMatcher(ReteEngine engine, RecipeTraceInfo productionNodeTrace)
productionNode - a production node that matches this pattern without any parameter bindingspublic Production getProductionNode()
public Tuple matchOneRandomly(java.lang.Object[] inputMapping, boolean[] fixed)
public java.util.ArrayList<Tuple> matchAll(java.lang.Object[] inputMapping, boolean[] fixed)
public Tuple matchOne(java.lang.Object[] inputMapping, boolean[] fixed)
public int count(java.lang.Object[] inputMapping,
boolean[] fixed)
public void connect(Receiver receiver, boolean synchronize)
synchronize - if true, the contents of the production node will be inserted into the receiver after the connection
is established.public void connect(Receiver receiver, java.lang.Object tag, boolean synchronize)
tag - an identifier to recognize the child node by.synchronize - if true, the contents of the production node will be inserted into the receiver after the connection
is established.public void disconnect(Receiver receiver)
public boolean disconnectByTag(java.lang.Object tag)
protected Tuple transform(Tuple input)
transform in class TransformerNodepublic int countMatches(java.lang.Object[] parameters)
IQueryResultProvidercountMatches in interface IQueryResultProviderparameters - array where each non-null element binds the corresponding pattern parameter to a fixed value.public Tuple getOneArbitraryMatch(java.lang.Object[] parameters)
IQueryResultProvidergetOneArbitraryMatch in interface IQueryResultProviderparameters - array where each non-null element binds the corresponding pattern parameter to a fixed value.Tuple representation.public java.util.Collection<? extends Tuple> getAllMatches(java.lang.Object[] parameters)
IQueryResultProvidergetAllMatches in interface IQueryResultProviderparameters - array where each non-null element binds the corresponding pattern parameter to a fixed value.Tuple representation.public IQueryBackend getQueryBackend()
IQueryResultProvidergetQueryBackend in interface IQueryResultProviderpublic void addUpdateListener(IUpdateable listener, java.lang.Object listenerTag, boolean fireNow)
IQueryResultProviderCaution: This is a low-level callback that is invoked when the pattern matcher is not necessarily in a consistent state yet. Importantly, no model modification permitted during the callback.
The callback can be unregistered via invoking IQueryResultProvider.removeUpdateListener(Object) with the same tag.
addUpdateListener in interface IQueryResultProviderlistener - the listener that will be notified of each new match that appears or disappears, starting from now.listenerTag - a tag by which to identify the listener for later removal by IQueryResultProvider.removeUpdateListener(Object).fireNow - if true, the insertion update allback will be immediately invoked on all current matches as a one-time effect.public void removeUpdateListener(java.lang.Object listenerTag)
IQueryResultProviderremoveUpdateListener in interface IQueryResultProvider