Statistics
| Revision:

root / tags / v2_0_0_Build_2020 / libraries / libRemoteServices / src / org / gvsig / remoteclient / wfs / wfs_1_0_0 / WFSProtocolHandler1_0_0.java @ 33803

History | View | Annotate | Download (18.1 KB)

1
package org.gvsig.remoteclient.wfs.wfs_1_0_0;
2

    
3
import java.io.File;
4
import java.io.FileNotFoundException;
5
import java.io.IOException;
6
import java.util.Vector;
7

    
8
import org.gvsig.compat.CompatLocator;
9
import org.gvsig.compat.lang.StringUtils;
10
import org.gvsig.remoteclient.utils.CapabilitiesTags;
11
import org.gvsig.remoteclient.wfs.WFSProtocolHandler;
12
import org.gvsig.remoteclient.wfs.WFSStatus;
13
import org.gvsig.remoteclient.wfs.edition.WFSTTags;
14
import org.gvsig.remoteclient.wfs.edition.WFSTTransaction;
15
import org.gvsig.remoteclient.wfs.exceptions.ExceptionsFactory;
16
import org.gvsig.remoteclient.wfs.exceptions.WFSException;
17
import org.gvsig.remoteclient.wfs.exceptions.WFSGetFeatureException;
18
import org.gvsig.remoteclient.wfs.request.WFSDescribeFeatureTypeRequest;
19
import org.gvsig.remoteclient.wfs.request.WFSGetFeatureRequest;
20
import org.gvsig.remoteclient.wfs.request.WFSTLockFeatureRequest;
21
import org.gvsig.remoteclient.wfs.schema.XMLElement;
22
import org.gvsig.remoteclient.wfs.schema.XMLElementsFactory;
23
import org.gvsig.remoteclient.wfs.schema.XMLSchemaParser;
24
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSDescribeFeatureTypeRequest1_0_0;
25
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSGetFeatureRequest1_0_0;
26
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSTLockFeatureRequest1_0_0;
27
import org.kxml2.io.KXmlParser;
28
import org.xmlpull.v1.XmlPullParserException;
29

    
30
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
31
 *
32
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
33
 *
34
 * This program is free software; you can redistribute it and/or
35
 * modify it under the terms of the GNU General Public License
36
 * as published by the Free Software Foundation; either version 2
37
 * of the License, or (at your option) any later version.
38
 *
39
 * This program is distributed in the hope that it will be useful,
40
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
41
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
42
 * GNU General Public License for more details.
43
 *
44
 * You should have received a copy of the GNU General Public License
45
 * along with this program; if not, write to the Free Software
46
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
47
 *
48
 * For more information, contact:
49
 *
50
 *  Generalitat Valenciana
51
 *   Conselleria d'Infraestructures i Transport
52
 *   Av. Blasco Ib??ez, 50
53
 *   46010 VALENCIA
54
 *   SPAIN
55
 *
56
 *      +34 963862235
57
 *   gvsig@gva.es
58
 *      www.gvsig.gva.es
59
 *
60
 *    or
61
 *
62
 *   IVER T.I. S.A
63
 *   Salamanca 50
64
 *   46005 Valencia
65
 *   Spain
66
 *
67
 *   +34 963163400
68
 *   dac@iver.es
69
 */
