示例#1
0
  private ActivationIterator(InternalWorkingMemory wm, KnowledgeBase kbase) {
    this.wm = wm;

    nodeIter = TerminalNodeIterator.iterator(kbase);

    // Find the first node with Activations an set it.
    while (currentLeftTuple == null && (node = (TerminalNode) nodeIter.next()) != null) {
      if (!(node instanceof RuleTerminalNode)) {
        continue;
      }
      leftTupleIter = LeftTupleIterator.iterator(wm, node);
      this.currentLeftTuple = (LeftTuple) leftTupleIter.next();
    }
  }
示例#2
0
  public Object next() {
    Activation acc = null;
    if (this.currentLeftTuple != null) {
      acc = (Activation) currentLeftTuple.getObject();
      this.currentLeftTuple = (LeftTuple) leftTupleIter.next();

      while (currentLeftTuple == null && (node = (TerminalNode) nodeIter.next()) != null) {
        if (!(node instanceof RuleTerminalNode)) {
          continue;
        }
        leftTupleIter = LeftTupleIterator.iterator(wm, node);
        this.currentLeftTuple = (LeftTuple) leftTupleIter.next();
      }
    }

    return acc;
  }