Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libRemoteServices / src / org / gvsig / remoteclient / wfs / wfs_1_0_0 / WFSProtocolHandler1_0_0.java @ 34133

History | View | Annotate | Download (18 KB)

1 29662 jpiera
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
7 34026 jpiera
import org.kxml2.io.KXmlParser;
8
import org.xmlpull.v1.XmlPullParserException;
9
10 33738 jpiera
import org.gvsig.compat.CompatLocator;
11
import org.gvsig.compat.lang.StringUtils;
12 29662 jpiera
import org.gvsig.remoteclient.utils.CapabilitiesTags;
13
import org.gvsig.remoteclient.wfs.WFSProtocolHandler;
14
import org.gvsig.remoteclient.wfs.WFSStatus;
15
import org.gvsig.remoteclient.wfs.edition.WFSTTags;
16
import org.gvsig.remoteclient.wfs.edition.WFSTTransaction;
17
import org.gvsig.remoteclient.wfs.exceptions.ExceptionsFactory;
18
import org.gvsig.remoteclient.wfs.exceptions.WFSException;
19
import org.gvsig.remoteclient.wfs.exceptions.WFSGetFeatureException;
20
import org.gvsig.remoteclient.wfs.request.WFSDescribeFeatureTypeRequest;
21
import org.gvsig.remoteclient.wfs.request.WFSGetFeatureRequest;
22
import org.gvsig.remoteclient.wfs.request.WFSTLockFeatureRequest;
23 34130 jpiera
import org.gvsig.remoteclient.wfs.request.WFSTransactionRequest;
24
import org.gvsig.remoteclient.wfs.request.WFSTransactionRequestInformation;
25 29662 jpiera
import org.gvsig.remoteclient.wfs.schema.XMLSchemaParser;
26
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSDescribeFeatureTypeRequest1_0_0;
27
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSGetFeatureRequest1_0_0;
28
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSTLockFeatureRequest1_0_0;
29 34130 jpiera
import org.gvsig.remoteclient.wfs.wfs_1_0_0.request.WFSTransactionRequest1_0_0;
30 29662 jpiera
31
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
32
 *
33
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
34
 *
35
 * This program is free software; you can redistribute it and/or
36
 * modify it under the terms of the GNU General Public License
37
 * as published by the Free Software Foundation; either version 2
38
 * of the License, or (at your option) any later version.
39
 *
40
 * This program is distributed in the hope that it will be useful,
41
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
42
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
43
 * GNU General Public License for more details.
44
 *
45
 * You should have received a copy of the GNU General Public License
46
 * along with this program; if not, write to the Free Software
47
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
48
 *
49
 * For more information, contact:
50
 *
51
 *  Generalitat Valenciana
52
 *   Conselleria d'Infraestructures i Transport
53
 *   Av. Blasco Ib??ez, 50
54
 *   46010 VALENCIA
55
 *   SPAIN
56
 *
57
 *      +34 963862235
58
 *   gvsig@gva.es
59
 *      www.gvsig.gva.es
60
 *
61
 *    or
62
 *
63
 *   IVER T.I. S.A
64
 *   Salamanca 50
65
 *   46005 Valencia
66
 *   Spain
67
 *
68
 *   +34 963163400
69
 *   dac@iver.es
70
 */
