package openmods.calc; import com.google.common.base.Objects; public class Value<E> implements IExecutable<E> { private final E value; public Value(E value) { this.value = value; } @Override public void execute(Frame<E> frame) { frame.stack().push(value); } public static <E> Value<E> create(E value) { return new Value<E>(value); } @Override public boolean equals(Object other) { return (other instanceof Value) && Objects.equal(((Value<?>)other).value, this.value); } @Override public int hashCode() { return Objects.hashCode(value); } @Override public String toString() { return "Value[" + value + "]"; } }