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 |
} |