71
/* CVS MESSAGES:
72
 *
73
 * $Id$
74
 * $Log$
75
 * Revision 1.12  2007-02-19 11:43:10  jorpiell
76
 * A?adidos los filtros por ?rea
77
 *
78
 * Revision 1.11  2007/02/09 14:11:01  jorpiell
79
 * Primer piloto del soporte para WFS 1.1 y para WFS-T
80
 *
81
 * Revision 1.10  2007/01/16 08:30:22  csanchez
82
 * Sistema de Warnings y Excepciones adaptado a BasicException
83
 *
84
 * Revision 1.9  2006/12/22 11:31:01  jorpiell
85
 * Cambio del parser 2.x
86
 *
87
 * Revision 1.8  2006/10/31 09:36:51  jorpiell
88
 * Se devuelve el tipo de la entidad completo, y no sus hijos
89
 *
90
 * Revision 1.7  2006/10/10 12:52:28  jorpiell
91
 * Soporte para features complejas.
92
 *
93
 * Revision 1.6  2006/06/14 07:54:18  jorpiell
94
 * Se parsea el online resource que antes se ignoraba
95
 *
96
 * Revision 1.5  2006/05/25 10:20:57  jorpiell
97
 * Se ha cambiado el nombre de la clase WFSField por la clase WFSAttribute, porque resultaba confuso
98
 *
99
 * Revision 1.4  2006/05/23 13:23:22  jorpiell
100
 * Se ha cambiado el final del bucle de parseado y se tiene en cuenta el online resource
101
 *
102
 * Revision 1.2  2006/04/20 16:39:16  jorpiell
103
 * A?adida la operacion de describeFeatureType y el parser correspondiente.
104
 *
105
 * Revision 1.1  2006/04/19 12:51:35  jorpiell
106
 * A?adidas algunas de las clases del servicio WFS
107
 *
108
 *
109
 */
110
/**
111
 * @author Jorge Piera Llodr? (piera_jor@gva.es)
112
 */
113
public class WFSProtocolHandler1_0_0 extends WFSProtocolHandler{
114 33738 jpiera
115
    private static final StringUtils stringUtils = CompatLocator.getStringUtils();
116
117
    public WFSProtocolHandler1_0_0(){
118 29662 jpiera
                this.version = "1.0.0";
119
                this.name = "WFS1.0.0";
120
        }
121
122
        /*
123
         * (non-Javadoc)
124
         * @see org.gvsig.remoteClient.OGCProtocolHandler#parseCapabilities(java.io.File)
125
         */
126
        public boolean parseCapabilities(File f) {
127
                int tag;
128
                XMLSchemaParser parser = null;
129
                parser = new XMLSchemaParser();
130
                try
131
                {
132
                        parser.setInput(f);
133
                        parser.nextTag();
134
135
                        if ( parser.getEventType() != KXmlParser.END_DOCUMENT )
136
                        {
137
                                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.WFS_CAPABILITIES_ROOT1_0_0);
138
                                //Parses the Namespaces...
139
                                parseNamespaces(parser);
140
                                //Parse the capabilities document
141
                                tag = parser.nextTag();
142
                                while(tag != KXmlParser.END_DOCUMENT)
143
                                {
144
                                        switch(tag)
145
                                        {
146
                                        case KXmlParser.START_TAG:
147
                                                if (parser.getName().compareTo(CapabilitiesTags.SERVICE)==0)
148
                                                {
149
                                                        parseServiceTag(parser);
150
                                                }
151
                                                else if (parser.getName().compareTo(CapabilitiesTags.CAPABILITY)==0)
152
                                                {
153
                                                        parseCapabilityTag(parser);
154
                                                }
155
                                                else if (parser.getName().compareTo(CapabilitiesTags.WFS_FEATURETYPELIST)==0)
156
                                                {
157
                                                        parseFeatureTypeListTag(parser);
158
                                                }
159
                                                break;
160
                                        case KXmlParser.END_TAG:
161
                                                break;
162
                                        case KXmlParser.TEXT:
163
                                                break;
164
                                        }
165
                                        tag = parser.next();
166
                                }
167
                                parser.require(KXmlParser.END_DOCUMENT, null, null);
168
                        }
169
                }
170
                catch(XmlPullParserException parser_ex){
171
                        parser_ex.printStackTrace();
172
                        return false;
173
                }
174
                catch (IOException ioe) {
175
                        ioe.printStackTrace();
176
                        return false;
177
                }
178
                return true;
179
        }
180
181
        /**
182
         * <p>Parses the Service Information </p>
183
         */
184
        private void parseServiceTag(KXmlParser parser) throws IOException, XmlPullParserException
185
        {
186
                int currentTag;
187
                boolean end = false;
188
189
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.SERVICE);
190
                currentTag = parser.next();
191
192
                while (!end)
