ExpressionEvaluatorImpl implements ExpressionEvaluator { private <T extends Comparable<? super T>> T evaluateColumnExpression(ColumnExpression columnExpression, DataRow dataRow) { String columnName = columnExpression.getColumnName(); Object value = columnExpression.useAnyTable() ? dataRow.get(columnName) : dataRow.get(columnName, columnExpression.getTableAlias()); return cast(value, Comparable.class); }  @Override Map<String, Set<String>> getColumnNames(Object expression); @Override T evaluate(Object expression, DataRow dataRow); @Override T evaluateAs(Object expression, DataRow dataRow, Class<T> cls);  }
@Test public void testEvaluateColumnExpression() { Object value = expressionEvaluator.evaluate(column(STRING_COLUMN_NAME, TABLE_NAME), ROW_WITH_VALUES); assertThat(value, is(instanceOf(String.class))); assertThat(value, equalTo(STRING_COLUMN_VALUE)); }