70
/* CVS MESSAGES:
71
 *
72
 * $Id: WFSProtocolHandler1_0_0.java 33803 2010-10-26 11:19:33Z cordinyana $
73
 * $Log$
74
 * Revision 1.12  2007-02-19 11:43:10  jorpiell
75
 * A?adidos los filtros por ?rea
76
 *
77
 * Revision 1.11  2007/02/09 14:11:01  jorpiell
78
 * Primer piloto del soporte para WFS 1.1 y para WFS-T
79
 *
80
 * Revision 1.10  2007/01/16 08:30:22  csanchez
81
 * Sistema de Warnings y Excepciones adaptado a BasicException
82
 *
83
 * Revision 1.9  2006/12/22 11:31:01  jorpiell
84
 * Cambio del parser 2.x
85
 *
86
 * Revision 1.8  2006/10/31 09:36:51  jorpiell
87
 * Se devuelve el tipo de la entidad completo, y no sus hijos
88
 *
89
 * Revision 1.7  2006/10/10 12:52:28  jorpiell
90
 * Soporte para features complejas.
91
 *
92
 * Revision 1.6  2006/06/14 07:54:18  jorpiell
93
 * Se parsea el online resource que antes se ignoraba
94
 *
95
 * Revision 1.5  2006/05/25 10:20:57  jorpiell
96
 * Se ha cambiado el nombre de la clase WFSField por la clase WFSAttribute, porque resultaba confuso
97
 *
98
 * Revision 1.4  2006/05/23 13:23:22  jorpiell
99
 * Se ha cambiado el final del bucle de parseado y se tiene en cuenta el online resource
100
 *
101
 * Revision 1.2  2006/04/20 16:39:16  jorpiell
102
 * A?adida la operacion de describeFeatureType y el parser correspondiente.
103
 *
104
 * Revision 1.1  2006/04/19 12:51:35  jorpiell
105
 * A?adidas algunas de las clases del servicio WFS
106
 *
107
 *
108
 */
109
/**
110
 * @author Jorge Piera Llodr? (piera_jor@gva.es)
111
 */
112
public class WFSProtocolHandler1_0_0 extends WFSProtocolHandler{
113
    
114
    private static final StringUtils stringUtils = CompatLocator.getStringUtils();
115
    
116
    public WFSProtocolHandler1_0_0(){
117
                this.version = "1.0.0";
118
                this.name = "WFS1.0.0";                
119
        }        
120
        
121
        /*
122
         * (non-Javadoc)
123
         * @see org.gvsig.remoteClient.OGCProtocolHandler#parseCapabilities(java.io.File)
124
         */
125
        public boolean parseCapabilities(File f) {
126
                int tag;
127
                XMLSchemaParser parser = null;
128
                parser = new XMLSchemaParser();
129
                try
130
                {
131
                        parser.setInput(f);
132
                        parser.nextTag();
133

    
134
                        if ( parser.getEventType() != KXmlParser.END_DOCUMENT ) 
135
                        {     
136
                                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.WFS_CAPABILITIES_ROOT1_0_0);             
137
                                //Parses the Namespaces...
138
                                parseNamespaces(parser);        
139
                                //Parse the capabilities document
140
                                tag = parser.nextTag();
141
                                while(tag != KXmlParser.END_DOCUMENT)
142
                                {
143
                                        switch(tag)
144
                                        {
145
                                        case KXmlParser.START_TAG:
146
                                                if (parser.getName().compareTo(CapabilitiesTags.SERVICE)==0)
147
                                                {
148
                                                        parseServiceTag(parser);
149
                                                } 
150
                                                else if (parser.getName().compareTo(CapabilitiesTags.CAPABILITY)==0)
151
                                                {
152
                                                        parseCapabilityTag(parser);
153
                                                } 
154
                                                else if (parser.getName().compareTo(CapabilitiesTags.WFS_FEATURETYPELIST)==0)
155
                                                {
156
                                                        parseFeatureTypeListTag(parser);
157
                                                } 
158
                                                break;
159
                                        case KXmlParser.END_TAG:                            
160
                                                break;
161
                                        case KXmlParser.TEXT:                                                                                                 
162
                                                break;
163
                                        }
164
                                        tag = parser.next();
165
                                }
166
                                parser.require(KXmlParser.END_DOCUMENT, null, null);                
167
                        }
168
                }
169
                catch(XmlPullParserException parser_ex){
170
                        parser_ex.printStackTrace();
171
                        return false;
172
                }
173
                catch (IOException ioe) {           
174
                        ioe.printStackTrace();
175
                        return false;
176
                }
177
                return true;
178
        }
179

    
180
        /**
181
         * <p>Parses the Service Information </p>
182
         */    
183
        private void parseServiceTag(KXmlParser parser) throws IOException, XmlPullParserException 
184
        {
185
                int currentTag;
186
                boolean end = false;
187

    
188
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.SERVICE);
189
                currentTag = parser.next();
190

    
191
                while (!end) 