193
                {
194
                        switch(currentTag)
195
                        {
196
                        case KXmlParser.START_TAG:
197
                                if (parser.getName().compareToIgnoreCase(CapabilitiesTags.NAME)==0)
198
                                {
199
                                        serviceInfo.name = parser.nextText();
200
                                }
201
                                else if (parser.getName().compareTo(CapabilitiesTags.WFS_TITLE)==0)
202
                                {
203
                                        serviceInfo.title = parser.nextText();
204
                                }
205
                                else if (parser.getName().compareTo(CapabilitiesTags.WFS_ABSTRACT)==0)
206
                                {
207
                                        serviceInfo.abstr = parser.nextText();
208
                                }
209
                                else if (parser.getName().compareTo(CapabilitiesTags.ONLINERESOURCE)==0)
210
                                {
211
                                        serviceInfo.online_resource = parser.nextText();
212
213
                                }
214
                                break;
215
                        case KXmlParser.END_TAG:
216
                                if (parser.getName().compareTo(CapabilitiesTags.SERVICE) == 0)
217
                                        end = true;
218
                                break;
219
                        case KXmlParser.TEXT:
220
                                break;
221
                        }
222
                        if (!end){
223
                                currentTag = parser.next();
224
                        }
225
                }
226
        }
227
228
        private void parseCapabilityTag(KXmlParser parser) throws IOException, XmlPullParserException
229
        {
230
                int currentTag;
231
                boolean end = false;
232
233
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.CAPABILITY);
234
                currentTag = parser.next();
235
236
                while (!end)
237
                {
238
                        switch(currentTag)
239
                        {
240
                        case KXmlParser.START_TAG:
241
                                if (parser.getName().compareTo(CapabilitiesTags.REQUEST)==0)
242
                                {
243
                                        parseRequestTag(parser);
244
                                }
245
                                else if (parser.getName().compareTo(CapabilitiesTags.EXCEPTION)==0)
246
                                {
247
                                        //TODO Parse exception tags...
248
                                        parser.skipSubTree();
249
                                }
250
                                else if ((parser.getName().compareTo(CapabilitiesTags.VENDORSPECIFICCAPABILITIES)==0) ||
251
                                                (parser.getName().compareTo(CapabilitiesTags.USERDEFINEDSYMBOLIZATION )==0))
252
                                {
253
                                        parser.skipSubTree();
254
                                }
255
                                break;
256
                        case KXmlParser.END_TAG:
257
                                if (parser.getName().compareTo(CapabilitiesTags.CAPABILITY) == 0)
258
                                        end = true;
259
                                break;
260
                        case KXmlParser.TEXT:
261
                                break;
262
                        }
263
                        if (!end){
264
                                currentTag = parser.next();
265
                        }
266
                }
267
        }
268
269
        /**
270
         * <p>Parses the Request tag </p>
271
         */
272
        private void parseRequestTag(KXmlParser parser) throws IOException, XmlPullParserException
273
        {
274
                int currentTag;
275
                boolean end = false;
276
277
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.REQUEST);
278
                currentTag = parser.next();
279
280
                while (!end)
281
                {
282
                        switch(currentTag)
283
                        {
284
                        case KXmlParser.START_TAG:
285
                                if (parser.getName().compareTo(CapabilitiesTags.GETCAPABILITIES)==0){
286
                                        parserDcpType(parser, CapabilitiesTags.GETCAPABILITIES);
287
                                } else if (parser.getName().compareTo(CapabilitiesTags.WFS_DESCRIBEFEATURETYPE)==0)        {
288
                                        parserDcpType(parser, CapabilitiesTags.WFS_DESCRIBEFEATURETYPE);
289
                                }else if (parser.getName().compareTo(CapabilitiesTags.WFS_GETFEATURE)==0){
290
                                        parserDcpType(parser, CapabilitiesTags.WFS_GETFEATURE);
291
                                }else if (parser.getName().compareTo(CapabilitiesTags.WFS_LOCKFEATURE)==0){
292
                                        parserDcpType(parser, CapabilitiesTags.WFS_LOCKFEATURE);
293
                                }else if (parser.getName().compareTo(CapabilitiesTags.WFS_TRANSACTION)==0){
294
                                        parserDcpType(parser, CapabilitiesTags.WFS_TRANSACTION);
295
                                }
296
                                break;
297
                        case KXmlParser.END_TAG:
298
                                if (parser.getName().compareTo(CapabilitiesTags.REQUEST) == 0)
299
                                        end = true;
300
                                break;
301
                        case KXmlParser.TEXT:
302
                                break;
303
                        }
304
                        if (!end){
305
                                currentTag = parser.next();
306
                        }
307
                }
