Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extExpressionField / src / com / iver / cit / gvsig / project / documents / table / operators / AbstractField.java @ 27752

History | View | Annotate | Download (1.82 KB)

1
package com.iver.cit.gvsig.project.documents.table.operators;
2

    
3
import java.util.Date;
4

    
5
import org.apache.bsf.BSFException;
6
import org.apache.bsf.BSFManager;
7
import org.gvsig.fmap.dal.feature.Feature;
8
import org.gvsig.fmap.dal.feature.FeatureStore;
9

    
10
import com.iver.cit.gvsig.ExpressionFieldExtension;
11
import com.iver.cit.gvsig.project.documents.table.AbstractOperator;
12
import com.iver.cit.gvsig.project.documents.table.Index;
13
import com.iver.cit.gvsig.project.documents.table.gui.FeatureContainer;
14

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