Search in sources :

Example 21 with RightTupleImpl

use of org.drools.core.reteoo.RightTupleImpl in project drools by kiegroup.

the class BaseLeftTuplesBuilder method update.

public T update(Object... objects) {
    this.testStagedUpdate = true;
    if (objects == null) {
        objects = new Object[0];
    }
    for (int i = 0; i < objects.length; i++) {
        if (!(objects[i] instanceof Pair)) {
            Object o1 = objects[i];
            InternalFactHandle fh1 = (InternalFactHandle) wm.getFactHandle(o1);
            LeftTuple leftTuple = new LeftTupleImpl(fh1, sink, true);
            leftTuples.addUpdate(leftTuple);
        } else {
            Pair p = (Pair) objects[i];
            InternalFactHandle fh1 = (InternalFactHandle) wm.getFactHandle(p.getO1());
            LeftTuple leftTuple1 = new LeftTupleImpl(fh1, sink, true);
            InternalFactHandle fh2 = (InternalFactHandle) wm.getFactHandle(p.getO2());
            LeftTuple leftTuple2 = sink.createLeftTuple(leftTuple1, new RightTupleImpl(fh2), sink);
            leftTuples.addUpdate(leftTuple2);
        }
    }
    return (T) this;
}
Also used : LeftTupleImpl(org.drools.core.reteoo.LeftTupleImpl) RightTupleImpl(org.drools.core.reteoo.RightTupleImpl) InternalFactHandle(org.drools.core.common.InternalFactHandle) LeftTuple(org.drools.core.reteoo.LeftTuple)

Example 22 with RightTupleImpl

use of org.drools.core.reteoo.RightTupleImpl in project drools by kiegroup.

the class RightMemory method getRightTuples.

public List<RightTuple> getRightTuples(Object... objects) {
    BetaNode node = scenario.getBetaNode();
    BetaMemory bm = scenario.getBm();
    TupleMemory rtm = bm.getRightTupleMemory();
    InternalWorkingMemory wm = scenario.getWorkingMemory();
    if (objects == null) {
        objects = new Object[0];
    }
    List<RightTuple> rightTuples = new ArrayList<RightTuple>();
    for (Object object : objects) {
        InternalFactHandle fh = (InternalFactHandle) wm.insert(object);
        // node.createLeftTuple( fh, node, true );
        RightTuple expectedRightTuple = new RightTupleImpl(fh, node);
        expectedRightTuple.setPropagationContext(new PhreakPropagationContext());
        rightTuples.add(expectedRightTuple);
    }
    scenario.setTestRightMemory(true);
    return rightTuples;
}
Also used : InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) PhreakPropagationContext(org.drools.core.common.PhreakPropagationContext) BetaNode(org.drools.core.reteoo.BetaNode) ArrayList(java.util.ArrayList) BetaMemory(org.drools.core.reteoo.BetaMemory) RightTupleImpl(org.drools.core.reteoo.RightTupleImpl) InternalFactHandle(org.drools.core.common.InternalFactHandle) RightTuple(org.drools.core.reteoo.RightTuple) TupleMemory(org.drools.core.reteoo.TupleMemory)

Example 23 with RightTupleImpl

use of org.drools.core.reteoo.RightTupleImpl in project drools by kiegroup.

the class RightBuilder method insert.

public RightBuilder insert(Object... objects) {
    for (Object object : objects) {
        InternalFactHandle fh = (InternalFactHandle) wm.insert(object);
        RightTuple rightTuple = new RightTupleImpl(fh, sink);
        rightTuple.setPropagationContext(new PhreakPropagationContext());
        rightTuples.addInsert(rightTuple);
    }
    return this;
}
Also used : PhreakPropagationContext(org.drools.core.common.PhreakPropagationContext) RightTupleImpl(org.drools.core.reteoo.RightTupleImpl) InternalFactHandle(org.drools.core.common.InternalFactHandle) RightTuple(org.drools.core.reteoo.RightTuple)

Example 24 with RightTupleImpl

use of org.drools.core.reteoo.RightTupleImpl in project drools by kiegroup.

the class IndexedHashtableIteratorTest method testCanReachAllEntriesInLastTableRowRightTupleIndexHashTable.