308
        }
309
310
        /**
311
         * It parses the feature typelist tag
312
         * @param parser
313
         * @throws IOException
314
         * @throws XmlPullParserException
315
         */
316
        private void parseFeatureTypeListTag(KXmlParser parser) throws IOException, XmlPullParserException{
317
                int currentTag;
318
                boolean end = false;
319
320
                parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.WFS_FEATURETYPELIST);
321
                currentTag = parser.next();
322
323
                while (!end)
324
                {
325
                        switch(currentTag)
326
                        {
327
                        case KXmlParser.START_TAG:
328
                                if (parser.getName().compareToIgnoreCase(CapabilitiesTags.WFS_FEATURETYPE)==0){
329
                                        //Parse the namespaces...
330
                                        parseNamespaces(parser);
331 34026 jpiera
                                        WFSFeature1_0_0 feature = new WFSFeature1_0_0(serviceInfo);
332 29662 jpiera
                                        feature.parse(parser);
333
                                        features.put(feature.getName(),feature);
334
                                }
335
                                break;
336
                        case KXmlParser.END_TAG:
337
                                if (parser.getName().compareTo(CapabilitiesTags.WFS_FEATURETYPELIST) == 0)
338
                                        end = true;
339
                                break;
340
                        case KXmlParser.TEXT:
341
                                break;
342
                        }
343
                        if (!end){
344
                                currentTag = parser.next();
345
                        }
346
                }
347
        }
348
349
        /*
350
         *  (non-Javadoc)
351
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseGetFeature(java.io.File, java.lang.String)
352
         */
353
        protected boolean parseGetFeature(File f, String nameSpace) throws WFSException {
354
                XMLSchemaParser parser = null;
355
                parser = new XMLSchemaParser();
356
                try
357
                {
358
                        parser.setInput(f);
359
                        parser.nextTag();
360
                        if (parser.getName().compareTo(CapabilitiesTags.SERVICE_EXCEPTION_REPORT)==0){
361 34133 jpiera
                                throw ExceptionsFactory.parseServiceExceptionReport(parser);
362 29662 jpiera
                        }
363
                } catch (FileNotFoundException e) {
364
                        e.printStackTrace();
365
                        throw new WFSGetFeatureException(e);
366
                } catch (XmlPullParserException e) {
367
                        e.printStackTrace();
368
                        throw new WFSGetFeatureException(e);
369
                } catch (IOException e) {
370
                        e.printStackTrace();
371
                        throw new WFSGetFeatureException(e);
372
                }
373
374
                return true;
375
        }
376
377
        /*
378
         * (non-Javadoc)
379
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseTransaction(java.io.File, java.lang.String)
380
         */
381 34130 jpiera
        protected boolean parseTransaction(File f,  WFSStatus status) throws WFSException {
382 34133 jpiera
                int tag;
383
                XMLSchemaParser parser = null;
384
                parser = new XMLSchemaParser();
385
386
                WFSTransactionRequestInformation transactionRequestInformation =
387
                    (WFSTransactionRequestInformation)this.getLastWfsRequestInformation();
388
389
                try
390
                {
391
                        parser.setInput(f);
392
                        parser.nextTag();
393
                        if (CapabilitiesTags.SERVICE_EXCEPTION_REPORT.equals(parser.getName())) {
394
                                throw ExceptionsFactory.parseServiceExceptionReport(parser);
395
                        }else if (parser.getName().equals(CapabilitiesTags.EXCEPTION_REPORT)){
396
                throw ExceptionsFactory.parseExceptionReport(parser);
397
                    }
398
399
                        if ( parser.getEventType() != KXmlParser.END_DOCUMENT )
400
                        {
401
                                tag = parser.nextTag();
402
                                while(tag != KXmlParser.END_DOCUMENT)
403
                                {
404
                                        switch(tag)
405
                                        {
406
                                        case KXmlParser.START_TAG:
407
                                                if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONRESULT)==0){
408
                                                        parseTransactionResult(parser, transactionRequestInformation);
409
                                                }else if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONRESPONSE)==0){
410
                                                        parseFeaturesLocked(parser);
411
                                                }
412
                                                break;
413
                                        case KXmlParser.END_TAG:
414
                                                break;
415
                                        case KXmlParser.TEXT:
416
                                                break;
417
                                        }
