Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.geometry / org.gvsig.expressionevaluator.geometry.lib / org.gvsig.expressionevaluator.geometry.lib.impl / src / main / java / org / gvsig / expressionevaluator / impl / converstocode / ProjectionToCode.java @ 47374

History | View | Annotate | Download (1.54 KB)

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

    
3
import java.util.Map;
4
import java.util.Objects;
5
import org.cresques.cts.IProjection;
6
import org.gvsig.expressionevaluator.Code;
7
import org.gvsig.expressionevaluator.CodeBuilder;
8
import org.gvsig.expressionevaluator.ConverterToCode;
9
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
10
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
11
import org.gvsig.expressionevaluator.MutableCodes;
12
import org.gvsig.fmap.geom.Geometry;
13

    
14
/**
15
 *
16
 * @author jjdelcerro
17
 */
18
public class ProjectionToCode implements ConverterToCode {
19

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

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

    
30
    @Override
31
    public Code toCode(CodeBuilder builder, Object obj, Map props) {
32
        //ST_GEOMFROMTEXT
33
        try {
34
            if(obj == null){
35
                return null;
36
            }
37
            IProjection proj = (IProjection) obj;
38
            
39
            String abrev = proj.getAbrev();
40
            String srid = abrev.split(":")[1];
41
            
42
            return builder.constant(Integer.valueOf(srid));
43

    
44
        } catch (Exception ex) {
45
            throw new IllegalArgumentException("Can't convert projection to code", ex);
46
        }
47
    }
48

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

    
54
}