package com.klq.ast.impl.value;
/**
* Created by Timon on 03.03.2015.
*/
public abstract class Value<T> {
private final T value;
public Value(T value){
this.value = value;
}
public T getValue(){
return value;
}
public boolean isUndefined(){
return false;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (!(obj instanceof Value)){
return false;
}
if (!(obj.getClass().equals(this.getClass()))){
return false;
}
return value.equals(((Value<?>) obj).getValue());
}
@Override
public int hashCode() {
return value.hashCode();
}
@Override
public String toString() {
return getValue().toString();
}
}