for (org.cruxframework.crux.core.client.datasource.annotation.ColumnDefinition columnDefinition : columnDefinitions.value())
{
StringBuilder getValueExpression = new StringBuilder();
String colKey = columnDefinition.value();
JType propType;
try
{
propType = JClassUtils.buildGetValueExpression(getValueExpression, dtoType, colKey, "recordObject", true);
}
catch (Exception e)
{
throw new CruxGeneratorException("Datasource ["+dataSourceClass.getQualifiedSourceName()+"] has an invalid ColumnDefinition ["+colKey+"].");
}
JClassType comparableType = context.getTypeOracle().findType(Comparable.class.getCanonicalName());
boolean isSortable = (propType.isPrimitive() != null) || (comparableType.isAssignableFrom((JClassType) propType));
String propTypeName = JClassUtils.getGenericDeclForType(propType);
out.println(colDefs+".addColumn(new "+org.cruxframework.crux.core.client.datasource.ColumnDefinition.class.getCanonicalName()+
"<"+propTypeName+","+dtoClassName+">("+EscapeUtils.quote(colKey)+","+isSortable+"){");
out.println("public "+propTypeName+" getValue("+dtoClassName+" recordObject){");
out.println("return "+getValueExpression.toString());