418
                                        tag = parser.next();
419
                                }
420
                                parser.require(KXmlParser.END_DOCUMENT, null, null);
421
                        }
422
                }
423
                catch(XmlPullParserException parser_ex){
424
                        parser_ex.printStackTrace();
425
                        return false;
426
                }
427
                catch (IOException ioe) {
428
                        ioe.printStackTrace();
429
                        return false;
430
                }
431 29662 jpiera
                return true;
432
        }
433
434
        /**
435
         * Parse the transaction result XML sub tree
436
         * @param parser
437
         * @param transaction
438
         * @throws IOException
439
         * @throws XmlPullParserException
440
         */
441
        private void parseTransactionResult(XMLSchemaParser parser,
442 34133 jpiera
                        WFSTransactionRequestInformation transactionRequestInformation) throws XmlPullParserException, IOException {
443
                int currentTag;
444
                boolean end = false;
445
446
                currentTag = parser.next();
447
448
                while (!end)
449
                {
450
                        switch(currentTag)
451
                        {
452
                        case KXmlParser.START_TAG:
453
                                if (parser.getName().compareTo(WFSTTags.WFST_STATUS)==0){
454
                                        parseStatus(parser, transactionRequestInformation);
455
                                }else if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONMESSAGE)==0){
456
                                        parser.next();
457
                                        transactionRequestInformation.setMessage(parser.getText());
458
                                }
459
                                break;
460
                        case KXmlParser.END_TAG:
461
                                if (parser.getName().compareTo(WFSTTags.WFST_TRANSACTIONRESULT)==0)
462
                                        end = true;
463
                                break;
464
                        case KXmlParser.TEXT:
465
                                break;
466
                        }
467
                        if (!end){
468
                                currentTag = parser.next();
469
                        }
470
                }
471 29662 jpiera
        }
472
473
        /**
474
         * Parser WFST Status subtree
475
         * @param parser
476
         * Teh xML parser
477
         * @param transaction
478
         * The current transaction
479
         * @throws IOException
480
         * @throws XmlPullParserException
481
         */
482 34133 jpiera
        private void parseStatus(XMLSchemaParser parser, WFSTransactionRequestInformation transactionRequestInformation) throws XmlPullParserException, IOException {
483 29662 jpiera
                int currentTag;
484
                boolean end = false;
485
486
                currentTag = parser.next();
487 34130 jpiera
488 29662 jpiera
                while (!end)
489
                {
490
                        switch(currentTag)
491
                        {
492
                        case KXmlParser.START_TAG:
493
                                if (parser.getName().compareTo(WFSTTags.WFST_SUCCESS)==0){
494 34130 jpiera
                                    transactionRequestInformation.setStatus(WFSTransactionRequestInformation.STATUS_SUCCESS);
495 29662 jpiera
                                }else if (parser.getName().compareTo(WFSTTags.WFST_FAILED)==0){
496 34130 jpiera
                                    transactionRequestInformation.setStatus(WFSTransactionRequestInformation.STATUS_FAILED);
497 29662 jpiera
                                }
498
                                break;
499
                        case KXmlParser.END_TAG:
500
                                if (parser.getName().compareTo(WFSTTags.WFST_STATUS)==0)
501
                                        end = true;
502
                                break;
503
                        case KXmlParser.TEXT:
504
                                break;
505
                        }
506
                        if (!end){
507
                                currentTag = parser.next();
508
                        }
509
                }
510
        }
511
512
        /*
513
         * (non-Javadoc)
514
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#parseLockFeature(java.io.File, java.lang.String)
515
         */
