Revision 11204 trunk/libraries/libGPE-GML/src/org/gvsig/gpe/gml/writer/GPEGmlWriterHandler.java

View differences:

GPEGmlWriterHandler.java
11 11
import org.gvsig.gpe.gml.GMLTags;
12 12
import org.gvsig.gpe.gml.writer.features.ElementWriter;
13 13
import org.gvsig.gpe.gml.writer.features.FeatureMemberWriter;
14
import org.gvsig.gpe.gml.writer.geometries.BoundedByWriter;
14 15
import org.gvsig.gpe.gml.writer.geometries.BoxWriter;
16
import org.gvsig.gpe.gml.writer.geometries.InnerBoundaryIs;
17
import org.gvsig.gpe.gml.writer.geometries.LineStringMemberWriter;
15 18
import org.gvsig.gpe.gml.writer.geometries.LineStringWriter;
16 19
import org.gvsig.gpe.gml.writer.geometries.LinearRingWriter;
20
import org.gvsig.gpe.gml.writer.geometries.MultiLineStringWriter;
21
import org.gvsig.gpe.gml.writer.geometries.MultiPointWriter;
22
import org.gvsig.gpe.gml.writer.geometries.MultiPolygonWriter;
23
import org.gvsig.gpe.gml.writer.geometries.PointMemberWriter;
17 24
import org.gvsig.gpe.gml.writer.geometries.PointWriter;
25
import org.gvsig.gpe.gml.writer.geometries.PolygonMemberWriter;
18 26
import org.gvsig.gpe.gml.writer.geometries.PolygonWriter;
19 27
import org.gvsig.gpe.xml.writer.GPEXmlWriterHandler;
20 28

  
......
64 72
 *
65 73
 * $Id$
66 74
 * $Log$
67
 * Revision 1.3  2007-04-13 07:17:57  jorpiell
75
 * Revision 1.4  2007-04-13 13:16:00  jorpiell
76
 * Add the multiple geometries
77
 *
78
 * Revision 1.3  2007/04/13 07:17:57  jorpiell
68 79
 * Add the writting tests for the simple geometries
69 80
 *
70 81
 * Revision 1.2  2007/04/12 17:06:44  jorpiell
......
79 90
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
80 91
 */
