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 / FeatureSelectionToCode.java @ 47174

History | View | Annotate | Download (1.94 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.DefaultFeatureSelection;
14
import org.gvsig.fmap.dal.feature.impl.featurereference.FeatureReferenceIteratorToFeatureIterator;
15

    
16
/**
17
 *
18
 * @author jjdelcerro
19
 */
20
public class FeatureSelectionToCode implements ConverterToCode {
21

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

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

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

    
49
    public static void selfRegister() {
50
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager();
51
        manager.registerCodeConverter(new FeatureSelectionToCode());
52
    }
53
}