Revision 28909 branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgresql/PostgreSQLSetProvider.java
PostgreSQLSetProvider.java | ||
---|---|---|
30 | 30 |
*/ |
31 | 31 |
package org.gvsig.fmap.dal.store.postgresql; |
32 | 32 |
|
33 |
import java.util.ArrayList; |
|
34 |
import java.util.List; |
|
35 |
|
|
36 | 33 |
import org.gvsig.fmap.dal.exception.DataException; |
37 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
38 | 34 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
39 | 35 |
import org.gvsig.fmap.dal.feature.FeatureType; |
40 | 36 |
import org.gvsig.fmap.dal.store.jdbc.JDBCSetProvider; |
41 | 37 |
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider; |
42 |
import org.gvsig.tools.evaluator.Evaluator; |
|
43 |
import org.gvsig.tools.evaluator.EvaluatorFieldValue; |
|
44 |
import org.gvsig.tools.evaluator.EvaluatorFieldsInfo; |
|
45 | 38 |
|
46 | 39 |
/** |
47 | 40 |
* @author jmvivo |
... | ... | |
55 | 48 |
// TODO Auto-generated constructor stub |
56 | 49 |
} |
57 | 50 |
|
58 |
protected String getSqlForEvaluator(Evaluator filter) { |
|
59 |
if (filter == null) { |
|
60 |
return null; |
|
61 |
} |
|
62 |
EvaluatorFieldsInfo info = filter.getFieldsInfo(); |
|
63 |
String filterString = filter.getCQL(); |
|
64 |
if (info == null) { |
|
65 |
return filterString; |
|
66 |
} |
|
67 |
String[] filterNames = info.getFieldNames(); |
|
68 |
String[] finalNames = new String[filterNames.length]; |
|
69 |
EvaluatorFieldValue[] fValues; |
|
70 | 51 |
|
71 |
List values = new ArrayList(); |
|
72 |
|
|
73 |
FeatureAttributeDescriptor attr; |
|
74 |
for (int i = 0; i < filterNames.length; i++) { |
|
75 |
attr = featureType.getAttributeDescriptor(filterNames[i]); |
|
76 |
if (attr == null) { |
|
77 |
finalNames[i] = filterNames[i]; |
|
78 |
continue; |
|
79 |
} |
|
80 |
finalNames[i] = getEscapedFieldName(attr.getName()); |
|
81 |
|
|
82 |
} |
|
83 |
|
|
84 |
|
|
85 |
|
|
86 |
for (int i = 0; i < filterNames.length; i++) { |
|
87 |
if (!filterNames[i].equals(finalNames[i])) { |
|
88 |
filterString.replaceAll("\\b" + filterNames[i] + "\\b", |
|
89 |
finalNames[i]); |
|
90 |
} |
|
91 |
} |
|
92 |
|
|
93 |
|
|
94 |
|
|
95 |
|
|
96 |
return filterString; |
|
97 |
} |
|
98 |
|
|
99 |
|
|
100 |
|
|
101 | 52 |
/* |
102 | 53 |
* (non-Javadoc) |
103 | 54 |
* |
Also available in: Unified diff