Revision 10392 trunk/libraries/libRemoteServices/src/org/gvsig/remoteClient/wfs/filters/FilterEncoding.java

View differences:

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