516
        protected boolean parseLockFeature(File f, String nameSpace, WFSStatus status) throws WFSException {
517
                int tag;
518
                XMLSchemaParser parser = null;
519
                parser = new XMLSchemaParser();
520
                try
521
                {
522
                        parser.setInput(f);
523
                        parser.nextTag();
524
                        if (parser.getName().compareTo(CapabilitiesTags.SERVICE_EXCEPTION_REPORT)==0){
525 34133 jpiera
                                throw ExceptionsFactory.parseServiceExceptionReport(parser);
526 29662 jpiera
                        }
527
528
529
                        if ( parser.getEventType() != KXmlParser.END_DOCUMENT )
530
                        {
531
                                tag = parser.nextTag();
532
                                while(tag != KXmlParser.END_DOCUMENT)
533
                                {
534
                                        switch(tag)
535
                                        {
536
                                        case KXmlParser.START_TAG:
537
                                                if (parser.getName().compareTo(WFSTTags.WFST_LOCKID)==0){
538
                                                        parser.next();
539
                                                        status.addFeatureLocked(parser.getText());
540
                                                }else if (parser.getName().compareTo(WFSTTags.WFST_FEATURESLOCKED)==0){
541
                                                        parseFeaturesLocked(parser);
542
                                                }
543
                                                break;
544
                                        case KXmlParser.END_TAG:
545
                                                break;
546
                                        case KXmlParser.TEXT:
547
                                                break;
548
                                        }
549
                                        tag = parser.next();
550
                                }
551
                                parser.require(KXmlParser.END_DOCUMENT, null, null);
552
                        }
553
                }
554
                catch(XmlPullParserException parser_ex){
555
                        parser_ex.printStackTrace();
556
                        return false;
557
                }
558
                catch (IOException ioe) {
559
                        ioe.printStackTrace();
560
                        return false;
561
                }
562
                return true;
563
        }
564
565
        /**
566
         * It parses the featuresLocked tag
567
         * @param parser
568
         * @throws IOException
569
         * @throws XmlPullParserException
570
         */
571
        private void parseFeaturesLocked(XMLSchemaParser parser) throws XmlPullParserException, IOException {
572
                int currentTag;
573
                boolean end = false;
574
575
                currentTag = parser.next();
576
577
                while (!end)
578
                {
579
                        switch(currentTag)
580
                        {
581
                        case KXmlParser.START_TAG:
582
                                if (parser.getName().compareTo(WFSTTags.WFST_FEATURESID)==0){
583
584
                                }
585
                                break;
586
                        case KXmlParser.END_TAG:
587
                                if (parser.getName().compareTo(WFSTTags.WFST_FEATURESLOCKED)==0)
588
                                        end = true;
589
                                break;
590
                        case KXmlParser.TEXT:
591
                                break;
592
                        }
593
                        if (!end){
594
                                currentTag = parser.next();
595
                        }
596
                }
597
        }
598
599
        /*
600
         * (non-Javadoc)
601
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#createDescribeFeatureTypeRequest(org.gvsig.remoteClient.wfs.WFSStatus)
602
         */
603
        protected WFSDescribeFeatureTypeRequest createDescribeFeatureTypeRequest(
604
                        WFSStatus status) {
605
                return new WFSDescribeFeatureTypeRequest1_0_0(status, this);
606
        }
607
608
        /*
609
         * (non-Javadoc)
610
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#createGetFeatureRequest(org.gvsig.remoteClient.wfs.WFSStatus)
611
         */
612
        protected WFSGetFeatureRequest createGetFeatureRequest(WFSStatus status) {
613
                return new WFSGetFeatureRequest1_0_0(status, this);
614
        }
615
616
        /*
617
         * (non-Javadoc)
618
         * @see org.gvsig.remoteClient.wfs.WFSProtocolHandler#createLockFeatureRequest(org.gvsig.remoteClient.wfs.WFSStatus)
619
         */
620
        protected WFSTLockFeatureRequest createLockFeatureRequest(WFSStatus status) {
621
                return new WFSTLockFeatureRequest1_0_0(status, this);
622
        }
623 34130 jpiera
624
    protected WFSTransactionRequest createTransactionRequest(WFSStatus status) {
625
        return new WFSTransactionRequest1_0_0(status, this);
626
    }
627 29662 jpiera
}