package org.aksw.sparqlify.algebra.sql.exprs2;



//public class S_Constant
//	extends SqlExprConstantBase
//{
//	private Object value;
//	
//	public static final S_Constant TRUE = new S_Constant(TypeToken.Boolean, true);
//	public static final S_Constant FALSE = new S_Constant(TypeToken.Boolean, false);
//	public static final S_Constant TYPE_ERROR = new S_Constant(TypeToken.TypeError, null);
//	
//	public S_Constant(TypeToken datatype, Object value) {
//		super(datatype);
//		this.value = value;
//	}
//
//	@SuppressWarnings("unchecked")
//	public <T> T getValue() {
//		return (T)value;
//	}
//	
//
//	@Override
//	public String toString() {
//		return "S_Constant [value=" + value + ", getDatatype()="
//				+ getDatatype() + "]";
//	}
//
//	@Override
//	public void asString(IndentedWriter writer) {
//		writer.print("" + value + " (" + getDatatype() + ")");
//		//writer.println("Concat");
//		//writeArgs(writer);
//	}
//
//	
//	public static S_Constant create(Object value, DatatypeSystem datatypeSystem) {
//		//Object value = ExprUtils.getJavaObject(nv);
//		//SqlDatatype datatype = datatypeSystem.getByClass(value.getClass());
//
//		TypeToken typeName = datatypeSystem.getTokenForClass(value.getClass());
//		//XClass datatype = datatypeSystem.getByName(typeName);
//		S_Constant result = new S_Constant(typeName, value);
//		
//		return result;
//	}
//	
//
//	
//
//
//	// FIXME Following methods do not check the datatype
//	
//	@Override
//	public int hashCode() {
//		final int prime = 31;
//		int result = super.hashCode();
//		result = prime * result + ((value == null) ? 0 : value.hashCode());
//		return result;
//	}
//
//	@Override
//	public boolean equals(Object obj) {
//		if (this == obj)
//			return true;
//		if (!super.equals(obj))
//			return false;
//		if (getClass() != obj.getClass())
//			return false;
//		S_Constant other = (S_Constant) obj;
//		if (value == null) {
//			if (other.value != null)
//				return false;
//		} else if (!value.equals(other.value))
//			return false;
//		return true;
//	}
//	
//	
//}