192
                {
193
                        switch(currentTag)
194
                        {
195
                        case KXmlParser.START_TAG:
196
                                if (parser.getName().compareToIgnoreCase(CapabilitiesTags.NAME)==0)
197
                                {
198
                                        serviceInfo.name = parser.nextText(); 
199
                                }   
200
                                else if (parser.getName().compareTo(CapabilitiesTags.WFS_TITLE)==0)
201
                                {
202
                                        serviceInfo.title = parser.nextText(); 
203
                                }
204
                                else if (parser.getName().compareTo(CapabilitiesTags.WFS_ABSTRACT)==0)
205
                                {
206
                                        serviceInfo.abstr = parser.nextText(); 
207
                                } 
208
                                else if (parser.getName().compareTo(CapabilitiesTags.ONLINERESOURCE)==0)
209
                                {
210
                                        serviceInfo.online_resource = parser.nextText();
211

    
212
                                }                               
213
                                break;
214
                        case KXmlParser.END_TAG:
215
                                if (parser.getName().compareTo(CapabilitiesTags.SERVICE) == 0)
216
                                        end = true;
217
                                break;
218
                        case KXmlParser.TEXT:                   
219
                                break;
220
                        }
221
                        if (!end){
222
                                currentTag = parser.next();
223
                        }
224
                }     
225
        }
226

    
227
        private void parseCapabilityTag(KXmlParser parser) throws IOException, XmlPullParserException
228
        {   
229
                int currentTag;
230
                boolean end = false;
231

    
232
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.CAPABILITY);
233
                currentTag = parser.next();
234

    
235
                while (!end) 
236
                {
237
                        switch(currentTag)
238
                        {
239
                        case KXmlParser.START_TAG:
240
                                if (parser.getName().compareTo(CapabilitiesTags.REQUEST)==0)
241
                                {
242
                                        parseRequestTag(parser); 
243
                                }   
244
                                else if (parser.getName().compareTo(CapabilitiesTags.EXCEPTION)==0)
245
                                {
246
                                        //TODO Parse exception tags...
247
                                        parser.skipSubTree();
248
                                }
249
                                else if ((parser.getName().compareTo(CapabilitiesTags.VENDORSPECIFICCAPABILITIES)==0) ||
250
                                                (parser.getName().compareTo(CapabilitiesTags.USERDEFINEDSYMBOLIZATION )==0))
251
                                {
252
                                        parser.skipSubTree();
253
                                }                   
254
                                break;
255
                        case KXmlParser.END_TAG:
256
                                if (parser.getName().compareTo(CapabilitiesTags.CAPABILITY) == 0)
257
                                        end = true;
258
                                break;
259
                        case KXmlParser.TEXT:                   
260
                                break;
261
                        }
262
                        if (!end){
263
                                currentTag = parser.next();
264
                        }
265
                }
266
        }
267

    
268
        /**
269
         * <p>Parses the Request tag </p>
270
         */ 
271
        private void parseRequestTag(KXmlParser parser) throws IOException, XmlPullParserException
272
        {   
273
                int currentTag;
274
                boolean end = false;
275

    
276
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.REQUEST);
277
                currentTag = parser.next();
278

    
279
                while (!end) 
280
                {
281
                        switch(currentTag)
282
                        {
283
                        case KXmlParser.START_TAG:
284
                                if (parser.getName().compareTo(CapabilitiesTags.GETCAPABILITIES)==0){
285
                                        parserDcpType(parser, CapabilitiesTags.GETCAPABILITIES);                                        
286
                                } else if (parser.getName().compareTo(CapabilitiesTags.WFS_DESCRIBEFEATURETYPE)==0)        {
287
                                        parserDcpType(parser, CapabilitiesTags.WFS_DESCRIBEFEATURETYPE);                                                             
288
                                }else if (parser.getName().compareTo(CapabilitiesTags.WFS_GETFEATURE)==0){
289
                                        parserDcpType(parser, CapabilitiesTags.WFS_GETFEATURE);
290
                                }else if (parser.getName().compareTo(CapabilitiesTags.WFS_LOCKFEATURE)==0){
291
                                        parserDcpType(parser, CapabilitiesTags.WFS_LOCKFEATURE);
292
                                }else if (parser.getName().compareTo(CapabilitiesTags.WFS_TRANSACTION)==0){
293
                                        parserDcpType(parser, CapabilitiesTags.WFS_TRANSACTION);
294
                                }               
295
                                break;
296
                        case KXmlParser.END_TAG:
297
                                if (parser.getName().compareTo(CapabilitiesTags.REQUEST) == 0)
298
                                        end = true;
299
                                break;
300
                        case KXmlParser.TEXT:                   
301
                                break;
302
                        }
303
                        if (!end){
304
                                currentTag = parser.next();
305
                        }
306
                }    