81 92
public class GPEGmlWriterHandler extends GPEXmlWriterHandler{
93
	//In GML there is only one label. It the consumer
94
	//try to add more labels the driver will be report
95
	//one exception
82 96
	private boolean oneLayer = false;
97
	
98
	//Used for the multi-geometries
99
	private boolean isMultiple = false;
100
	
101
	//Used to close the labels
83 102
	private String currentFeature = null;
84
	private String currentElement = null;
103
	private String currentElement = null;	
85 104
	
86 105
	public GPEGmlWriterHandler(String format, File file,GPEErrorHandler errorHandler) throws IOException {
87 106
		super(format, file, errorHandler);		
......
231 250
	 */
232 251
	public void startPoint(String id, double x, double y, double z, String srs) {
233 252
		try {
234
			PointWriter.start(writer, x, y, z, srs, id);
253
			if (isMultiple){
254
				PointMemberWriter.start(writer, x, y, z, srs, id);
255
			}else{
256
				PointWriter.start(writer, x, y, z, srs, id);
257
			}
235 258
		} catch (IOException e) {
236 259
			getErrorHandler().addError(e);
237 260
		}		
......
243 266
	 */
244 267
	public void endPoint() {
245 268
		try {
246
			PointWriter.end(writer);
269
			if (isMultiple){
270
				PointMemberWriter.end(writer);
271
			}else{
272
				PointWriter.end(writer);
273
			}
247 274
		} catch (IOException e) {
248 275
			getErrorHandler().addError(e);
249 276
		}
......
256 283
	 */
257 284
	public void startLineString(String id, double[] x, double[] y, double[] z, String srs) {
258 285
		try {
259
			LineStringWriter.start(writer, x, y, z, srs, id);
286
			if (isMultiple){
287
				LineStringMemberWriter.start(writer, x, y, z, srs, id);
288
			}else{
289
				LineStringWriter.start(writer, x, y, z, srs, id);
290
			}
260 291
		} catch (IOException e) {
261 292
			getErrorHandler().addError(e);
262 293
		}		
......
268 299
	 */
269 300
	public void endLineString() {
270 301
		try {
271
			LineStringWriter.end(writer);
302
			if (isMultiple){
303
				LineStringMemberWriter.end(writer);
304
			}else{
305
				LineStringWriter.end(writer);
306
			}
272 307
		} catch (IOException e) {
273 308
			getErrorHandler().addError(e);
274 309
		}		
......
280 315
	 */
281 316
	public void startBbox(String id, double[] x, double[] y, double[] z, String srs) {
282 317
		try {
283
			BoxWriter.start(writer, x, y, z, srs, id);
318
			BoundedByWriter.start(writer, x, y, z, srs, id);
284 319
		} catch (IOException e) {
285 320
			getErrorHandler().addError(e);
286 321
		}		
......
292 327
	 */
293 328
	public void endBbox() {
294 329
		try {
295
			BoxWriter.end(writer);
330
			BoundedByWriter.end(writer);
296 331
		} catch (IOException e) {
297 332
			getErrorHandler().addError(e);
298 333
		}			
......
328 363
	 */
329 364
	public void startPolygon(String id, double[] x, double[] y, double[] z, String srs) {
330 365
		try {
331
			PolygonWriter.start(writer, x, y, z, srs, id);
366
			if (isMultiple){
367
				PolygonMemberWriter.start(writer, x, y, z, srs, id);
368
			}else{
369
				PolygonWriter.start(writer, x, y, z, srs, id);
370
			}
332 371
		} catch (IOException e) {
333 372
			getErrorHandler().addError(e);
334 373
		}
......
340 379
	 */
341 380
	public void endPolygon() {
342 381
		try {
343
			PolygonWriter.end(writer);
382
			if (isMultiple){
383
				PolygonMemberWriter.end(writer);
384
			}else{
385
				PolygonWriter.end(writer);
386
			}
344 387
		} catch (IOException e) {
345 388
			getErrorHandler().addError(e);
346 389
		}	
347 390
	}
391
	
392
	/*
393
	 * (non-Javadoc)
394
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#startInnerBoundary(java.lang.String, double[], double[], double[], java.lang.String)
395
	 */
396
	public void startInnerBoundary(String id, double[] x, double[] y, double[] z, String srs) {
397
		try {
398
			InnerBoundaryIs.start(writer, x, y, z);
399
		} catch (IOException e) {
400
			getErrorHandler().addError(e);
401
		}
402
	}
403
	
404
	/*
405
	 * (non-Javadoc)
406
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#endInnerBoundary()
407
	 */
408
	public void endInnerBoundary() {
409
		try {
410
			InnerBoundaryIs.end(writer);
411
		} catch (IOException e) {
412
			getErrorHandler().addError(e);
413
		}	
414
	}
415
	
416
	/*
417
	 * (non-Javadoc)
418
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#startMultiPoint(java.lang.String, java.lang.String)
419
	 */
420
	public void startMultiPoint(String id, String srs) {
421
		isMultiple = true;
422
		try {
423
			MultiPointWriter.start(writer, srs, id);
424
		} catch (IOException e) {
425
			getErrorHandler().addError(e);
426
		}
427
	}
428
	
429
	/*
430
	 * (non-Javadoc)
431
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#endMuliPoint()
432
	 */
433
	public void endMuliPoint() {
434
		isMultiple = false;
435
		try {
436
			MultiPointWriter.end(writer);
437
		} catch (IOException e) {
438
			getErrorHandler().addError(e);
439
		}
440
	}
441

  
442
	/*
443
	 * (non-Javadoc)
444
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#startMultiLineString(java.lang.String, java.lang.String)
445
	 */
446
	public void startMultiLineString(String id, String srs) {
447
		isMultiple = true;
448
		try {
449
			MultiLineStringWriter.start(writer, srs, id);
450
		} catch (IOException e) {
451
			getErrorHandler().addError(e);
452
		}
453
	}
454
	
455
	/*
456
	 * (non-Javadoc)
457
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#endMultiLineString()
458
	 */
459
	public void endMultiLineString() {
460
		isMultiple = false;
461
		try {
462
			MultiLineStringWriter.end(writer);
463
		} catch (IOException e) {
464
			getErrorHandler().addError(e);
465
		}
466
	}
467

  
468
	/*
469
	 * (non-Javadoc)
470
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#startMultiPolygon(java.lang.String, java.lang.String)
471
	 */
472
	public void startMultiPolygon(String id, String srs) {
473
		isMultiple = true;
474
		try {
475
			MultiPolygonWriter.start(writer, srs, id);
476
		} catch (IOException e) {
477
			getErrorHandler().addError(e);
478
		}		
479
	}
480
	
481
	/*
482
	 * (non-Javadoc)
483
	 * @see org.gvsig.gpe.writers.GPEWriterHandler#endMultiPolygon()
484
	 */
485
	public void endMultiPolygon() {
486
		isMultiple = false;
487
		try {
488
			MultiPolygonWriter.end(writer);
489
		} catch (IOException e) {
490
			getErrorHandler().addError(e);
491
		}		
492
	}	
348 493
}

Also available in: Unified diff