@Test
public void testCanReachAllEntriesInLastTableRowRightTupleIndexHashTable() {
    // Construct a table with one row, containing one list, containing three entries.
    int numEntries = 3;
    TupleList[] table = new TupleList[3];
    TupleList rtList = new TupleList();
    table[0] = rtList;
    for (int i = 0; i < numEntries; i++) {
        RightTuple rightTuple = new RightTupleImpl();
        rightTuple.setMemory(rtList);
        rtList.add(rightTuple);
    }
    rtList = new TupleList();
    table[2] = rtList;
    for (int i = 0; i < numEntries; i++) {
        RightTuple rightTuple = new RightTupleImpl();
        rightTuple.setMemory(rtList);
        rtList.add(rightTuple);
    }
    rtList = new TupleList();
    table[2].setNext(rtList);
    for (int i = 0; i < numEntries; i++) {
        RightTuple rightTuple = new RightTupleImpl();
        rightTuple.setMemory(rtList);
        rtList.add(rightTuple);
    }
    // test fast
    TupleIndexHashTable.FullFastIterator iter = new TupleIndexHashTable.FullFastIterator(table);
    List<RightTuple> list = new ArrayList<RightTuple>();
    for (RightTuple rightTuple = (RightTuple) iter.next(null); rightTuple != null; rightTuple = (RightTuple) iter.next(rightTuple)) {
        // ensure no duplicate
        assertFalse(contains(list, rightTuple));
        list.add(rightTuple);
    }
    // test normal
    TupleIndexHashTable rthTable = new TupleIndexHashTable();
    rthTable.init(table, 3, numEntries * 3);
    TupleIndexHashTable.FieldIndexHashTableFullIterator iter2 = new TupleIndexHashTable.FieldIndexHashTableFullIterator(rthTable);
    list = new ArrayList<RightTuple>();
    for (RightTuple rightTuple = (RightTuple) iter2.next(); rightTuple != null; rightTuple = (RightTuple) iter2.next()) {
        // ensure no duplicate
        assertFalse(contains(list, rightTuple));
        list.add(rightTuple);
    }
    assertEquals(numEntries * 3, list.size());
}
Also used : ArrayList(java.util.ArrayList) RightTupleImpl(org.drools.core.reteoo.RightTupleImpl) TupleIndexHashTable(org.drools.core.util.index.TupleIndexHashTable) RightTuple(org.drools.core.reteoo.RightTuple) TupleList(org.drools.core.util.index.TupleList) Test(org.junit.Test)

Example 25 with RightTupleImpl

use of org.drools.core.reteoo.RightTupleImpl in project drools by kiegroup.

the class RightBuilder method insert.

public RightBuilder insert(Object... objects) {
    for (Object object : objects) {
        InternalFactHandle fh = (InternalFactHandle) wm.insert(object);
        RightTuple rightTuple = new RightTupleImpl(fh, sink);
        rightTuple.setPropagationContext(new PhreakPropagationContext());
        rightTuples.addInsert(rightTuple);
    }
    return this;
}
Also used : PhreakPropagationContext(org.drools.core.common.PhreakPropagationContext) RightTupleImpl(org.drools.core.reteoo.RightTupleImpl) InternalFactHandle(org.drools.core.common.InternalFactHandle) RightTuple(org.drools.core.reteoo.RightTuple)

Aggregations

RightTupleImpl (org.drools.core.reteoo.RightTupleImpl)32 InternalFactHandle (org.drools.core.common.InternalFactHandle)30 RightTuple (org.drools.core.reteoo.RightTuple)21 Test (org.junit.Test)21 DefaultFactHandle (org.drools.core.common.DefaultFactHandle)16 FieldIndex (org.drools.core.util.AbstractHashTable.FieldIndex)16 LeftTupleImpl (org.drools.core.reteoo.LeftTupleImpl)15 Tuple (org.drools.core.spi.Tuple)15 Cheese (org.drools.core.test.model.Cheese)15 Declaration (org.drools.core.rule.Declaration)14 TupleIndexHashTable (org.drools.core.util.index.TupleIndexHashTable)13 ClassObjectType (org.drools.core.base.ClassObjectType)12 InternalReadAccessor (org.drools.core.spi.InternalReadAccessor)12 Pattern (org.drools.core.rule.Pattern)11 TupleList (org.drools.core.util.index.TupleList)11 LeftTuple (org.drools.core.reteoo.LeftTuple)6 SingleIndex (org.drools.core.util.AbstractHashTable.SingleIndex)6 ArrayList (java.util.ArrayList)5 BetaMemory (org.drools.core.reteoo.BetaMemory)5 PhreakPropagationContext (org.drools.core.common.PhreakPropagationContext)4