Search in sources :

Example 26 with Tuple

use of org.drools.core.spi.Tuple in project drools by kiegroup.

the class TupleIndexHashTable method toArray.

public Tuple[] toArray() {
    Tuple[] result = new Tuple[this.factSize];
    int index = 0;
    for (Entry aTable : this.table) {
        TupleList bucket = (TupleList) aTable;
        while (bucket != null) {
            Tuple entry = bucket.getFirst();
            while (entry != null) {
                result[index++] = entry;
                entry = entry.getNext();
            }
            bucket = bucket.getNext();
        }
    }
    return result;
}
Also used : Entry(org.drools.core.util.Entry) Tuple(org.drools.core.spi.Tuple)

Example 27 with Tuple

use of org.drools.core.spi.Tuple in project drools by kiegroup.

the class TupleList method toString.

public String toString() {
    StringBuilder builder = new StringBuilder();
    Iterator it = iterator();
    for (Tuple tuple = (Tuple) it.next(); tuple != null; tuple = (Tuple) it.next()) {
        builder.append(tuple).append("\n");
    }
    return builder.toString();
}
Also used : FastIterator(org.drools.core.util.FastIterator) Iterator(org.drools.core.util.Iterator) Tuple(org.drools.core.spi.Tuple)

Example 28 with Tuple

use of org.drools.core.spi.Tuple in project drools by kiegroup.

the class TupleList method removeFirst.

public Tuple removeFirst() {
    Tuple tuple = this.first;
    if (this.last == tuple) {
        this.last = null;
        this.first = null;
    } else {
        this.first = tuple.getNext();
        if (this.first != null) {
            this.first.setPrevious(null);
        }
    }
    tuple.clear();
    this.size--;
    return tuple;
}
Also used : Tuple(org.drools.core.spi.Tuple)

Example 29 with Tuple

use of org.drools.core.spi.Tuple in project drools by kiegroup.

the class PersisterHelper method createTupleArray.

public static int[] createTupleArray(final Tuple leftTuple) {
    if (leftTuple != null) {
        int[] tuple = new int[leftTuple.size()];
        // tuple iterations happens backwards
        int i = tuple.length;
        for (Tuple entry = leftTuple; entry != null && i > 0; entry = entry.getParent()) {
            if (entry.getFactHandle() != null) {
                // can be null for eval, not and exists that have no right input
                // have to decrement i before assignment
                tuple[--i] = entry.getFactHandle().getId();
            }
        }
        return tuple;
    } else {
        return new int[0];
    }
}
Also used : Tuple(org.drools.core.spi.Tuple)

Example 30 with Tuple

use of org.drools.core.spi.Tuple in project drools by kiegroup.

the class StatefulKnowledgeSessionImpl method getActivationParameters.

public Map getActivationParameters(Activation activation) {
    if (activation instanceof RuleAgendaItem) {
        RuleAgendaItem ruleAgendaItem = (RuleAgendaItem) activation;
        TupleList tupleList = ruleAgendaItem.getRuleExecutor().getLeftTupleList();
        Map result = new TreeMap();
        int i = 0;
        for (Tuple tuple = tupleList.getFirst(); tuple != null; tuple = tuple.getNext()) {
            Map params = getActivationParameters(tuple);
            result.put("Parameters set [" + i++ + "]", (Map.Entry[]) params.entrySet().toArray(new Map.Entry[params.size()]));
        }
        return result;
    } else {
        return getActivationParameters(activation.getTuple());
    }
}
Also used : TupleList(org.drools.core.util.index.TupleList) RuleAgendaItem(org.drools.core.phreak.RuleAgendaItem) PropagationEntry(org.drools.core.phreak.PropagationEntry) TreeMap(java.util.TreeMap) Map(java.util.Map) TreeMap(java.util.TreeMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) NamedEntryPoint(org.drools.core.common.NamedEntryPoint) WorkingMemoryEntryPoint(org.drools.core.WorkingMemoryEntryPoint) InternalWorkingMemoryEntryPoint(org.drools.core.common.InternalWorkingMemoryEntryPoint) LeftTuple(org.drools.core.reteoo.LeftTuple) Tuple(org.drools.core.spi.Tuple)

Aggregations

Tuple (org.drools.core.spi.Tuple)54 InternalFactHandle (org.drools.core.common.InternalFactHandle)17 LeftTuple (org.drools.core.reteoo.LeftTuple)16 RightTuple (org.drools.core.reteoo.RightTuple)14 FastIterator (org.drools.core.util.FastIterator)14 Declaration (org.drools.core.rule.Declaration)9 InternalWorkingMemory (org.drools.core.common.InternalWorkingMemory)8 WorkingMemory (org.drools.core.WorkingMemory)7 RightTupleImpl (org.drools.core.reteoo.RightTupleImpl)7 Cheese (org.drools.core.test.model.Cheese)7 Test (org.junit.Test)7 DefaultFactHandle (org.drools.core.common.DefaultFactHandle)6 FieldIndex (org.drools.core.util.AbstractHashTable.FieldIndex)6 AccumulateContext (org.drools.core.reteoo.AccumulateNode.AccumulateContext)5 AccumulateMemory (org.drools.core.reteoo.AccumulateNode.AccumulateMemory)5 BetaMemory (org.drools.core.reteoo.BetaMemory)5 RuleTerminalNode (org.drools.core.reteoo.RuleTerminalNode)5 TupleMemory (org.drools.core.reteoo.TupleMemory)5 MethodVisitor (org.mvel2.asm.MethodVisitor)5 FromMemory (org.drools.core.reteoo.FromNode.FromMemory)4