Revision 32051 branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/GPEStoreProvider.java
GPEStoreProvider.java | ||
---|---|---|
59 | 59 |
import org.gvsig.fmap.dal.store.gpe.handlers.FmapErrorHandler; |
60 | 60 |
import org.gvsig.fmap.geom.Geometry.TYPES; |
61 | 61 |
import org.gvsig.fmap.geom.primitive.Envelope; |
62 |
import org.gvsig.gpe.GPELocator; |
|
63 |
import org.gvsig.gpe.GPEManager; |
|
64 |
import org.gvsig.gpe.datatypes.GPEDataTypesManager; |
|
65 |
import org.gvsig.gpe.exceptions.ParserCreationException; |
|
66 |
import org.gvsig.gpe.parser.GPEErrorHandler; |
|
67 |
import org.gvsig.gpe.parser.GPEParser; |
|
62 |
import org.gvsig.gpe.lib.api.GPELocator; |
|
63 |
import org.gvsig.gpe.lib.api.GPEManager; |
|
68 | 64 |
import org.gvsig.tools.ToolsLocator; |
69 | 65 |
import org.gvsig.tools.dynobject.DynClass; |
70 |
import org.gvsig.tools.dynobject.DynField; |
|
71 | 66 |
import org.gvsig.tools.dynobject.DynObject; |
72 | 67 |
import org.gvsig.tools.dynobject.DynObjectManager; |
68 |
import org.gvsig.xmlschema.lib.api.XMLSchemaLocator; |
|
69 |
import org.gvsig.xmlschema.lib.api.XMLSchemaManager; |
|
73 | 70 |
|
74 | 71 |
/** |
75 | 72 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a> |
... | ... | |
83 | 80 |
private GPEStoreParameters gpeParams; |
84 | 81 |
protected File m_Fich; |
85 | 82 |
private ResourceProvider gpeResource; |
86 |
protected boolean isOpen = false; |
|
87 |
private GPEParser parser = null; |
|
83 |
protected boolean isOpen = false; |
|
84 |
|
|
85 |
//Managers to manage the parsing process |
|
88 | 86 |
protected GPEManager gpeManager = null; |
89 |
protected GPEDataTypesManager gpeDataTypesManager = null; |
|
87 |
protected XMLSchemaManager xmlSchemaManager = null; |
|
88 |
|
|
89 |
//The content handler and the error handler |
|
90 |
protected FmapContentHandler contentHandler; |
|
91 |
protected FmapErrorHandler errorHandler; |
|
90 | 92 |
|
91 | 93 |
public GPEStoreProvider(DataStoreParameters params, |
92 | 94 |
DataStoreProviderServices storeServices) |
... | ... | |
104 | 106 |
this.setDynValue("Envelope", null); |
105 | 107 |
|
106 | 108 |
gpeManager = GPELocator.getGPEManager(); |
107 |
gpeDataTypesManager = GPELocator.getGPEDatatypesManager();
|
|
109 |
xmlSchemaManager = XMLSchemaLocator.getXMLSchemaManager();
|
|
108 | 110 |
|
109 | 111 |
retrieveFile(); |
110 | 112 |
gpeResource = this.createResource(FileResource.NAME, |
... | ... | |
159 | 161 |
* @see org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider#createNewOID() |
160 | 162 |
*/ |
161 | 163 |
public Object createNewOID() { |
162 |
return ((FmapContentHandler)parser.getContentHandler()).createNewOID();
|
|
164 |
return contentHandler.createNewOID();
|
|
163 | 165 |
} |
164 | 166 |
|
165 | 167 |
/* (non-Javadoc) |
... | ... | |
187 | 189 |
|
188 | 190 |
FeatureProvider getFeatureProviderByIndex(Long index, FeatureType fType) |
189 | 191 |
throws DataException { |
190 |
return ((DefaultFeature)((FmapContentHandler)parser.getContentHandler())
|
|
191 |
.getFeatureSet().get(index)).getData();
|
|
192 |
return ((DefaultFeature)contentHandler.
|
|
193 |
getFeatureSet().get(index)).getData(); |
|
192 | 194 |
} |
193 | 195 |
|
194 | 196 |
public void resourcesBegin() throws ResourceExecuteException { |
... | ... | |
228 | 230 |
return; |
229 | 231 |
} |
230 | 232 |
try { |
231 |
parser = createParser(); |
|
232 |
GPEErrorHandler errorHandler = new FmapErrorHandler(); |
|
233 |
parser.parse(new FmapContentHandler(errorHandler, |
|
233 |
errorHandler = new FmapErrorHandler(); |
|
234 |
contentHandler = new FmapContentHandler(errorHandler, |
|
234 | 235 |
getStoreServices(), this, m_Fich, |
235 | 236 |
getSRS(), |
236 |
getGeometryType(parser)), |
|
237 |
errorHandler, |
|
238 |
m_Fich.toURI()); |
|
237 |
getGeometryType()); |
|
239 | 238 |
isOpen = true; |
239 |
gpeManager.parse(contentHandler, errorHandler, m_Fich.toURI()); |
|
240 | 240 |
} catch (Exception e) { |
241 | 241 |
throw new OpenException("Imposible create a parser",e); |
242 | 242 |
} |
243 | 243 |
} |
244 |
|
|
245 |
protected GPEParser createParser() throws ParserCreationException{ |
|
246 |
return gpeManager.createParser(m_Fich.toURI()); |
|
247 |
} |
|
248 | 244 |
|
249 | 245 |
protected IProjection getSRS(){ |
250 | 246 |
return getGPEParameters().getSRS(); |
251 | 247 |
} |
252 | 248 |
|
253 |
protected int getGeometryType(GPEParser parser) {
|
|
249 |
protected int getGeometryType() { |
|
254 | 250 |
return TYPES.GEOMETRY; |
255 | 251 |
} |
256 | 252 |
|
257 | 253 |
protected static void registerDynClass() { |
258 | 254 |
DynObjectManager dynman = ToolsLocator.getDynObjectManager(); |
259 |
DynClass dynClass; |
|
260 |
DynField field; |
|
255 |
DynClass dynClass; |
|
261 | 256 |
if (DYNCLASS == null) { |
262 | 257 |
|
263 | 258 |
dynClass = dynman.add(DYNCLASS_NAME); |
... | ... | |
278 | 273 |
return new GPESetProvider(this, query, featureType); |
279 | 274 |
} |
280 | 275 |
|
281 |
public long getFeatureCount() throws DataException { |
|
282 |
FmapContentHandler handler = (FmapContentHandler)parser.getContentHandler(); |
|
283 |
return handler.getFeaturesCount(); |
|
276 |
public long getFeatureCount() throws DataException { |
|
277 |
return contentHandler.getFeaturesCount(); |
|
284 | 278 |
} |
285 | 279 |
|
286 |
/** |
|
287 |
* @return the parser |
|
288 |
*/ |
|
289 |
public GPEParser getParser() { |
|
290 |
return parser; |
|
291 |
} |
|
292 |
|
|
293 | 280 |
/* (non-Javadoc) |
294 | 281 |
* @see org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProvider#getEnvelope() |
295 | 282 |
*/ |
... | ... | |
323 | 310 |
} |
324 | 311 |
} |
325 | 312 |
|
313 |
/** |
|
314 |
* @return the contentHandler |
|
315 |
*/ |
|
316 |
public FmapContentHandler getContentHandler() { |
|
317 |
return contentHandler; |
|
318 |
} |
|
319 |
|
|
320 |
/** |
|
321 |
* @return the errorHandler |
|
322 |
*/ |
|
323 |
public FmapErrorHandler getErrorHandler() { |
|
324 |
return errorHandler; |
|
325 |
} |
|
326 |
|
|
326 | 327 |
} |
Also available in: Unified diff