use of org.drools.core.beliefsystem.Mode in project drools by kiegroup.
the class TruthMaintenanceSystemImpl method addLogicalDependency.
private InternalFactHandle addLogicalDependency(final InternalFactHandle handle, final Object object, final Object value, final TruthMaintenanceSystemActivation activation, final ObjectTypeConf typeConf, final boolean read) {
BeliefSystem beliefSystem = defaultBeliefSystem;
if (value instanceof Mode & !(value instanceof SimpleMode)) {
BeliefSystemMode mode = (BeliefSystemMode) value;
beliefSystem = mode.getBeliefSystem();
}
BeliefSet beliefSet = ((TruthMaintenanceSystemEqualityKey) handle.getEqualityKey()).getBeliefSet();
if (beliefSet == null) {
beliefSet = beliefSystem.newBeliefSet(handle);
((TruthMaintenanceSystemEqualityKey) handle.getEqualityKey()).setBeliefSet(beliefSet);
}
final LogicalDependency node = beliefSystem.newLogicalDependency(activation, beliefSet, object, value);
activation.getRule().setHasLogicalDependency(true);
activation.addLogicalDependency(node);
if (read) {
// used when deserialising
beliefSystem.read(node, beliefSet, activation.getPropagationContext(), typeConf);
} else {
beliefSet = beliefSystem.insert(node, beliefSet, activation.getPropagationContext(), typeConf);
}
return beliefSet.getFactHandle();
}
Aggregations