package squill.query.select;
import squill.alias.Alias;
/**
* Implementation of the named select expression.
*/
public class SimpleSelectExpression<T> extends BaseSelectExpression<T> {
private final Alias alias;
private final Class<T> type;
public SimpleSelectExpression(String alias, Class<T> type) {
if (alias == null || alias.trim().length() == 0) {
this.alias = Alias.newExpressionAlias();
} else {
this.alias = Alias.newAlias(alias);
}
this.type = type;
}
public SimpleSelectExpression(Class<T> type) {
this(null,type);
}
public String getAlias() {
return alias.resolve(getContext());
}
public String getAsAliasSql() {
return getDefaultSql() + " AS " + getAlias();
}
public Class<T> getTableType() {
return type;
}
}