Revision 44009 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java

View differences:

DefaultCodeBuilder.java
17 17
import org.gvsig.expressionevaluator.CodeBuilder;
18 18
import org.gvsig.expressionevaluator.Function;
19 19
import org.gvsig.expressionevaluator.Interpreter;
20
import org.gvsig.fmap.geom.Geometry;
20 21
import org.gvsig.tools.exception.BaseException;
21 22
import org.gvsig.tools.visitor.Visitor;
22 23

  
23
public class DefaultCodeBuilder implements CodeBuilder {
24
@SuppressWarnings("UseSpecificCatch")
25
    public class DefaultCodeBuilder implements CodeBuilder {
24 26

  
25 27
    public class BaseCode implements Code {
26 28

  
......
29 31
            return UNDEFINED;
30 32
        }
31 33

  
32
//        @Override
33
//        public String toString() {
34
//            return this.toString(this);
35
//        }
36
//
37
//        private String toString(Code code) {
38
//            StringBuilder builder = new StringBuilder();
39
//            switch( code.code() ) {
40
//            case CONSTANT: {
41
//                Object value = ((Constant) code).value();
42
//                if( value instanceof CharSequence ) {
43
//                    value = StringUtils.wrap(value.toString(), "'");
44
//                }
45
//                builder.append(value);
46
//            }
47
//            break;
48
//
49
//            case IDENTIFIER:
50
//                builder.append(((Identifier) code).name());
51
//                break;
52
//
53
//            case CALLER:
54
//                Caller caller = (Caller) code;
55
//                builder.append(caller.name());
56
//                builder.append("(");
57
//                if( caller.args() != null ) {
58
//                    boolean skipcoma = true;
59
//                    for( Code arg : caller.args() ) {
60
//                        if( skipcoma ) {
61
//                            skipcoma = false;
62
//                        } else {
63
//                            builder.append(", ");
64
//                        }
65
//                        builder.append(toString(arg));
66
//                    }
67
//                }
68
//                builder.append(")");
69
//                break;
70
//            }
71
//            return builder.toString();
72
//        }
73

  
74 34
        @Override
75 35
        public void accept(Visitor visitor) throws BaseException {
76 36
            visitor.visit(this);
......
102 62
            Object v = this.value();
103 63
            if( v instanceof CharSequence ) {
104 64
                v = StringUtils.wrap(v.toString(), "'");
65
                builder.append(v);
66
                
67
            } else if( v instanceof Geometry ) {
68
                try {
69
                    builder.append("'");
70
                    builder.append(((Geometry) v).convertToWKT());
71
                    builder.append("'::geometry");
72
                } catch (Exception ex) {
73
                    builder.append("'UNKNOW'::geometry");
74
                }
75
                
76
            } else {
77
                builder.append(v);
105 78
            }
106
            builder.append(v);
107 79
            return builder.toString();
108 80
        }
109 81

  

Also available in: Unified diff