package aima.core.probability.proposition;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import aima.core.probability.RandomVariable;
public abstract class AbstractProposition implements Proposition {
private LinkedHashSet<RandomVariable> scope = new LinkedHashSet<RandomVariable>();
private LinkedHashSet<RandomVariable> unboundScope = new LinkedHashSet<RandomVariable>();
public AbstractProposition() {
}
//
// START-Proposition
public Set<RandomVariable> getScope() {
return scope;
}
public Set<RandomVariable> getUnboundScope() {
return unboundScope;
}
public abstract boolean holds(Map<RandomVariable, Object> possibleWorld);
// END-Proposition
//
//
// Protected Methods
//
protected void addScope(RandomVariable var) {
scope.add(var);
}
protected void addScope(Collection<RandomVariable> vars) {
scope.addAll(vars);
}
protected void addUnboundScope(RandomVariable var) {
unboundScope.add(var);
}
protected void addUnboundScope(Collection<RandomVariable> vars) {
unboundScope.addAll(vars);
}
}