307
        }
308

    
309
        /**
310
         * It parses the feature typelist tag
311
         * @param parser
312
         * @throws IOException
313
         * @throws XmlPullParserException
314
         */
315
        private void parseFeatureTypeListTag(KXmlParser parser) throws IOException, XmlPullParserException{
316
                int currentTag;
317
                boolean end = false;
318

    
319
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.WFS_FEATURETYPELIST);
320
                currentTag = parser.next();
321

    
322
                while (!end) 
323
                {
324
                        switch(currentTag)
325
                        {
326
                        case KXmlParser.START_TAG:
327
                                if (parser.getName().compareToIgnoreCase(CapabilitiesTags.WFS_FEATURETYPE)==0){
328
                                        //Parse the namespaces...
329
                                        parseNamespaces(parser);        
330
                                        WFSFeature1_0_0 feature = new WFSFeature1_0_0();
331
                                        feature.parse(parser);        
332
                                        features.put(feature.getName(),feature);
333
                                }                                          
334
                                break;
335
                        case KXmlParser.END_TAG:
336
                                if (parser.getName().compareTo(CapabilitiesTags.WFS_FEATURETYPELIST) == 0)
337
                                        end = true;
338
                                break;
339
                        case KXmlParser.TEXT:                   
340
                                break;
341
                        }
342
                        if (!end){
343
                                currentTag = parser.next();
344
                        }
345
                }     
346
        }        
347

    
348
        /*
349
         * (non-Javadoc)
350
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseDescribeFeatureType(java.io.File, java.lang.String)
351
         */
352
        protected boolean parseDescribeFeatureType(File f,String nameSpace) {
353
                XMLSchemaParser schemaParser = new XMLSchemaParser();
354
                try {
355
                        schemaParser.parse(f,nameSpace);
356
                } catch (XmlPullParserException e) {
357
                        // TODO Auto-generated catch block
358
                        e.printStackTrace();
359
                } catch (IOException e) {
360
                        // TODO Auto-generated catch block
361
                        e.printStackTrace();
362
                }
363

    
364
                String layerName = getCurrentFeature();
365
                if (stringUtils.split(getCurrentFeature(), ":").length>1){
366
                        layerName = stringUtils.split(getCurrentFeature(), ":")[1];
367
                }
368
                XMLElement entity = XMLElementsFactory.getElement(layerName);
369
                if (entity != null){
370
                        Vector vector = new Vector();
371
                        vector.add(entity);
372
                        setFields(vector);
373
                }
374
                return true;
375
        }
376

    
377
        /*
378
         *  (non-Javadoc)
379
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseGetFeature(java.io.File, java.lang.String)
380
         */
381
        protected boolean parseGetFeature(File f, String nameSpace) throws WFSException {
382
                XMLSchemaParser parser = null;
383
                parser = new XMLSchemaParser();
384
                try
385
                {
386
                        parser.setInput(f);
387
                        parser.nextTag();                                
388
                        if (parser.getName().compareTo(CapabilitiesTags.SERVICE_EXCEPTION_REPORT)==0){
389
                                throw ExceptionsFactory.parseExceptionReport(parser);
390
                        }                        
391
                } catch (FileNotFoundException e) {
392
                        e.printStackTrace();
393
                        throw new WFSGetFeatureException(e);
394
                } catch (XmlPullParserException e) {
395
                        e.printStackTrace();
396
                        throw new WFSGetFeatureException(e);
397
                } catch (IOException e) {
398
                        e.printStackTrace();
399
                        throw new WFSGetFeatureException(e);
400
                }        
401

    
402
                return true;
403
        }
404

    
405
        /*
406
         * (non-Javadoc)
407
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseTransaction(java.io.File, java.lang.String)
408
         */
