Search in sources :

Example 1 with Mode

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();
}
Also used : BeliefSystemMode(org.drools.tms.beliefsystem.BeliefSystemMode) BeliefSystemMode(org.drools.tms.beliefsystem.BeliefSystemMode) Mode(org.drools.core.beliefsystem.Mode) BeliefSystem(org.drools.tms.beliefsystem.BeliefSystem) BeliefSet(org.drools.tms.beliefsystem.BeliefSet)

Aggregations

Mode (org.drools.core.beliefsystem.Mode)1 BeliefSet (org.drools.tms.beliefsystem.BeliefSet)1 BeliefSystem (org.drools.tms.beliefsystem.BeliefSystem)1 BeliefSystemMode (org.drools.tms.beliefsystem.BeliefSystemMode)1