aima.core.probability.proposition.AssignmentProposition Maven / Gradle / Ivy
package aima.core.probability.proposition;
import java.util.Map;
import aima.core.probability.RandomVariable;
public class AssignmentProposition extends AbstractTermProposition {
private Object value = null;
//
private String toString = null;
public AssignmentProposition(RandomVariable forVariable, Object value) {
super(forVariable);
setValue(value);
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
if (null == value) {
throw new IllegalArgumentException(
"The value for the Random Variable must be specified.");
}
this.value = value;
}
@Override
public boolean holds(Map possibleWorld) {
return value.equals(possibleWorld.get(getTermVariable()));
}
@Override
public String toString() {
if (null == toString) {
StringBuilder sb = new StringBuilder();
sb.append(getTermVariable().getName());
sb.append(" = ");
sb.append(value);
toString = sb.toString();
}
return toString;
}
}