Revision 18432
branches/v10/applications/appCatalogAndGazetteerClient/src/es/gva/cit/gazetteer/wfs/drivers/WFSServiceDriver.java | ||
---|---|---|
83 | 83 |
* (non-Javadoc) |
84 | 84 |
* @see es.gva.cit.catalogClient.drivers.IDiscoveryServiceDriver#getCapabilities(java.net.URI) |
85 | 85 |
*/ |
86 |
public DiscoveryServiceCapabilities getCapabilities(URI uri) {
|
|
86 |
public DiscoveryServiceCapabilities getCapabilities(URI uri) { |
|
87 | 87 |
GazetteerCapabilities capabilities = new GazetteerCapabilities(); |
88 | 88 |
String sURL = null; |
89 | 89 |
try { |
... | ... | |
99 | 99 |
} catch (Exception e) { |
100 | 100 |
capabilities.setServerMessage(e.toString()); |
101 | 101 |
return capabilities; |
102 |
}
|
|
102 |
} |
|
103 | 103 |
setServerAnswerReady(client.getServiceInformation().name); |
104 | 104 |
Hashtable features = client.getFeatures(); |
105 |
setFeatureTypes(convertFeatureNames(features));
|
|
106 |
capabilities.setServerMessage(client.getServiceInformation().name +
|
|
105 |
setFeatureTypes(convertFeatureNames(features)); |
|
106 |
capabilities.setServerMessage(client.getServiceInformation().name + |
|
107 | 107 |
client.getServiceInformation().abstr); |
108 | 108 |
capabilities.setFeatureTypes(getFeatureTypes()); |
109 | 109 |
return capabilities; |
110 |
}
|
|
110 |
} |
|
111 | 111 |
|
112 | 112 |
/** |
113 | 113 |
* Convert the features from the remote services format to |
114 |
* the gazetteer format
|
|
114 |
* the gazetteer format |
|
115 | 115 |
* @param features |
116 | 116 |
* @return |
117 | 117 |
*/ |
... | ... | |
126 | 126 |
featureTypes[i].setTitle(feature.getTitle()); |
127 | 127 |
i++; |
128 | 128 |
} |
129 |
return featureTypes;
|
|
129 |
return featureTypes; |
|
130 | 130 |
} |
131 | 131 |
|
132 | 132 |
/* |
133 | 133 |
* (non-Javadoc) |
134 | 134 |
* @see es.gva.cit.gazetteer.drivers.IGazetteerServiceDriver#describeFeatureType(java.net.URI, java.lang.String) |
135 | 135 |
*/ |
136 |
public FeatureTypeAttribute[] describeFeatureType(URI uri, String feature) {
|
|
136 |
public FeatureTypeAttribute[] describeFeatureType(URI uri, String feature) { |
|
137 | 137 |
status.setFeatureName(feature); |
138 | 138 |
try{ |
139 |
client.describeFeatureType(status); |
|
139 |
client.describeFeatureType(status, false, null);
|
|
140 | 140 |
}catch (Exception e){ |
141 | 141 |
//Impossible to retrieve the attributes |
142 | 142 |
return new FeatureTypeAttribute[0]; |
... | ... | |
146 | 146 |
this.setProjection((String)wfsFeature.getSrs().get(0)); |
147 | 147 |
} |
148 | 148 |
return covertFeatuteAttributes(wfsFeature); |
149 |
}
|
|
149 |
} |
|
150 | 150 |
|
151 | 151 |
/* |
152 | 152 |
* (non-Javadoc) |
... | ... | |
179 | 179 |
* (non-Javadoc) |
180 | 180 |
* @see es.gva.cit.gazetteer.drivers.IGazetteerServiceDriver#getFeature(java.net.URI, es.gva.cit.gazetteer.querys.Query) |
181 | 181 |
*/ |
182 |
public Feature[] getFeature(URI uri, GazetteerQuery query) throws GMLException {
|
|
182 |
public Feature[] getFeature(URI uri, GazetteerQuery query) throws GMLException { |
|
183 | 183 |
//Set the filter |
184 | 184 |
String sQuery = getFilterSQL(query); |
185 | 185 |
if (sQuery != null){ |
... | ... | |
187 | 187 |
} |
188 | 188 |
status.setFields(new String[0]); |
189 | 189 |
try{ |
190 |
File file = client.getFeature(status); |
|
191 |
return parseOutputFile(file,query.getFieldAttribute());
|
|
190 |
File file = client.getFeature(status, false, null);
|
|
191 |
return parseOutputFile(file,query.getFieldAttribute()); |
|
192 | 192 |
}catch(Exception e){ |
193 | 193 |
return new Feature[0]; |
194 |
}
|
|
195 |
}
|
|
194 |
} |
|
195 |
} |
|
196 | 196 |
|
197 | 197 |
/** |
198 | 198 |
* Parses the GML file |
... | ... | |
203 | 203 |
protected Feature[] parseOutputFile(File file, String fieldAttribute) throws GMLException{ |
204 | 204 |
GMLReader reader = new GMLReader(file,new GazetteerGeometriesFactory(fieldAttribute)); |
205 | 205 |
IGMLFeaturesIterator it = reader.getFeaturesIterator(); |
206 |
ArrayList features = new ArrayList();
|
|
206 |
ArrayList features = new ArrayList(); |
|
207 | 207 |
while (it.hasNext()){ |
208 | 208 |
Object feature = it.next(); |
209 | 209 |
if (feature != null){ |
210 | 210 |
features.add(feature); |
211 | 211 |
} |
212 |
}
|
|
212 |
} |
|
213 | 213 |
Feature[] auxFeatures = new Feature[features.size()]; |
214 | 214 |
for (int i=0 ; i<features.size() ; i++){ |
215 | 215 |
auxFeatures[i] = (Feature)features.get(i); |
... | ... | |
232 | 232 |
}else{ |
233 | 233 |
String conector = null; |
234 | 234 |
if (query.getNameFilter().equals(CatalogConstants.ALL_WORDS)){ |
235 |
conector = "AND";
|
|
235 |
conector = "AND"; |
|
236 | 236 |
}else if (query.getNameFilter().equals(CatalogConstants.ANY_WORD)){ |
237 | 237 |
conector = "OR"; |
238 | 238 |
} |
... | ... | |
240 | 240 |
for (int i=0 ; i<words.length ; i++){ |
241 | 241 |
buffer.append("(" + query.getFieldAttribute() + " = " + words[i] + ")"); |
242 | 242 |
if (i < words.length - 1){ |
243 |
buffer.append(" " + conector + " ");
|
|
244 |
}
|
|
243 |
buffer.append(" " + conector + " "); |
|
244 |
} |
|
245 | 245 |
} |
246 |
}
|
|
246 |
} |
|
247 | 247 |
FilterEncoding fe = GazetteerFormatter.createFilter(); |
248 | 248 |
fe.setQuery(buffer.toString()); |
249 | 249 |
return fe.toString(); |
... | ... | |
253 | 253 |
* (non-Javadoc) |
254 | 254 |
* @see es.gva.cit.gazetteer.drivers.IGazetteerServiceDriver#isProtocolSupported(java.net.URI) |
255 | 255 |
*/ |
256 |
public boolean isProtocolSupported(URI uri) {
|
|
256 |
public boolean isProtocolSupported(URI uri) { |
|
257 | 257 |
return true; |
258 |
}
|
|
258 |
} |
|
259 | 259 |
|
260 | 260 |
/* |
261 | 261 |
* (non-Javadoc) |
... | ... | |
279 | 279 |
*/ |
280 | 280 |
public String getServiceName() { |
281 | 281 |
return ServerData.SERVER_SUBTYPE_GAZETTEER_WFS; |
282 |
}
|
|
282 |
} |
|
283 | 283 |
} |
Also available in: Unified diff