package net.ion.craken.expression;
import net.ion.craken.node.ReadNode;
import net.ion.framework.util.StringUtil;
public final class Projection extends ValueObject {
private final Expression expression;
private final String alias;
public Projection(Expression expression, String alias) {
this.expression = expression;
this.alias = alias;
}
public Object value(ReadNode node){
return expression.value(node) ;
}
public String label(){
if (StringUtil.isNotBlank(alias)){
return alias ;
}
if (expression instanceof QualifiedNameExpression){
return ((QualifiedNameExpression)expression).lastName() ;
}
return "";
}
}