All Downloads are FREE. Search and download functionalities are using the official Maven repository.

astra.reasoner.BeliefIterator Maven / Gradle / Ivy

package astra.reasoner;

import java.util.Iterator;
import java.util.List;

import astra.formula.Formula;
import astra.formula.Predicate;

public class BeliefIterator implements Iterator {
    private Queryable[] sources;
    Iterator iterator = null;
    private Predicate target;
    private int index;

    public BeliefIterator(List sources, Predicate target) {
        this.sources = sources.toArray(new Queryable[sources.size()]);
        this.target = target;
        index = 0;
        step();
    }

    private void step() {
        while (index < sources.length && (iterator==null || !iterator.hasNext())) {
            iterator = this.sources[index++].iterator(target);
        }
    }

    @Override
    public boolean hasNext() {
        return iterator != null && iterator.hasNext();
    }

    @Override
    public Formula next() {
        Formula formula = iterator.next();
        step();
        return formula;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy