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