Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.impl / src / main / java / org / gvsig / expressionevaluator / impl / converterstocode / FeatureReferenceSelectionToCode.java @ 47174

History | View | Annotate | Download (1.9 KB)

1
package org.gvsig.expressionevaluator.impl.converterstocode;
2

    
3
import java.util.Iterator;
4
import java.util.Map;
5
import org.gvsig.expressionevaluator.Code;
6
import org.gvsig.expressionevaluator.CodeBuilder;
7
import org.gvsig.expressionevaluator.ConverterToCode;
8
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
9
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
10
import org.gvsig.expressionevaluator.MutableCodes;
11
import org.gvsig.fmap.dal.feature.Feature;
12
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureReferenceSelection;
13
import org.gvsig.fmap.dal.feature.impl.featurereference.FeatureReferenceIteratorToFeatureIterator;
14

    
15
/**
16
 *
17
 * @author jjdelcerro
18
 */
19
public class FeatureReferenceSelectionToCode implements ConverterToCode {
20

    
21
    @Override
22
    public String getName() {
23
        return "FeatureReferenceSelection";
24
    }
25

    
26
    @Override
27
    public boolean isApplicable(Object... os) {
28
        return os[0] instanceof DefaultFeatureReferenceSelection;
29
    }
30

    
31
    @Override
32
    public Code toCode(CodeBuilder builder, Object obj, Map props) {
33
        DefaultFeatureReferenceSelection selection = (DefaultFeatureReferenceSelection)obj;
34
        
35
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager();
36
        ConverterToCode featureToCode = manager.getConverterToCodeByName("Feature");
37
        
38
        Iterator<Feature> it = new FeatureReferenceIteratorToFeatureIterator(selection.getFeatureStore(), selection.referenceIterator());
39
        MutableCodes args = builder.args();
40
        while( it.hasNext() ) {
41
            args.add(featureToCode.toCode(builder, it.next(), props));
42
        }
43
        return builder.tuple(args);
44
    }
45

    
46
    public static void selfRegister() {
47
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager();
48
        manager.registerCodeConverter(new FeatureReferenceSelectionToCode());
49
    }
50
}