//package hdgl.db.query.visitor;
//
//import java.util.HashMap;
//
//import hdgl.db.query.expression.Expression;
//
//public abstract class LabelledVisitor<TR> implements Visitor<TR>{
//
//
// HashMap<String, HashMap<Expression, Object>> values = new HashMap<String, HashMap<Expression,Object>>();
//
// public void setLabel(Expression entity, String name, Object value){
// if(!values.containsKey(name)){
// HashMap<Expression, Object> val = new HashMap<Expression, Object>();
// val.put(entity, value);
// values.put(name, val);
// }else{
// values.get(name).put(entity, value);
// }
// }
//
// public Object getLabel(Expression entity, String name){
// if(!values.containsKey(name)){
// return null;
// }else{
// HashMap<Expression, Object> val = values.get(name);
// if(!val.containsKey(entity)){
// return null;
// }else{
// return val.get(entity);
// }
// }
// }
//
// public <T> T getLabel(Expression entity, String name, Class<T> type){
// return type.cast(getLabel(entity, name));
// }
//
//}