Revision 10392 trunk/libraries/libRemoteServices/src/org/gvsig/remoteClient/wfs/filters/FilterEncoding.java
FilterEncoding.java | ||
---|---|---|
139 | 139 |
* @see org.gvsig.remoteClient.filterEncoding.QueryLanguage#toString(org.gvsig.remoteClient.filterEncoding.BinaryTree) |
140 | 140 |
*/ |
141 | 141 |
protected String toString(BinaryTree tree) { |
142 |
if (tree.getRoot() == null){
|
|
142 |
if ((tree.getRoot() == null) && (getBbox() == null)){
|
|
143 | 143 |
return null; |
144 | 144 |
} |
145 |
currentQuery = new StringBuffer(); |
|
146 |
String query = getFilterNode(tree.getRoot()); |
|
145 |
String filterQuery = null; |
|
146 |
String bboxQuery = null; |
|
147 |
if (tree.getRoot() != null){ |
|
148 |
currentQuery = new StringBuffer(); |
|
149 |
filterQuery = getFilterNode(tree.getRoot()); |
|
150 |
if (getBbox() == null){ |
|
151 |
return enclosesWithFilterTag(filterQuery); |
|
152 |
} |
|
153 |
} |
|
147 | 154 |
if (getBbox() != null){ |
148 |
query = "<Within>" + query + |
|
149 |
new GMLObjectsFactory().createBBOX(getBbox()) + |
|
150 |
"</Within>"; |
|
155 |
bboxQuery = enterLabel(getBboxPropertyName(), "PropertyName"); |
|
156 |
bboxQuery = bboxQuery + new GMLObjectsFactory().createBBOX(getBbox()); |
|
157 |
if (tree.getRoot() == null){ |
|
158 |
return enclosesWithFilterTag(bboxQuery); |
|
159 |
} |
|
151 | 160 |
} |
152 |
return enterLabel(query, "Filter"); |
|
161 |
filterQuery = enterLabel(filterQuery, "Within"); |
|
162 |
return enclosesWithFilterTag(filterQuery); |
|
153 | 163 |
} |
154 | 164 |
|
155 | 165 |
/** |
... | ... | |
253 | 263 |
} else { |
254 | 264 |
return setTag(tagName,null,value); |
255 | 265 |
} |
256 |
}
|
|
266 |
} |
|
257 | 267 |
|
268 |
/** |
|
269 |
* Encloses a query with the filter tag |
|
270 |
* @param query |
|
271 |
* @return |
|
272 |
*/ |
|
273 |
private String enclosesWithFilterTag(String query){ |
|
274 |
StringBuffer filter = new StringBuffer(); |
|
275 |
filter.append("<Filter "); |
|
276 |
filter.append("xmlns:ogc=\"http://www.opengis.net/ogc\" "); |
|
277 |
filter.append("xmlns:gml=\"http://www.opengis.net/gml\" "); |
|
278 |
filter.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "); |
|
279 |
filter.append("xsi:schemaLocation=\"http://www.opengis.net/ogc ../filter/1.0.0/filter.xsd http://www.opengis.net/gml ../gml/2.1.2/geometry.xsd\"> "); |
|
280 |
filter.append(query); |
|
281 |
filter.append("</Filter>"); |
|
282 |
return filter.toString(); |
|
283 |
} |
|
284 |
|
|
258 | 285 |
/* |
259 | 286 |
* (non-Javadoc) |
260 | 287 |
* @see org.gvsig.remoteClient.filterEncoding.AQueryLanguage#getLogicOperator(int) |
Also available in: Unified diff