409
        protected boolean parseTransaction(File f, String nameSpace, WFSTTransaction transaction) throws WFSException {
410
                int tag;
411
                XMLSchemaParser parser = null;
412
                parser = new XMLSchemaParser();
413
                try
414
                {
415
                        parser.setInput(f);
416
                        parser.nextTag();
417
                        if (parser.getName().compareTo(CapabilitiesTags.SERVICE_EXCEPTION_REPORT)==0){
418
                                throw ExceptionsFactory.parseExceptionReport(parser);
419
                        }                
420

    
421

    
422
                        if ( parser.getEventType() != KXmlParser.END_DOCUMENT ) 
423
                        {                                           
424
                                tag = parser.nextTag();
425
                                while(tag != KXmlParser.END_DOCUMENT)
426
                                {
427
                                        switch(tag)
428
                                        {
429
                                        case KXmlParser.START_TAG:
430
                                                if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONRESULT)==0){
431
                                                        parseTransactionResult(parser, transaction);
432
                                                }else if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONRESPONSE)==0){
433
                                                        parseFeaturesLocked(parser);
434
                                                }                                                
435
                                                break;
436
                                        case KXmlParser.END_TAG:                            
437
                                                break;
438
                                        case KXmlParser.TEXT:
439
                                                break;
440
                                        }
441
                                        tag = parser.next();
442
                                }
443
                                parser.require(KXmlParser.END_DOCUMENT, null, null);                
444
                        }
445
                }
446
                catch(XmlPullParserException parser_ex){
447
                        parser_ex.printStackTrace();
448
                        return false;
449
                }
450
                catch (IOException ioe) {           
451
                        ioe.printStackTrace();
452
                        return false;
453
                }
454
                return true;
455
        }
456

    
457
        /**
458
         * Parse the transaction result XML sub tree
459
         * @param parser
460
         * @param transaction
461
         * @throws IOException 
462
         * @throws XmlPullParserException 
463
         */
464
        private void parseTransactionResult(XMLSchemaParser parser,
465
                        WFSTTransaction transaction) throws XmlPullParserException, IOException {
466
                int currentTag;
467
                boolean end = false;                
468

    
469
                currentTag = parser.next();
470

    
471
                while (!end) 
472
                {
473
                        switch(currentTag)
474
                        {
475
                        case KXmlParser.START_TAG:
476
                                if (parser.getName().compareTo(WFSTTags.WFST_STATUS)==0){
477
                                        parseStatus(parser, transaction);
478
                                }else if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONMESSAGE)==0){
479
                                        parser.next();
480
                                        transaction.setMessage(parser.getText());
481
                                }
482
                                break;
483
                        case KXmlParser.END_TAG:
484
                                if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONRESULT)==0)
485
                                        end = true;
486
                                break;
487
                        case KXmlParser.TEXT:                   
488
                                break;
489
                        }
490
                        if (!end){
491
                                currentTag = parser.next();
492
                        }
493
                }     
494
        }
495

    
496
        /**
497
         * Parser WFST Status subtree
498
         * @param parser
499
         * Teh xML parser
500
         * @param transaction
501
         * The current transaction
502
         * @throws IOException 
503
         * @throws XmlPullParserException 
504
         */
505
        private void parseStatus(XMLSchemaParser parser, WFSTTransaction transaction) throws XmlPullParserException, IOException {
506
                int currentTag;
507
                boolean end = false;                
508

    
509
                currentTag = parser.next();
510

    
511
                while (!end) 
512
                {
513
                        switch(currentTag)
514
                        {
515
                        case KXmlParser.START_TAG:
516
                                if (parser.getName().compareTo(WFSTTags.WFST_SUCCESS)==0){
517
                                        transaction.setStatus(WFSTTransaction.STATUS_SUCCESS);
518
                                }else if (parser.getName().compareTo(WFSTTags.WFST_FAILED)==0){
519
                                        transaction.setStatus(WFSTTransaction.STATUS_FAILED);
520
                                }
521
                                break;
522
                        case KXmlParser.END_TAG:
523
                                if (parser.getName().compareTo(WFSTTags.WFST_STATUS)==0)
524
                                        end = true;
525
                                break;
526
                        case KXmlParser.TEXT:                   
527
                                break;
528
                        }
529
                        if (!end){
530
                                currentTag = parser.next();
531
                        }
532
                }    
533
        }
