Statistics
| Revision:

root / org.gvsig.expressionfield / trunk / org.gvsig.expressionfield / src / main / java / org / gvsig / expressionfield / project / documents / table / operators / AbstractField.java @ 22

History | View | Annotate | Download (1.59 KB)

1
package org.gvsig.expressionfield.project.documents.table.operators;
2

    
3
import org.apache.bsf.BSFException;
4
import org.apache.bsf.BSFManager;
5
import org.gvsig.expressionfield.ExpressionFieldExtension;
6
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
7
import org.gvsig.fmap.dal.feature.Feature;
8

    
9

    
10
public abstract class AbstractField extends AbstractOperator{
11
        private boolean isEval=false;
12
        public Object getValue(Feature feature, String nameField){
13
                if (feature != null)
14
                        return feature.get(nameField);
15
                return null;
16
        }
17
//        public Object getValue(String nameField,Index indexRow,SelectableDataSource sds) {
18
//                try {
19
//                        int index=sds.getFieldIndexByName(nameField);
20
//                        Value value=sds.getFieldValue(indexRow.get(),index);
21
//                        if (value instanceof NumericValue) {
22
//                                double dv=((NumericValue)value).doubleValue();
23
//                                return new Double(dv);
24
//                        }else if (value instanceof DateValue) {
25
//                                Date date=((DateValue)value).getValue();
26
//                                return date;
27
//                        }else if (value instanceof BooleanValue){
28
//                                boolean b=((BooleanValue)value).getValue();
29
//                                return new Boolean(b);
30
//                        }else {
31
//                                return value.toString();
32
//                        }
33
//                } catch (ReadDriverException e) {
34
//                        throw new RuntimeException(e.getMessage());
35
//                }
36
//        }
37
        public void eval(BSFManager interpreter) throws BSFException {
38
                if (!isEval){
39
                interpreter.declareBean("jfield",this,Field.class);
40
                interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def field(nameField):\n" +
41
                                "  return jfield.getValue(featureContainer.getFeature(), nameField)");
42
                isEval=true;
43
                }
44
        }
45
}