/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.jaqu;
import org.h2.jaqu.TableDefinition.FieldDefinition;
/**
* This class represents a column of a table in a query.
*
* @param <T> the table data type
*/
class SelectColumn<T> {
private SelectTable<T> selectTable;
private FieldDefinition fieldDef;
SelectColumn(SelectTable<T> table, FieldDefinition fieldDef) {
this.selectTable = table;
this.fieldDef = fieldDef;
}
void appendSQL(SQLStatement stat) {
if (selectTable.getQuery().isJoin()) {
stat.appendSQL(selectTable.getAs() + "." + fieldDef.columnName);
} else {
stat.appendSQL(fieldDef.columnName);
}
}
FieldDefinition getFieldDefinition() {
return fieldDef;
}
SelectTable<T> getSelectTable() {
return selectTable;
}
Object getCurrentValue() {
return fieldDef.getValue(selectTable.getCurrent());
}
}