org.jactr.core.production.condition
Class ChunkPattern
java.lang.Object
org.jactr.core.production.condition.AbstractSlotCondition
org.jactr.core.production.condition.ChunkPattern
- All Implemented Interfaces:
- ICondition, ISlotContainer
public class ChunkPattern
- extends AbstractSlotCondition
ChunkPatterns are a type of condition used only for searching within a model
they are not to be used as conditions in a production..
|
Method Summary |
int |
bind(IModel model,
java.util.Map<java.lang.String,java.lang.Object> variableBindings,
boolean isIterative)
Iteratively perform the resolution and binding for this condition. |
ChunkPattern |
clone(IModel model,
java.util.Map<java.lang.String,java.lang.Object> variableBindings)
attempt to clone this condition before it will be bound in the
instantiation phase. |
IChunkType |
getChunkType()
|
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ChunkPattern
public ChunkPattern(IChunkType chunkType,
java.util.Collection<? extends ISlot> slots)
ChunkPattern
public ChunkPattern(IChunkType chunkType)
ChunkPattern
public ChunkPattern()
clone
public ChunkPattern clone(IModel model,
java.util.Map<java.lang.String,java.lang.Object> variableBindings)
throws CannotMatchException
- Description copied from interface:
ICondition
- attempt to clone this condition before it will be bound in the
instantiation phase. We pass the current bindings so that the condition can
do an early rejection if possible.
- Returns:
- a writable copy of the condition that will be bound
- Throws:
CannotMatchException - if there is no way this condition can be matched
getChunkType
public IChunkType getChunkType()
bind
public int bind(IModel model,
java.util.Map<java.lang.String,java.lang.Object> variableBindings,
boolean isIterative)
throws CannotMatchException
- Description copied from interface:
ICondition
- Iteratively perform the resolution and binding for this condition. If this
condition defines any variables, they are placed into the bindings map for
other conditions to exploit. Similarly, it will resolve any bindings that
it needs in order to be matched. If at any point the condition determines
that it cannot be matched, the exception is to be thrown. Similarly, if
isIterative is false, and there are unresolved bindings, the exception
should be thrown.
Otherwise, the number of unresolved bindings is returned which allows the
instantiation calculation determine if another resolution round is
required.
- Returns:
- number of unresolved variables
- Throws:
CannotMatchException