svn-gvsig-desktop / tags / v2_0_0_Build_2059 / libraries / libEvaluator_SQLJEP / src / org / gvsig / tools / evaluator / sqljep / SQLJEPEvaluator.java @ 39307
History | View | Annotate | Download (2.74 KB)
1 |
package org.gvsig.tools.evaluator.sqljep; |
---|---|
2 |
|
3 |
import java.math.BigDecimal; |
4 |
import java.util.Map; |
5 |
import java.util.Map.Entry; |
6 |
|
7 |
import org.gvsig.tools.evaluator.Evaluator; |
8 |
import org.gvsig.tools.evaluator.EvaluatorData; |
9 |
import org.gvsig.tools.evaluator.EvaluatorFieldValue; |
10 |
import org.gvsig.tools.evaluator.EvaluatorFieldsInfo; |
11 |
import org.medfoster.sqljep.BaseJEP; |
12 |
import org.medfoster.sqljep.ParseException; |
13 |
|
14 |
public class SQLJEPEvaluator extends BaseJEP implements Evaluator { |
15 |
|
16 |
private String expresion; |
17 |
private EvaluatorData data;
|
18 |
private boolean not_parsed; |
19 |
|
20 |
public SQLJEPEvaluator(String expresion) { |
21 |
|
22 |
|
23 |
super(expresion);
|
24 |
this.expresion = expresion;
|
25 |
this.data = null; |
26 |
not_parsed = true;
|
27 |
} |
28 |
|
29 |
public String getName() { |
30 |
return "SQLJEP(" + expresion + ")"; |
31 |
} |
32 |
|
33 |
public String getSQL() { |
34 |
return expresion;
|
35 |
} |
36 |
|
37 |
public String getDescription() { |
38 |
return null; |
39 |
} |
40 |
|
41 |
public EvaluatorFieldValue[] getFieldValues(String name) { |
42 |
return null; |
43 |
} |
44 |
|
45 |
public Object evaluate(EvaluatorData data) { |
46 |
this.data = data;
|
47 |
Object value = null; |
48 |
try {
|
49 |
if (not_parsed) {
|
50 |
this.parseExpression();
|
51 |
not_parsed = false;
|
52 |
} |
53 |
value = this.getValue();
|
54 |
} catch (ParseException e) { |
55 |
// TODO Auto-generated catch block
|
56 |
e.printStackTrace(); |
57 |
} |
58 |
this.data = null; |
59 |
return value;
|
60 |
} |
61 |
|
62 |
public int findColumn(String name) { |
63 |
return -1; |
64 |
} |
65 |
|
66 |
public Comparable getColumnObject(int arg0) throws ParseException { |
67 |
return null; |
68 |
} |
69 |
|
70 |
public Entry getVariable(String name) throws ParseException { |
71 |
return new MyEntry(name); |
72 |
} |
73 |
|
74 |
private class MyEntry implements Map.Entry { |
75 |
private String key; |
76 |
|
77 |
public MyEntry(String key) { |
78 |
this.key = key;
|
79 |
} |
80 |
|
81 |
public Object getKey() { |
82 |
return this.key; |
83 |
} |
84 |
|
85 |
public Object getValue() { |
86 |
|
87 |
Object resp = null; |
88 |
|
89 |
if (data.hasDataValue(key)) {
|
90 |
resp = data.getDataValue(key); |
91 |
resp = fixDecimal(resp); |
92 |
return resp;
|
93 |
} |
94 |
resp = data.getDataValue(key);; |
95 |
resp = fixDecimal(resp); |
96 |
return resp;
|
97 |
} |
98 |
|
99 |
/**
|
100 |
* @param resp
|
101 |
* @return
|
102 |
*/
|
103 |
private Object fixDecimal(Object obj) { |
104 |
|
105 |
if (obj instanceof Double) { |
106 |
Double dou = (Double) obj; |
107 |
String doustr = Double.toString(dou); |
108 |
return new BigDecimal(doustr); |
109 |
} else {
|
110 |
if (obj instanceof Float) { |
111 |
Float flo = (Float) obj; |
112 |
String flostr = Float.toString(flo); |
113 |
return new BigDecimal(flostr); |
114 |
} else {
|
115 |
return obj;
|
116 |
} |
117 |
} |
118 |
} |
119 |
|
120 |
public Object setValue(Object arg0) { |
121 |
return null; |
122 |
} |
123 |
|
124 |
} |
125 |
|
126 |
public EvaluatorFieldsInfo getFieldsInfo() {
|
127 |
// TODO Auto-generated method stub
|
128 |
return null; |
129 |
} |
130 |
} |