package net.ion.craken.node.convert.rows;
import net.ion.craken.expression.Expression;
import net.ion.craken.expression.Projection;
import net.ion.craken.node.NodeCommonMap;
import net.ion.craken.node.ReadNode;
public class FieldDefinition {
private String fieldName;
private FieldContext fcontext;
private FieldRender frender;
public FieldDefinition(String fieldName, FieldRender frender){
this.fieldName = fieldName ;
this.frender = frender ;
}
public FieldDefinition fieldContext(FieldContext fcontext){
this.fcontext = fcontext ;
return this ;
}
public Projection createProjection() {
return new Projection(new Expression(){
@Override
public Comparable value(NodeCommonMap node) {
return (Comparable) frender.render(fcontext, (ReadNode)node) ;
}
}, fieldName);
}
}