534

    
535
        /*
536
         * (non-Javadoc)
537
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseLockFeature(java.io.File, java.lang.String)
538
         */
539
        protected boolean parseLockFeature(File f, String nameSpace, WFSStatus status) throws WFSException {
540
                int tag;
541
                XMLSchemaParser parser = null;
542
                parser = new XMLSchemaParser();
543
                try
544
                {
545
                        parser.setInput(f);
546
                        parser.nextTag();
547
                        if (parser.getName().compareTo(CapabilitiesTags.SERVICE_EXCEPTION_REPORT)==0){
548
                                throw ExceptionsFactory.parseExceptionReport(parser);
549
                        }                
550

    
551

    
552
                        if ( parser.getEventType() != KXmlParser.END_DOCUMENT ) 
553
                        {                                           
554
                                tag = parser.nextTag();
555
                                while(tag != KXmlParser.END_DOCUMENT)
556
                                {
557
                                        switch(tag)
558
                                        {
559
                                        case KXmlParser.START_TAG:
560
                                                if (parser.getName().compareTo(WFSTTags.WFST_LOCKID)==0){
561
                                                        parser.next();
562
                                                        status.addFeatureLocked(parser.getText());
563
                                                }else if (parser.getName().compareTo(WFSTTags.WFST_FEATURESLOCKED)==0){
564
                                                        parseFeaturesLocked(parser);
565
                                                }                                                
566
                                                break;
567
                                        case KXmlParser.END_TAG:                            
568
                                                break;
569
                                        case KXmlParser.TEXT:
570
                                                break;
571
                                        }
572
                                        tag = parser.next();
573
                                }
574
                                parser.require(KXmlParser.END_DOCUMENT, null, null);                
575
                        }
576
                }
577
                catch(XmlPullParserException parser_ex){
578
                        parser_ex.printStackTrace();
579
                        return false;
580
                }
581
                catch (IOException ioe) {           
582
                        ioe.printStackTrace();
583
                        return false;
584
                }
585
                return true;
586
        }
587

    
588
        /**
589
         * It parses the featuresLocked tag
590
         * @param parser
591
         * @throws IOException 
592
         * @throws XmlPullParserException 
593
         */
594
        private void parseFeaturesLocked(XMLSchemaParser parser) throws XmlPullParserException, IOException {
595
                int currentTag;
596
                boolean end = false;                
597

    
598
                currentTag = parser.next();
599

    
600
                while (!end) 
601
                {
602
                        switch(currentTag)
603
                        {
604
                        case KXmlParser.START_TAG:
605
                                if (parser.getName().compareTo(WFSTTags.WFST_FEATURESID)==0){
606

    
607
                                }
608
                                break;
609
                        case KXmlParser.END_TAG:
610
                                if (parser.getName().compareTo(WFSTTags.WFST_FEATURESLOCKED)==0)
611
                                        end = true;
612
                                break;
613
                        case KXmlParser.TEXT:                   
614
                                break;
615
                        }
616
                        if (!end){
617
                                currentTag = parser.next();
618
                        }
619
                }     
620
        }
621

    
622
        /*
623
         * (non-Javadoc)
624
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#createDescribeFeatureTypeRequest(org.gvsig.remoteClient.wfs.WFSStatus)
625
         */
626
        protected WFSDescribeFeatureTypeRequest createDescribeFeatureTypeRequest(
627
                        WFSStatus status) {
628
                return new WFSDescribeFeatureTypeRequest1_0_0(status, this);
629
        }
630

    
631
        /*
632
         * (non-Javadoc)
633
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#createGetFeatureRequest(org.gvsig.remoteClient.wfs.WFSStatus)
634
         */
635
        protected WFSGetFeatureRequest createGetFeatureRequest(WFSStatus status) {
636
                return new WFSGetFeatureRequest1_0_0(status, this);
637
        }
638

    
639
        /*
640
         * (non-Javadoc)
641
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#createLockFeatureRequest(org.gvsig.remoteClient.wfs.WFSStatus)
642
         */
643
        protected WFSTLockFeatureRequest createLockFeatureRequest(WFSStatus status) {
644
                return new WFSTLockFeatureRequest1_0_0(status, this);
645
        }
646
}