Revision 32051 branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/GPEStoreProvider.java

View differences:

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