package edu.stanford.nlp.sempre;
import fig.basic.LispTree;
/**
* A ValueFormula represents an atomic value which is cannot be decomposed
* into further symbols. Simply a wrapper around Value.
*
* @author Percy Liang
*/
public class ValueFormula<T extends Value> extends PrimitiveFormula {
public final T value;
public ValueFormula(T value) { this.value = value; }
public LispTree toLispTree() {
if (value instanceof NameValue) return LispTree.proto.newLeaf(((NameValue) value).id);
return value.toLispTree();
}
@SuppressWarnings({"equalshashcode"})
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ValueFormula<?> that = (ValueFormula<?>) o;
if (!value.equals(that.value)) return false;
return true;
}
public int computeHashCode() {
return value.hashCode();
}
}