Revision 53

View differences:

branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/DeferredReadingCoordinateIterator.java
1
/* gvSIG. Sistem a de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2009 Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 9638 62 495
28
 *      gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 */
31
package org.gvsig.gpe.gml.parser;
32

  
33
import java.io.IOException;
34

  
35
import org.gvsig.gpe.parser.ICoordinateIterator;
36
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
37

  
38
/**
39
 * {@link ICoordinateIterator}
40
 * @author groldan
41
 *
42
 */
43
public class DeferredReadingCoordinateIterator implements ICoordinateIterator {
44

  
45
    private final int dimension;
46

  
47
    private final int numCoords;
48

  
49
    private int currCoordIndex;
50

  
51
    private IXmlStreamReader parser;
52

  
53
    public DeferredReadingCoordinateIterator(final int valueCount, final int dimension,
54
            final IXmlStreamReader parser) {
55
        this.parser = parser;
56
        this.dimension = dimension;
57
        this.numCoords = valueCount / dimension;
58
        currCoordIndex = 0;
59
    }
60

  
61
    /**
62
     * @see org.gvsig.gpe.parser.ICoordinateIterator#getDimension()
63
     */
64
    public int getDimension() {
65
        return dimension;
66
    }
67

  
68
    /**
69
     * @see org.gvsig.gpe.parser.ICoordinateIterator#hasNext()
70
     */
71
    public boolean hasNext() throws IOException {
72
        return currCoordIndex < numCoords;
73
    }
74

  
75
    /**
76
     * @see org.gvsig.gpe.parser.ICoordinateIterator#next(double[])
77
     */
78
    public void next(double[] buffer) throws IOException {
79
        parser.getValue(buffer, 0, dimension);
80
        currCoordIndex++;
81
    }
82

  
83
}
0 84

  
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/GPEDefaultGmlParser.java
8 8
import java.net.URI;
9 9

  
10 10
import org.gvsig.gpe.gml.parser.profiles.IBindingProfile;
11
import org.gvsig.gpe.gml.parser.v2.features.FeatureCollectionBinding;
11 12
import org.gvsig.gpe.xml.exceptions.GPEXmlEmptyFileException;
12 13
import org.gvsig.gpe.xml.parser.GPEXmlParser;
14
import org.gvsig.gpe.xml.stream.EventType;
13 15
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
14 16
import org.gvsig.gpe.xml.stream.XmlStreamException;
15 17

  
......
161 163
		// First, it gets the file parser.
162 164
		fileParser = getParser();
163 165
		// If the file is empty
164
		if (getParser().getEventType() == IXmlStreamReader.END_DOCUMENT) {
166
		if (getParser().getEventType() == EventType.END_DOCUMENT) {
165 167
			throw new GPEXmlEmptyFileException();
166 168
		}
167
		try{
168
			getProfile().getFeatureCollectionBinding().
169
			parse(getParser(), this);		
170
		} catch (IOException e) {
171
			getErrorHandler().addError(e);
172
		}	
169
        try {
170
            IBindingProfile profile = getProfile();
171
            FeatureCollectionBinding featureCollectionBinding;
172
            featureCollectionBinding = profile.getFeatureCollectionBinding();
173
            featureCollectionBinding.parse(fileParser, this);
174
        } catch (IOException e) {
175
            e.printStackTrace();
176
            getErrorHandler().addError(e);
177
        }
173 178
	}
174 179

  
175 180
	public IXmlStreamReader getFileParser() {
176 181
		return fileParser;
177 182
	}
178 183

  
179
	/***********************************************************************************************
180
	 * <getNext> Gets the next tag or text token from the file. without white spaces.
181
	 **********************************************************************************************/
182
	public void getNext() {
183
		// Get next tag --> next():Method from KXML library to get next tag
184
		try {
185
			fileParser.next();
186
			if ((fileParser.getEventType() == IXmlStreamReader.CHARACTERS)
187
					&& (fileParser.isWhitespace())) {
188
				getNext();
189
			}
190
		} catch (XmlStreamException e) {
191
			// TODO Bloque catch generado autom?ticamente
192
			System.out.println("Error en XmlPullParser al intentar obtener la siguiente etiqueta: "
193
					+ e.getMessage());
194
		} catch (IOException e) {
195
			// TODO Bloque catch generado autom?ticamente
196
			System.out.println("Error al leer la siguiente etiqueta en XmlPullParser: "
197
					+ e.getMessage());
198
		}
199
	}
184
//	/***********************************************************************************************
185
//	 * <getNext> Gets the next tag or text token from the file. without white spaces.
186
//	 **********************************************************************************************/
187
//	public void getNext() {
188
//		// Get next tag --> next():Method from KXML library to get next tag
189
//		try {
190
//			fileParser.next();
191
//			if ((fileParser.getEventType() == IXmlStreamReader.CHARACTERS)
192
//					&& (fileParser.isWhitespace())) {
193
//				getNext();
194
//			}
195
//		} catch (XmlStreamException e) {
196
//			// TODO Bloque catch generado autom?ticamente
197
//			System.out.println("Error en XmlPullParser al intentar obtener la siguiente etiqueta: "
198
//					+ e.getMessage());
199
//		} catch (IOException e) {
200
//			// TODO Bloque catch generado autom?ticamente
201
//			System.out.println("Error al leer la siguiente etiqueta en XmlPullParser: "
202
//					+ e.getMessage());
203
//		}
204
//	}
200 205

  
201 206
	/**
202 207
	 * @param profile the profile to set
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/profiles/Gml2BindingProfile.java
84 84
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
85 85
 */
86 86
public class Gml2BindingProfile extends DefaultBindingProfile {
87
	protected FeatureCollectionBinding featureCollectionBinding = new FeatureCollectionBinding();
88
	protected ElementTypeBinding elementTypeBinding = new ElementTypeBinding();
89
	protected GeometryBinding geometryBinding = new GeometryBinding();
90
	protected GeometryPropertyTypeBinding geometryPropertyTypeBinding = new GeometryPropertyTypeBinding();
91
	protected PointPropertyTypeBinding pointPropertyTypeBinding = new PointPropertyTypeBinding();
92
	protected LineStringPropertyTypeBinding lineStringPropertyTypeBinding = new LineStringPropertyTypeBinding();
93
	protected PolygonPropertyTypeBinding polygonPropertyTypeBinding = new PolygonPropertyTypeBinding();
94
	protected MultiPointPropertyTypeBinding multiPointPropertyTypeBinding = new MultiPointPropertyTypeBinding();
95
	protected MultiLineStringPropertyTypeBinding multiLineStringPropertyTypeBinding = new MultiLineStringPropertyTypeBinding();
96
	protected MultiPolygonPropertyTypeBinding multiPolygonPropertyTypeBinding = new MultiPolygonPropertyTypeBinding();
97
	protected MultiGeometryPropertyTypeBinding multiGeometryPropertyTypeBinding = new MultiGeometryPropertyTypeBinding();
98
	protected BoundedByTypeBinding boundedByTypeBinding = new BoundedByTypeBinding();
99
	protected FeatureMemberTypeBinding featureMemberTypeBinding = new FeatureMemberTypeBinding();
100
	protected FeatureMembersTypeBinding featureMembersTypeBinding = new FeatureMembersTypeBinding();
101
	protected FeatureTypeBinding featureTypeBinding = new FeatureTypeBinding();
102
	protected BoxTypeBinding boxTypeBinding = new BoxTypeBinding();
103
	protected CoordinatesTypeIterator coordinatesTypeIterator = new CoordinatesTypeIterator();
104
	protected CoordTypeIterator coordTypeIterator = new CoordTypeIterator();
105
	protected PointMemberTypeBinding pointMemberTypeBinding = new PointMemberTypeBinding();
106
	protected PointTypeBinding pointTypeBinding = new PointTypeBinding();
107
	protected LineStringMemberTypeBinding lineStringMemberTypeBinding = new LineStringMemberTypeBinding();
108
	protected LineStringTypeBinding lineStringTypeBinding = new LineStringTypeBinding();
109
	protected LinearRingTypeBinding linearRingTypeBinding = new LinearRingTypeBinding();
110
	protected PolygonMemberTypeBinding polygonMemberTypeBinding = new PolygonMemberTypeBinding();
111
	protected PolygonTypeBinding polygonTypeBinding = new PolygonTypeBinding();
112
	protected GeometryMemberTypeBinding geometryMemberTypeBinding = new GeometryMemberTypeBinding();
113
	protected MultiPointTypeBinding multiPointTypeBinding = new MultiPointTypeBinding();
114
	protected MultiLineStringTypeBinding multiLineStringTypeBinding = new MultiLineStringTypeBinding();
115
	protected MultiPolygonTypeBinding multiPolygonTypeBinding = new MultiPolygonTypeBinding();
116
	protected MultiGeometryTypeBinding multiGeometryTypeBinding = new MultiGeometryTypeBinding();
117
	protected OuterBoundaryIsTypeBinding outerBoundaryIsTypeBinding = new OuterBoundaryIsTypeBinding();
118
	protected InnerBoundaryIsTypeBinding innerBoundaryIsTypeBinding = new InnerBoundaryIsTypeBinding();
119
	
120
	/*
121
	 * (non-Javadoc)
122
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getFeatureCollectionBinding()
123
	 */
124
	public FeatureCollectionBinding getFeatureCollectionBinding(){
125
		return featureCollectionBinding;
126
	}
127
		
128
	/*
129
	 * (non-Javadoc)
130
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getElementTypeBinding()
131
	 */
132
	public ElementTypeBinding getElementTypeBinding(){
133
		return elementTypeBinding;
134
	}
87
    FeatureCollectionBinding featureCollectionBinding = new FeatureCollectionBinding();
88
    ElementTypeBinding elementTypeBinding = new ElementTypeBinding();
89
    GeometryBinding geometryBinding = new GeometryBinding();
90
    GeometryPropertyTypeBinding geometryPropertyTypeBinding = new GeometryPropertyTypeBinding();
91
    PointPropertyTypeBinding pointPropertyTypeBinding = new PointPropertyTypeBinding();
92
    LineStringPropertyTypeBinding lineStringPropertyTypeBinding = new LineStringPropertyTypeBinding();
93
    PolygonPropertyTypeBinding polygonPropertyTypeBinding = new PolygonPropertyTypeBinding();
94
    MultiPointPropertyTypeBinding multiPointPropertyTypeBinding = new MultiPointPropertyTypeBinding();
95
    MultiLineStringPropertyTypeBinding multiLineStringPropertyTypeBinding = new MultiLineStringPropertyTypeBinding();
96
    MultiPolygonPropertyTypeBinding multiPolygonPropertyTypeBinding = new MultiPolygonPropertyTypeBinding();
97
    MultiGeometryPropertyTypeBinding multiGeometryPropertyTypeBinding = new MultiGeometryPropertyTypeBinding();
98
    BoundedByTypeBinding boundedByTypeBinding = new BoundedByTypeBinding();
99
    FeatureMemberTypeBinding featureMemberTypeBinding = new FeatureMemberTypeBinding();
100
    FeatureMembersTypeBinding featureMembersTypeBinding = new FeatureMembersTypeBinding();
101
    FeatureTypeBinding featureTypeBinding = new FeatureTypeBinding();
102
    BoxTypeBinding boxTypeBinding = new BoxTypeBinding();
103
    CoordinatesTypeIterator coordinatesTypeIterator = new CoordinatesTypeIterator();
104
    CoordTypeIterator coordTypeIterator = new CoordTypeIterator();
105
    PointMemberTypeBinding pointMemberTypeBinding = new PointMemberTypeBinding();
106
    PointTypeBinding pointTypeBinding = new PointTypeBinding();
107
    LineStringMemberTypeBinding lineStringMemberTypeBinding = new LineStringMemberTypeBinding();
108
    LineStringTypeBinding lineStringTypeBinding = new LineStringTypeBinding();
109
    LinearRingTypeBinding linearRingTypeBinding = new LinearRingTypeBinding();
110
    PolygonMemberTypeBinding polygonMemberTypeBinding = new PolygonMemberTypeBinding();
111
    PolygonTypeBinding polygonTypeBinding = new PolygonTypeBinding();
112
    GeometryMemberTypeBinding geometryMemberTypeBinding = new GeometryMemberTypeBinding();
113
    MultiPointTypeBinding multiPointTypeBinding = new MultiPointTypeBinding();
114
    MultiLineStringTypeBinding multiLineStringTypeBinding = new MultiLineStringTypeBinding();
115
    MultiPolygonTypeBinding multiPolygonTypeBinding = new MultiPolygonTypeBinding();
116
    MultiGeometryTypeBinding multiGeometryTypeBinding = new MultiGeometryTypeBinding();
117
    OuterBoundaryIsTypeBinding outerBoundaryIsTypeBinding = new OuterBoundaryIsTypeBinding();
118
    InnerBoundaryIsTypeBinding innerBoundaryIsTypeBinding = new InnerBoundaryIsTypeBinding();
119
    
120
    /*
121
     * (non-Javadoc)
122
     * @see org.gvsig.gpe.gml.profiles.IProfile#getFeatureCollectionBinding()
123
     */
124
    public FeatureCollectionBinding getFeatureCollectionBinding(){
125
        return featureCollectionBinding;
126
    }
127
        
128
    /*
129
     * (non-Javadoc)
130
     * @see org.gvsig.gpe.gml.profiles.IProfile#getElementTypeBinding()
131
     */
132
    public ElementTypeBinding getElementTypeBinding(){
133
        return elementTypeBinding;
134
    }
135 135

  
136
	/*
137
	 * (non-Javadoc)
138
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryBinding()
139
	 */
140
	public GeometryBinding getGeometryBinding() {
141
		return geometryBinding;
142
	}
136
    /*
137
     * (non-Javadoc)
138
     * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryBinding()
139
     */
140
    public GeometryBinding getGeometryBinding() {
141
        return geometryBinding;
142
    }
143 143

  
144
	/*
145
	 * (non-Javadoc)
146
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryPropertyTypeBinding()
147
	 */
148
	public GeometryPropertyTypeBinding getGeometryPropertyTypeBinding() {
149
		return geometryPropertyTypeBinding;
150
	}
144
    /*
145
     * (non-Javadoc)
146
     * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryPropertyTypeBinding()
147
     */
148
    public GeometryPropertyTypeBinding getGeometryPropertyTypeBinding() {
149
        return geometryPropertyTypeBinding;
150
    }
151 151

  
152
	/*
153
	 * (non-Javadoc)
154
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getLineStringPropertyTypeBinding()
155
	 */
156
	public LineStringPropertyTypeBinding getLineStringPropertyTypeBinding() {
157
		return lineStringPropertyTypeBinding;
158
	}
152
    /*
153
     * (non-Javadoc)
154
     * @see org.gvsig.gpe.gml.profiles.IProfile#getLineStringPropertyTypeBinding()
155
     */
156
    public LineStringPropertyTypeBinding getLineStringPropertyTypeBinding() {
157
        return lineStringPropertyTypeBinding;
158
    }
159 159

  
160
	/*
161
	 * (non-Javadoc)
162
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiGeometryPropertyTypeBinding()
163
	 */
164
	public MultiGeometryPropertyTypeBinding getMultiGeometryPropertyTypeBinding() {
165
		return multiGeometryPropertyTypeBinding;
166
	}
160
    /*
161
     * (non-Javadoc)
162
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiGeometryPropertyTypeBinding()
163
     */
164
    public MultiGeometryPropertyTypeBinding getMultiGeometryPropertyTypeBinding() {
165
        return multiGeometryPropertyTypeBinding;
166
    }
167 167

  
168
	/*
169
	 * (non-Javadoc)
170
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiLineStringPropertyTypeBinding()
171
	 */
172
	public MultiLineStringPropertyTypeBinding getMultiLineStringPropertyTypeBinding() {
173
		return multiLineStringPropertyTypeBinding;
174
	}
168
    /*
169
     * (non-Javadoc)
170
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiLineStringPropertyTypeBinding()
171
     */
172
    public MultiLineStringPropertyTypeBinding getMultiLineStringPropertyTypeBinding() {
173
        return multiLineStringPropertyTypeBinding;
174
    }
175 175

  
176
	/*
177
	 * (non-Javadoc)
178
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPointPropertyTypeBinding()
179
	 */
180
	public MultiPointPropertyTypeBinding getMultiPointPropertyTypeBinding() {
181
		return multiPointPropertyTypeBinding ;
182
	}
176
    /*
177
     * (non-Javadoc)
178
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPointPropertyTypeBinding()
179
     */
180
    public MultiPointPropertyTypeBinding getMultiPointPropertyTypeBinding() {
181
        return multiPointPropertyTypeBinding ;
182
    }
183 183

  
184
	/*
185
	 * (non-Javadoc)
186
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPolygonPropertyTypeBinding()
187
	 */
188
	public MultiPolygonPropertyTypeBinding getMultiPolygonPropertyTypeBinding() {
189
		return multiPolygonPropertyTypeBinding;
190
	}
184
    /*
185
     * (non-Javadoc)
186
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPolygonPropertyTypeBinding()
187
     */
188
    public MultiPolygonPropertyTypeBinding getMultiPolygonPropertyTypeBinding() {
189
        return multiPolygonPropertyTypeBinding;
190
    }
191 191

  
192
	/*
193
	 * (non-Javadoc)
194
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPointPropertyTypeBinding()
195
	 */
196
	public PointPropertyTypeBinding getPointPropertyTypeBinding() {
197
		return pointPropertyTypeBinding;
198
	}
192
    /*
193
     * (non-Javadoc)
194
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPointPropertyTypeBinding()
195
     */
196
    public PointPropertyTypeBinding getPointPropertyTypeBinding() {
197
        return pointPropertyTypeBinding;
198
    }
199 199

  
200
	/*
201
	 * (non-Javadoc)
202
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonPropertyTypeBinding()
203
	 */
204
	public PolygonPropertyTypeBinding getPolygonPropertyTypeBinding() {
205
		return polygonPropertyTypeBinding;
206
	}
200
    /*
201
     * (non-Javadoc)
202
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonPropertyTypeBinding()
203
     */
204
    public PolygonPropertyTypeBinding getPolygonPropertyTypeBinding() {
205
        return polygonPropertyTypeBinding;
206
    }
207 207

  
208
	/*
209
	 * (non-Javadoc)
210
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getBoundedByTypeBinding()
211
	 */
212
	public BoundedByTypeBinding getBoundedByTypeBinding() {
213
		return boundedByTypeBinding;
214
	}
208
    /*
209
     * (non-Javadoc)
210
     * @see org.gvsig.gpe.gml.profiles.IProfile#getBoundedByTypeBinding()
211
     */
212
    public BoundedByTypeBinding getBoundedByTypeBinding() {
213
        return boundedByTypeBinding;
214
    }
215 215

  
216
	/*
217
	 * (non-Javadoc)
218
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getFeatureMemberTypeBinding()
219
	 */
220
	public FeatureMemberTypeBinding getFeatureMemberTypeBinding() {
221
		return featureMemberTypeBinding;
222
	}
216
    /*
217
     * (non-Javadoc)
218
     * @see org.gvsig.gpe.gml.profiles.IProfile#getFeatureMemberTypeBinding()
219
     */
220
    public FeatureMemberTypeBinding getFeatureMemberTypeBinding() {
221
        return featureMemberTypeBinding;
222
    }
223 223

  
224
	/*
225
	 * (non-Javadoc)
226
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getFeatureTypeBinding()
227
	 */
228
	public FeatureTypeBinding getFeatureTypeBinding() {
229
		return featureTypeBinding;
230
	}
224
    /*
225
     * (non-Javadoc)
226
     * @see org.gvsig.gpe.gml.profiles.IProfile#getFeatureTypeBinding()
227
     */
228
    public FeatureTypeBinding getFeatureTypeBinding() {
229
        return featureTypeBinding;
230
    }
231 231

  
232
	/*
233
	 * (non-Javadoc)
234
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getBoxTypeBinding()
235
	 */
236
	public BoxTypeBinding getBoxTypeBinding() {
237
		return boxTypeBinding;
238
	}
232
    /*
233
     * (non-Javadoc)
234
     * @see org.gvsig.gpe.gml.profiles.IProfile#getBoxTypeBinding()
235
     */
236
    public BoxTypeBinding getBoxTypeBinding() {
237
        return boxTypeBinding;
238
    }
239 239

  
240
	/*
241
	 * (non-Javadoc)
242
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getCoordinatesTypeBinding()
243
	 */
244
	public CoordinatesTypeIterator getCoordinatesTypeBinding() {
245
		return coordinatesTypeIterator;
246
	}
240
    /*
241
     * (non-Javadoc)
242
     * @see org.gvsig.gpe.gml.profiles.IProfile#getCoordinatesTypeBinding()
243
     */
244
    public CoordinatesTypeIterator getCoordinatesTypeBinding() {
245
        return coordinatesTypeIterator;
246
    }
247 247

  
248
	/*
249
	 * (non-Javadoc)
250
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getCoordTypeBinding()
251
	 */
252
	public CoordTypeIterator getCoordTypeBinding() {
253
		return coordTypeIterator;
254
	}
248
    /*
249
     * (non-Javadoc)
250
     * @see org.gvsig.gpe.gml.profiles.IProfile#getCoordTypeBinding()
251
     */
252
    public CoordTypeIterator getCoordTypeBinding() {
253
        return coordTypeIterator;
254
    }
255 255

  
256
	/*
257
	 * (non-Javadoc)
258
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryMemberTypeBinding()
259
	 */
260
	public GeometryMemberTypeBinding getGeometryMemberTypeBinding() {
261
		return geometryMemberTypeBinding;
262
	}
256
    /*
257
     * (non-Javadoc)
258
     * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryMemberTypeBinding()
259
     */
260
    public GeometryMemberTypeBinding getGeometryMemberTypeBinding() {
261
        return geometryMemberTypeBinding;
262
    }
263 263

  
264
	/*
265
	 * (non-Javadoc)
266
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getLineStringMemberTypeBinding()
267
	 */
268
	public LineStringMemberTypeBinding getLineStringMemberTypeBinding() {
269
		return lineStringMemberTypeBinding;
270
	}
264
    /*
265
     * (non-Javadoc)
266
     * @see org.gvsig.gpe.gml.profiles.IProfile#getLineStringMemberTypeBinding()
267
     */
268
    public LineStringMemberTypeBinding getLineStringMemberTypeBinding() {
269
        return lineStringMemberTypeBinding;
270
    }
271 271

  
272
	/*
273
	 * (non-Javadoc)
274
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getLineStringTypeBinding()
275
	 */
276
	public LineStringTypeBinding getLineStringTypeBinding() {
277
		return lineStringTypeBinding;
278
	}
272
    /*
273
     * (non-Javadoc)
274
     * @see org.gvsig.gpe.gml.profiles.IProfile#getLineStringTypeBinding()
275
     */
276
    public LineStringTypeBinding getLineStringTypeBinding() {
277
        return lineStringTypeBinding;
278
    }
279 279

  
280
	/*
281
	 * (non-Javadoc)
282
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getLinearRingTypeBinding()
283
	 */
284
	public LinearRingTypeBinding getLinearRingTypeBinding() {
285
		return linearRingTypeBinding;
286
	}
280
    /*
281
     * (non-Javadoc)
282
     * @see org.gvsig.gpe.gml.profiles.IProfile#getLinearRingTypeBinding()
283
     */
284
    public LinearRingTypeBinding getLinearRingTypeBinding() {
285
        return linearRingTypeBinding;
286
    }
287 287

  
288
	/*
289
	 * (non-Javadoc)
290
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiGeometryTypeBinding()
291
	 */
292
	public MultiGeometryTypeBinding getMultiGeometryTypeBinding() {
293
		return multiGeometryTypeBinding;
294
	}
288
    /*
289
     * (non-Javadoc)
290
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiGeometryTypeBinding()
291
     */
292
    public MultiGeometryTypeBinding getMultiGeometryTypeBinding() {
293
        return multiGeometryTypeBinding;
294
    }
295 295

  
296
	/*
297
	 * (non-Javadoc)
298
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiLineStringTypeBinding()
299
	 */
300
	public MultiLineStringTypeBinding getMultiLineStringTypeBinding() {
301
		return multiLineStringTypeBinding;
302
	}
296
    /*
297
     * (non-Javadoc)
298
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiLineStringTypeBinding()
299
     */
300
    public MultiLineStringTypeBinding getMultiLineStringTypeBinding() {
301
        return multiLineStringTypeBinding;
302
    }
303 303

  
304
	/*
305
	 * (non-Javadoc)
306
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPointTypeBinding()
307
	 */
308
	public MultiPointTypeBinding getMultiPointTypeBinding() {
309
		return multiPointTypeBinding;
310
	}
304
    /*
305
     * (non-Javadoc)
306
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPointTypeBinding()
307
     */
308
    public MultiPointTypeBinding getMultiPointTypeBinding() {
309
        return multiPointTypeBinding;
310
    }
311 311

  
312
	/*
313
	 * (non-Javadoc)
314
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPolygonTypeBinding()
315
	 */
316
	public MultiPolygonTypeBinding getMultiPolygonTypeBinding() {
317
		return multiPolygonTypeBinding;
318
	}
312
    /*
313
     * (non-Javadoc)
314
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPolygonTypeBinding()
315
     */
316
    public MultiPolygonTypeBinding getMultiPolygonTypeBinding() {
317
        return multiPolygonTypeBinding;
318
    }
319 319

  
320
	/*
321
	 * (non-Javadoc)
322
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPointMemberTypeBinding()
323
	 */
324
	public PointMemberTypeBinding getPointMemberTypeBinding() {
325
		return pointMemberTypeBinding;
326
	}
320
    /*
321
     * (non-Javadoc)
322
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPointMemberTypeBinding()
323
     */
324
    public PointMemberTypeBinding getPointMemberTypeBinding() {
325
        return pointMemberTypeBinding;
326
    }
327 327

  
328
	/*
329
	 * (non-Javadoc)
330
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPointTypeBinding()
331
	 */
332
	public PointTypeBinding getPointTypeBinding() {
333
		return pointTypeBinding;
334
	}
328
    /*
329
     * (non-Javadoc)
330
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPointTypeBinding()
331
     */
332
    public PointTypeBinding getPointTypeBinding() {
333
        return pointTypeBinding;
334
    }
335 335

  
336
	/*
337
	 * (non-Javadoc)
338
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonMemberTypeBinding()
339
	 */
340
	public PolygonMemberTypeBinding getPolygonMemberTypeBinding() {
341
		return polygonMemberTypeBinding;
342
	}
336
    /*
337
     * (non-Javadoc)
338
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonMemberTypeBinding()
339
     */
340
    public PolygonMemberTypeBinding getPolygonMemberTypeBinding() {
341
        return polygonMemberTypeBinding;
342
    }
343 343

  
344
	/*
345
	 * (non-Javadoc)
346
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonTypeBinding()
347
	 */
348
	public PolygonTypeBinding getPolygonTypeBinding() {
349
		return polygonTypeBinding;
350
	}
351
	
352
	
353
	/*
354
	 * (non-Javadoc)
355
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getOuterBoundaryIsTypeBinding()
356
	 */
357
	public OuterBoundaryIsTypeBinding getOuterBoundaryIsTypeBinding() {
358
		return outerBoundaryIsTypeBinding;
359
	}
344
    /*
345
     * (non-Javadoc)
346
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonTypeBinding()
347
     */
348
    public PolygonTypeBinding getPolygonTypeBinding() {
349
        return polygonTypeBinding;
350
    }
351
    
352
    
353
    /*
354
     * (non-Javadoc)
355
     * @see org.gvsig.gpe.gml.profiles.IProfile#getOuterBoundaryIsTypeBinding()
356
     */
357
    public OuterBoundaryIsTypeBinding getOuterBoundaryIsTypeBinding() {
358
        return outerBoundaryIsTypeBinding;
359
    }
360 360

  
361
	/*
362
	 * (non-Javadoc)
363
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getInnerBoundaryIsTypeBinding()
364
	 */
365
	public InnerBoundaryIsTypeBinding getInnerBoundaryIsTypeBinding() {
366
		return innerBoundaryIsTypeBinding;
367
	}
361
    /*
362
     * (non-Javadoc)
363
     * @see org.gvsig.gpe.gml.profiles.IProfile#getInnerBoundaryIsTypeBinding()
364
     */
365
    public InnerBoundaryIsTypeBinding getInnerBoundaryIsTypeBinding() {
366
        return innerBoundaryIsTypeBinding;
367
    }
368 368

  
369
	/*
370
	 * (non-Javadoc)
371
	 * @see org.gvsig.gpe.gml.parser.profiles.IBindingProfile#getFeatureMembersTypeBinding()
372
	 */
373
	public FeatureMembersTypeBinding getFeatureMembersTypeBinding() {
374
		return featureMembersTypeBinding;
375
	}	
369
    /*
370
     * (non-Javadoc)
371
     * @see org.gvsig.gpe.gml.parser.profiles.IBindingProfile#getFeatureMembersTypeBinding()
372
     */
373
    public FeatureMembersTypeBinding getFeatureMembersTypeBinding() {
374
        return featureMembersTypeBinding;
375
    }   
376 376
}
377 377

  
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/profiles/GmlSFP0BindingProfile.java
71 71
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
72 72
 */
73 73
public class GmlSFP0BindingProfile extends Gml2BindingProfile{
74
	protected PosTypeIterator posTypeIterator = new PosTypeIterator();
75
	protected EnvelopeTypeBinding envelopeTypeBinding = new EnvelopeTypeBinding();
76
	protected LowerCornerTypeBinding lowerCornerTypeBinding = new LowerCornerTypeBinding();
77
	protected UpperCornerTypeBinding upperCornerTypeBinding = new UpperCornerTypeBinding();
78
	protected CurvePropertyTypeBinding curvePropertyTypeBinding = new CurvePropertyTypeBinding();
79
	protected PosListTypeIterator posListTypeIterator = new PosListTypeIterator();
80
	protected CurveTypeBinding curveTypeBinding = new CurveTypeBinding();
81
	protected MultiCurveTypeBinding multiCurveTypeBinding = new MultiCurveTypeBinding();
82
	protected SegmentsTypeBinding segmentsTypeBinding = new SegmentsTypeBinding();
83
	protected LinestringSegmentTypeBinding linestringSegmentTypeBinding = new LinestringSegmentTypeBinding();
84
	protected ExteriorTypeBinding exteriorTypeBinding = new ExteriorTypeBinding();
85
	protected InteriorTypeBinding interiorTypeBinding = new InteriorTypeBinding();
86
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.BoundedByTypeBinding boundedByTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.BoundedByTypeBinding();
87
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.GeometryBinding geometryBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.GeometryBinding();
88
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.PointTypeBinding pointTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.PointTypeBinding();
89
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.LinearRingTypeBinding linearRingTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.LinearRingTypeBinding();
90
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.LineStringTypeBinding lineStringTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.LineStringTypeBinding();
91
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.MultiPolygonTypeBinding multiPolygonTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.MultiPolygonTypeBinding();
92
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonMemberTypeBinding polygonMemberTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonMemberTypeBinding();
93
	protected org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonTypeBinding polygonTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonTypeBinding();
74
	private PosTypeIterator posTypeIterator = new PosTypeIterator();
75
	private EnvelopeTypeBinding envelopeTypeBinding = new EnvelopeTypeBinding();
76
	private LowerCornerTypeBinding lowerCornerTypeBinding = new LowerCornerTypeBinding();
77
	private UpperCornerTypeBinding upperCornerTypeBinding = new UpperCornerTypeBinding();
78
	private CurvePropertyTypeBinding curvePropertyTypeBinding = new CurvePropertyTypeBinding();
79
	private PosListTypeIterator posListTypeIterator = new PosListTypeIterator();
80
	private CurveTypeBinding curveTypeBinding = new CurveTypeBinding();
81
	private MultiCurveTypeBinding multiCurveTypeBinding = new MultiCurveTypeBinding();
82
	private SegmentsTypeBinding segmentsTypeBinding = new SegmentsTypeBinding();
83
	private LinestringSegmentTypeBinding linestringSegmentTypeBinding = new LinestringSegmentTypeBinding();
84
	private ExteriorTypeBinding exteriorTypeBinding = new ExteriorTypeBinding();
85
	private InteriorTypeBinding interiorTypeBinding = new InteriorTypeBinding();
86
	private org.gvsig.gpe.gml.parser.sfp0.geometries.BoundedByTypeBinding boundedByTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.BoundedByTypeBinding();
87
	private org.gvsig.gpe.gml.parser.sfp0.geometries.GeometryBinding geometryBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.GeometryBinding();
88
	private org.gvsig.gpe.gml.parser.sfp0.geometries.PointTypeBinding pointTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.PointTypeBinding();
89
	private org.gvsig.gpe.gml.parser.sfp0.geometries.LinearRingTypeBinding linearRingTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.LinearRingTypeBinding();
90
	private org.gvsig.gpe.gml.parser.sfp0.geometries.LineStringTypeBinding lineStringTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.LineStringTypeBinding();
91
	private org.gvsig.gpe.gml.parser.sfp0.geometries.MultiPolygonTypeBinding multiPolygonTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.MultiPolygonTypeBinding();
92
	private org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonMemberTypeBinding polygonMemberTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonMemberTypeBinding();
93
	private org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonTypeBinding polygonTypeBinding = new org.gvsig.gpe.gml.parser.sfp0.geometries.PolygonTypeBinding();
94 94
	
95 95
	
96 96
	/*
......
142 142
	}
143 143
	
144 144

  
145
	/*
146
	 * (non-Javadoc)
147
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getCurveTypeBinding()
148
	 */
149
	public CurveTypeBinding getCurveTypeBinding() {
150
		return curveTypeBinding;
151
	}
152
	
153
	/*
154
	 * (non-Javadoc)
155
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getSegmentsTypeBinding()
156
	 */
157
	public SegmentsTypeBinding getSegmentsTypeBinding() {
158
		return segmentsTypeBinding;
159
	}
160
	
161
	/*
162
	 * (non-Javadoc)
163
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryBinding()
164
	 */
165
	public GeometryBinding getGeometryBinding() {
166
		return geometryBinding;
167
	}
168
	
169
	/*
170
	 * (non-Javadoc)
171
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getBoundedByTypeBinding()
172
	 */
173
	public BoundedByTypeBinding getBoundedByTypeBinding() {
174
		return boundedByTypeBinding;
175
	}
176
	
177
	/*
178
	 * (non-Javadoc)
179
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPointTypeBinding()
180
	 */
181
	public PointTypeBinding getPointTypeBinding() {
182
		return pointTypeBinding;
183
	}
184
	
145
    /*
146
     * (non-Javadoc)
147
     * @see org.gvsig.gpe.gml.profiles.IProfile#getCurveTypeBinding()
148
     */
149
    public CurveTypeBinding getCurveTypeBinding() {
150
        return curveTypeBinding;
151
    }
152
    
153
    /*
154
     * (non-Javadoc)
155
     * @see org.gvsig.gpe.gml.profiles.IProfile#getSegmentsTypeBinding()
156
     */
157
    public SegmentsTypeBinding getSegmentsTypeBinding() {
158
        return segmentsTypeBinding;
159
    }
160
    
161
    /*
162
     * (non-Javadoc)
163
     * @see org.gvsig.gpe.gml.profiles.IProfile#getGeometryBinding()
164
     */
165
    public GeometryBinding getGeometryBinding() {
166
        return geometryBinding;
167
    }
168
    
169
    /*
170
     * (non-Javadoc)
171
     * @see org.gvsig.gpe.gml.profiles.IProfile#getBoundedByTypeBinding()
172
     */
173
    public BoundedByTypeBinding getBoundedByTypeBinding() {
174
        return boundedByTypeBinding;
175
    }
176
    
177
    /*
178
     * (non-Javadoc)
179
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPointTypeBinding()
180
     */
181
    public PointTypeBinding getPointTypeBinding() {
182
        return pointTypeBinding;
183
    }
184
    
185 185

  
186
	/*
187
	 * (non-Javadoc)
188
	 * @see org.gvsig.gpe.gml.profiles.Gml2Profile#getLinearRingTypeBinding()
189
	 */
190
	public LinearRingTypeBinding getLinearRingTypeBinding() {
191
		return linearRingTypeBinding;
192
	}
193
	
194
	/*
195
	 * (non-Javadoc)
196
	 * @see org.gvsig.gpe.gml.profiles.Gml2Profile#getLineStringTypeBinding()
197
	*/
198
	public LineStringTypeBinding getLineStringTypeBinding() {
199
		return lineStringTypeBinding;
200
	}
201
	
202
	/*
203
	 * (non-Javadoc)
204
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPolygonTypeBinding()
205
	 */
206
	public MultiPolygonTypeBinding getMultiPolygonTypeBinding() {
207
		return multiPolygonTypeBinding;
208
	}
209
	
210
	/*
211
	 * (non-Javadoc)
212
	 * @see org.gvsig.gpe.gml.profiles.Gml2Profile#getPolygonMemberTypeBinding()
213
	 */
214
	public PolygonMemberTypeBinding getPolygonMemberTypeBinding() {
215
		return polygonMemberTypeBinding;
216
	}
217
	
218
	/*
219
	 * (non-Javadoc)
220
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonTypeBinding()
221
	 */
222
	public PolygonTypeBinding getPolygonTypeBinding() {
223
		return polygonTypeBinding;
224
	}
225
	
226
	/*
227
	 * (non-Javadoc)
228
	 * @see org.gvsig.gpe.gml.profiles.DefaultProfile#getExteriorTypeBinding()
229
	 */
230
	public ExteriorTypeBinding getExteriorTypeBinding() {
231
		return exteriorTypeBinding;
232
	}
233
	
234
	/* (non-Javadoc)
235
	 * @see org.gvsig.gpe.gml.profiles.IProfile#getInteriorTypeBinding()
236
	 */
237
	public InteriorTypeBinding getInteriorTypeBinding() {
238
		return interiorTypeBinding;
239
	}
240
	
241
	/* (non-Javadoc)
242
	 * @see org.gvsig.gpe.gml.parser.profiles.DefaultBindingProfile#getMultiCurveTypeBinding()
243
	 */
244
	public MultiCurveTypeBinding getMultiCurveTypeBinding() {
245
		return multiCurveTypeBinding;
246
	}
186
    /*
187
     * (non-Javadoc)
188
     * @see org.gvsig.gpe.gml.profiles.Gml2Profile#getLinearRingTypeBinding()
189
     */
190
    public LinearRingTypeBinding getLinearRingTypeBinding() {
191
        return linearRingTypeBinding;
192
    }
193
    
194
    /*
195
     * (non-Javadoc)
196
     * @see org.gvsig.gpe.gml.profiles.Gml2Profile#getLineStringTypeBinding()
197
    */
198
    public LineStringTypeBinding getLineStringTypeBinding() {
199
        return lineStringTypeBinding;
200
    }
201
    
202
    /*
203
     * (non-Javadoc)
204
     * @see org.gvsig.gpe.gml.profiles.IProfile#getMultiPolygonTypeBinding()
205
     */
206
    public MultiPolygonTypeBinding getMultiPolygonTypeBinding() {
207
        return multiPolygonTypeBinding;
208
    }
209
    
210
    /*
211
     * (non-Javadoc)
212
     * @see org.gvsig.gpe.gml.profiles.Gml2Profile#getPolygonMemberTypeBinding()
213
     */
214
    public PolygonMemberTypeBinding getPolygonMemberTypeBinding() {
215
        return polygonMemberTypeBinding;
216
    }
217
    
218
    /*
219
     * (non-Javadoc)
220
     * @see org.gvsig.gpe.gml.profiles.IProfile#getPolygonTypeBinding()
221
     */
222
    public PolygonTypeBinding getPolygonTypeBinding() {
223
        return polygonTypeBinding;
224
    }
225
    
226
    /*
227
     * (non-Javadoc)
228
     * @see org.gvsig.gpe.gml.profiles.DefaultProfile#getExteriorTypeBinding()
229
     */
230
    public ExteriorTypeBinding getExteriorTypeBinding() {
231
        return exteriorTypeBinding;
232
    }
233
    
234
    /* (non-Javadoc)
235
     * @see org.gvsig.gpe.gml.profiles.IProfile#getInteriorTypeBinding()
236
     */
237
    public InteriorTypeBinding getInteriorTypeBinding() {
238
        return interiorTypeBinding;
239
    }
240
    
241
    /* (non-Javadoc)
242
     * @see org.gvsig.gpe.gml.parser.profiles.DefaultBindingProfile#getMultiCurveTypeBinding()
243
     */
244
    public MultiCurveTypeBinding getMultiCurveTypeBinding() {
245
        return multiCurveTypeBinding;
246
    }
247 247
}
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/features/FeatureMemberTypeBinding.java
6 6

  
7 7
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser;
8 8
import org.gvsig.gpe.gml.utils.GMLTags;
9
import org.gvsig.gpe.xml.stream.EventType;
9 10
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
10 11
import org.gvsig.gpe.xml.stream.XmlStreamException;
11 12
import org.gvsig.gpe.xml.utils.CompareUtils;
......
102 103
	 * @throws IOException
103 104
	 */
104 105
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException {
106

  
107
        parser.require(EventType.START_ELEMENT, GMLTags.GML_FEATUREMEMBER);
108
        
105 109
		boolean endFeature = false;
106
		int currentTag;		
110
		EventType currentTag;		
107 111
		Object feature = null;	
108 112
				
109
		QName tag = parser.getName();
113
		QName tag = parser.getElementName();
110 114
		currentTag = parser.getEventType();
111 115

  
112 116
		while (!endFeature){
113
			switch(currentTag){
114
			case IXmlStreamReader.START_ELEMENT:
117
			switch(currentTag.getCode()){
118
			case EventType.START_ELEMENT_CODE:
115 119
				if (!CompareUtils.compareWithNamespace(tag, GMLTags.GML_FEATUREMEMBER)){
116 120
					feature = handler.getProfile().getFeatureTypeBinding().parse(parser, handler);
117 121
				}	
118 122
				break;
119
			case IXmlStreamReader.END_ELEMENT:
123
			case EventType.END_ELEMENT_CODE:
120 124
				if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_FEATUREMEMBER)){						
121 125
					endFeature = true;					
122 126
				}
123 127
				break;
124
			case IXmlStreamReader.CHARACTERS:					
125

  
126
				break;
127 128
			}
128 129
			if (!endFeature){					
129 130
				currentTag = parser.next();
130
				tag = parser.getName();
131
				tag = parser.getElementName();
131 132
			}
132 133
		}			
133 134

  
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/features/FeatureCollectionBinding.java
1 1
package org.gvsig.gpe.gml.parser.v2.features;
2 2

  
3 3
import java.io.IOException;
4
import java.util.Map;
5 4

  
6 5
import javax.xml.namespace.QName;
7 6

  
8 7
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser;
8
import org.gvsig.gpe.gml.parser.profiles.IBindingProfile;
9 9
import org.gvsig.gpe.gml.utils.GMLObject;
10 10
import org.gvsig.gpe.gml.utils.GMLTags;
11
import org.gvsig.gpe.gml.utils.GMLUtilsParser;
11
import org.gvsig.gpe.parser.IGPEContentHandler;
12
import org.gvsig.gpe.xml.stream.EventType;
12 13
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
13 14
import org.gvsig.gpe.xml.stream.XmlStreamException;
14 15
import org.gvsig.gpe.xml.utils.CompareUtils;
......
67 68
 *
68 69
 */
69 70
/**
70
 * This class parses the gml objects that has a 
71
 * gml:FeatureCollection type. Example:
71
 * This class parses the gml objects that has a gml:FeatureCollection type. Example:
72 72
 * <p>
73
 * 
73 74
 * <pre>
74
 * <code>
75
 * &lt;code&gt;
75 76
 * &lt;gml:featureCollection&gt;
76 77
 * &lt;gml:featureMember&gt; 
77 78
 * &lt;/gml:featureMember&gt;
78 79
 * &lt;gml:featureMember&gt; 
79 80
 * &lt;/gml:featureMember&gt;
80 81
 * &lt;/gml:featureCollection&gt;
81
 * </code>
82
 * &lt;/code&gt;
82 83
 * </pre>
84
 * 
83 85
 * </p>
86
 * 
84 87
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
85 88
 */
86 89
public class FeatureCollectionBinding {
87
	/**
88
	 * It parses a feature collection
89
	 * @param parser
90
	 * The XML parser
91
	 * @param handler
92
	 * The GPE parser that contains the content handler and
93
	 * the error handler
94
	 * @return
95
	 * A feature
96
	 * @throws XmlStreamException
97
	 * @throws IOException
98
	 */
99
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException {
100
		boolean endCollection = false;
101
		int currentTag;		
102
		Object layer = null;	
103
		//Used to finish to parse the current feature collection
104
		while(parser.getEventType()!= IXmlStreamReader.START_ELEMENT){
105
			parser.next();			
106
		}
107
		QName layerRootType = parser.getName();		
108
		
109
		XMLAttributesIterator attributesIterator = new XMLAttributesIterator(parser);		
110
		String fid = handler.getProfile().getFeatureTypeBinding().getID(attributesIterator.getAttributes());
90
    /**
91
     * It parses a feature collection
92
     * 
93
     * @param parser
94
     *            The XML parser
95
     * @param handler
96
     *            The GPE parser that contains the content handler and the error handler
97
     * @return A feature
98
     * @throws XmlStreamException
99
     * @throws IOException
100
     */
101
    public Object parse(IXmlStreamReader parser, GPEDefaultGmlParser handler)
102
            throws XmlStreamException, IOException {
111 103

  
112
		layer = handler.getContentHandler().startLayer(fid, parser.getName().getNamespaceURI(), null, null, null, attributesIterator, null, null);
104
        if(!parser.getEventType().isTag()){
105
            parser.nextTag();
106
        }
107
        
108
        boolean endCollection = false;
109
        EventType currentTag;
110
        Object layer = null;
113 111

  
114
		QName tag = parser.getName();
115
		currentTag = parser.getEventType();
112
        final QName layerRootType = parser.getElementName();
116 113

  
117
		while (!endCollection){
118
			switch(currentTag){
119
			case IXmlStreamReader.START_ELEMENT:
120
				if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_NAME)){
121
					parser.next();
122
					handler.getContentHandler().addNameToLayer(parser.getText(), layer);
123
				}else if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_DESCRIPTION)){
124
					parser.next();
125
					handler.getContentHandler().addDescriptionToLayer(parser.getText(), layer);
126
				}else if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_BOUNDEDBY)){
127
					Object bbox = handler.getProfile().getBoundedByTypeBinding().
128
							parse(parser, handler);
129
					handler.getContentHandler().addBboxToLayer(bbox, layer);
130
				}else if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_FEATUREMEMBER)){
131
					GMLObject object = (GMLObject)handler.getProfile().getFeatureMemberTypeBinding().
132
							parse(parser, handler);
133
				
134
					if (object != null){
135
						if (GMLObject.FEATURE == object.getType()){
136
							handler.getContentHandler().addFeatureToLayer(object.getObject(), layer);
137
						}else{
138
							handler.getContentHandler().addParentLayerToLayer(layer, object.getObject());
139
						}
140
					}
141
				}else if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_FEATUREMEMBERS)){
142
					handler.getProfile().getFeatureMembersTypeBinding().
143
					parse(parser, handler, layer);
144
				}else{
145
					if (!(CompareUtils.compareWithNamespace(layerRootType,tag))){						
146
						//Feature members
147
						GMLObject object =(GMLObject)handler.getProfile().getFeatureTypeBinding().parse(parser, handler);
148
						handler.getContentHandler().addFeatureToLayer(object.getObject(), layer);
149
					}
150
				}
151
				break;
152
			case IXmlStreamReader.END_ELEMENT:
153
				if (CompareUtils.compareWithNamespace(tag,layerRootType)){						
154
					endCollection = true;
155
					handler.getContentHandler().endLayer(layer);
156
				}
157
				break;
158
			case IXmlStreamReader.CHARACTERS:					
114
        XMLAttributesIterator attributesIterator = new XMLAttributesIterator(parser);
115
        final IBindingProfile profile = handler.getProfile();
116
        String fid = profile.getFeatureTypeBinding().getID(
117
                attributesIterator.getAttributes());
159 118

  
160
				break;
161
			case IXmlStreamReader.END_DOCUMENT:
162
				endCollection = true;
163
				break;
164
			}
165
			if (!endCollection){					
166
				currentTag = parser.next();
167
				tag = parser.getName();
168
			}
169
		}			
170
		return layer;	
171
	}
119
        final IGPEContentHandler contentHandler = handler.getContentHandler();
120
        layer = contentHandler.startLayer(fid, layerRootType.getNamespaceURI(),
121
                null, null, null, attributesIterator, null, null);
122

  
123
        QName tag = parser.getElementName();
124
        currentTag = parser.getEventType();
125

  
126
        while (!endCollection) {
127
            switch (currentTag.getCode()) {
128
            case EventType.START_ELEMENT_CODE:
129
                if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_NAME)) {
130
                    parser.next();
131
                    contentHandler.addNameToLayer(parser.getText(), layer);
132
                } else if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_DESCRIPTION)) {
133
                    parser.next();
134
                    contentHandler.addDescriptionToLayer(parser.getText(), layer);
135
                } else if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_BOUNDEDBY)) {
136
                    Object bbox = profile.getBoundedByTypeBinding().parse(parser,
137
                            handler);
138
                    contentHandler.addBboxToLayer(bbox, layer);
139
                } else if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_FEATUREMEMBER)) {
140
                    GMLObject object = (GMLObject) profile
141
                            .getFeatureMemberTypeBinding().parse(parser, handler);
142

  
143
                    if (object != null) {
144
                        if (GMLObject.FEATURE == object.getType()) {
145
                            contentHandler
146
                                    .addFeatureToLayer(object.getObject(), layer);
147
                        } else {
148
                            contentHandler.addParentLayerToLayer(layer,
149
                                    object.getObject());
150
                        }
151
                    }
152
                } else if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_FEATUREMEMBERS)) {
153
                    profile.getFeatureMembersTypeBinding().parse(parser, handler,
154
                            layer);
155
                } else {
156
                    if (!(CompareUtils.compareWithNamespace(layerRootType, tag))) {
157
                        // Feature members
158
                        GMLObject object = (GMLObject) profile.getFeatureTypeBinding()
159
                                .parse(parser, handler);
160
                        contentHandler.addFeatureToLayer(object.getObject(), layer);
161
                    }
162
                }
163
                break;
164
            case EventType.END_ELEMENT_CODE:
165
                if (CompareUtils.compareWithNamespace(tag, layerRootType)) {
166
                    endCollection = true;
167
                    contentHandler.endLayer(layer);
168
                }
169
                break;
170
            case EventType.END_DOCUMENT_CODE:
171
                endCollection = true;
172
                break;
173
            }
174
            if (!endCollection) {
175
                currentTag = parser.nextTag();
176
                tag = parser.getElementName();
177
            }
178
        }
179
        return layer;
180
    }
172 181
}
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/features/FeatureMembersTypeBinding.java
34 34
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser;
35 35
import org.gvsig.gpe.gml.utils.GMLObject;
36 36
import org.gvsig.gpe.gml.utils.GMLTags;
37
import org.gvsig.gpe.xml.stream.EventType;
37 38
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
38 39
import org.gvsig.gpe.xml.stream.XmlStreamException;
39 40
import org.gvsig.gpe.xml.utils.CompareUtils;
......
53 54
	 * @throws IOException
54 55
	 */
55 56
	public void parse(IXmlStreamReader parser,GPEDefaultGmlParser handler, Object layer) throws XmlStreamException, IOException {
57

  
58
        parser.require(EventType.START_ELEMENT, GMLTags.GML_FEATUREMEMBERS);
59
        
56 60
		boolean endFeatureMembers = false;
57
		int currentTag;		
61
		EventType currentTag;		
58 62
						
59
		QName tag = parser.getName();
63
		QName tag = parser.getElementName();
60 64
		currentTag = parser.getEventType();
61 65

  
62 66
		while (!endFeatureMembers){
63
			switch(currentTag){
64
			case IXmlStreamReader.START_ELEMENT:
67
			switch(currentTag.getCode()){
68
			case EventType.START_ELEMENT_CODE:
65 69
				if (!CompareUtils.compareWithNamespace(tag, GMLTags.GML_FEATUREMEMBERS)){
66 70
					GMLObject object = (GMLObject)handler.getProfile().getFeatureTypeBinding().parse(parser, handler);
67 71
					if (object != null){
......
69 73
					}
70 74
				}	
71 75
				break;
72
			case IXmlStreamReader.END_ELEMENT:
76
			case EventType.END_ELEMENT_CODE:
73 77
				if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_FEATUREMEMBERS)){						
74 78
					endFeatureMembers = true;					
75 79
				}
76 80
				break;
77
			case IXmlStreamReader.CHARACTERS:					
78

  
79
				break;
80 81
			}
81 82
			if (!endFeatureMembers){					
82
				currentTag = parser.next();
83
				tag = parser.getName();
83
				currentTag = parser.nextTag();
84
				tag = parser.getElementName();
84 85
			}
85 86
		}				
86 87
	}
branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/features/ElementTypeBinding.java
5 5
import javax.xml.namespace.QName;
6 6

  
7 7
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser;
8
import org.gvsig.gpe.gml.parser.profiles.IBindingProfile;
8 9
import org.gvsig.gpe.gml.utils.GMLGeometries;
10
import org.gvsig.gpe.gml.utils.GMLTags;
9 11
import org.gvsig.gpe.gml.utils.GMLUtilsParser;
12
import org.gvsig.gpe.parser.IGPEContentHandler;
13
import org.gvsig.gpe.xml.stream.EventType;
10 14
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
11 15
import org.gvsig.gpe.xml.stream.XmlStreamException;
12 16
import org.gvsig.gpe.xml.utils.CompareUtils;
......
109 113
	 * @throws IOException
110 114
	 */
111 115
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler, Object feature, Object parentElement, IXSElementDeclaration parentType) throws XmlStreamException, IOException {
116

  
117
        parser.require(EventType.START_ELEMENT, null, null);
118
        
112 119
		boolean endFeature = false;
113 120
		boolean isGeometryTag = false;
114
		int currentTag;		
121
		EventType currentEvent;		
115 122
		Object element = null;	
116 123
		Object value = null;
117 124
		Object geometry = null;
118 125
		boolean isInitialized = false;
119 126
		//Used to finish to parse the current element
120
		QName elementRootType = parser.getName();
127
		final QName elementRootType = parser.getElementName();
121 128
		String type = null;	
122 129
		
123 130
		XMLAttributesIterator attributesIterator = new XMLAttributesIterator(parser);
......
135 142
			type = TypeUtils.getXSType(String.class);
136 143
		}
137 144
		
138
		QName tag = parser.getName();
139
		currentTag = parser.getEventType();
145
		QName tag = parser.getElementName();
146
		currentEvent = parser.getEventType();
140 147

  
148
        final IGPEContentHandler contentHandler = handler.getContentHandler();
149
        final IBindingProfile profile = handler.getProfile();
150
        final String namespaceURI = elementRootType.getNamespaceURI();
151
        final String localName = GMLUtilsParser.removeBlancSymbol(elementRootType.getLocalPart());
141 152
		while (!endFeature){
142
			switch(currentTag){
143
			case IXmlStreamReader.START_ELEMENT:
153
            switch(currentEvent.getCode()){
154
			case EventType.START_ELEMENT_CODE:
144 155
				if (!(CompareUtils.compareWithNamespace(tag,elementRootType))){
145 156
					//If is a geometry
146
					if (GMLGeometries.isGML(tag)){
147
						geometry = handler.getProfile().getGeometryBinding().
148
								parse(parser, handler);
149
						handler.getContentHandler().addGeometryToFeature(geometry, feature);
150
						if (geometry==null){
151
							System.out.println("\t\t\tGEOMETRIA VACIA");
152
							//Warning geometria vacia
153
						}
154
						isGeometryTag=true;
157
                    if (GMLGeometries.isGML(tag)){
158
                        geometry = profile.getGeometryBinding().parse(parser, handler);
159
                        contentHandler.addGeometryToFeature(geometry, feature);
160
                        if (geometry == null) {
161
                            System.out.println("\t\t\tGEOMETRIA VACIA");
162
                            // Warning geometria vacia
163
                        }
164
                        isGeometryTag = true;
155 165
					}else {
156 166
						//If is not a geometry could be a complex feature
157 167
						if (!isInitialized){
158
							element = handler.getContentHandler().startElement(elementRootType.getNamespaceURI(),
159
									GMLUtilsParser.removeBlancSymbol(elementRootType.getLocalPart()),
160
									null,
161
									attributesIterator,
162
									parentElement);
163
							isInitialized = true;
168
                            element = contentHandler.startElement(namespaceURI, localName, null,
169
                                    attributesIterator, parentElement);
170
                            isInitialized = true;
164 171
						}
165
						handler.getProfile().getElementTypeBinding().
166
							parse(parser, handler, feature, element, null);
172
                        final ElementTypeBinding elementTypeBinding = profile
173
                                .getElementTypeBinding();
174
                        elementTypeBinding.parse(parser, handler, feature, element, null);
167 175
					}				
168 176
				}
169 177
				break;
170
			case IXmlStreamReader.END_ELEMENT:
178
			case EventType.END_ELEMENT_CODE:
171 179
				if (CompareUtils.compareWithNamespace(tag,elementRootType)){						
172 180
					endFeature = true;
173 181
					//If not is complex the element has not been created yet
174 182
					if (!isInitialized){
175
						element = handler.getContentHandler().startElement(
176
								elementRootType.getNamespaceURI(),
177
								GMLUtilsParser.removeBlancSymbol(elementRootType.getLocalPart()), 
178
								value,	
179
								attributesIterator,
180
								parentElement);
183
                        element = contentHandler.startElement(namespaceURI, localName, value,
184
                                attributesIterator, parentElement);
181 185
						isInitialized = true;
182 186
					}
183
					handler.getContentHandler().endElement(element);
187
					contentHandler.endElement(element);
184 188
				}
185 189
				break;
186
			case IXmlStreamReader.CHARACTERS:					
187
				if (geometry == null){
188
					value = TypeUtils.getValue(elementType, parser.getText());
189
				}
190
			default:
191
                if (currentEvent.isValue()) {
192
                    if (geometry == null) {
193
                        switch (currentEvent.getCode()) {
194
                        case EventType.VALUE_BOOL_CODE:
195
                            value = Boolean.valueOf(parser.getBooleanValue());
196
                            break;
197
                        case EventType.VALUE_BYTE_CODE:
198
                            value = new Integer(parser.getByteValue());
199
                            break;
200
                        case EventType.VALUE_DOUBLE_CODE:
201
                            value = new Double(parser.getDoubleValue());
202
                            break;
203
                        case EventType.VALUE_FLOAT_CODE:
204
                            value = new Float(parser.getFloatValue());
205
                            break;
206
                        case EventType.VALUE_INT_CODE:
207
                            value = new Integer(parser.getIntValue());
208
                            break;
209
                        case EventType.VALUE_LONG_CODE:
210
                            value = new Long(parser.getLongValue());
211
                            break;
212
                        default:
213
                            value = TypeUtils.getValue(elementType, parser.getText());
214
                            break;
215
                        }
216
                    }
217
                }
190 218
				break;
191 219
			}
192 220
			if (!endFeature){					
193
				currentTag = parser.next();
194
				tag = parser.getName();
221
				currentEvent = parser.next();
222
				if(currentEvent.isTag()){
223
				    tag = parser.getElementName();
224
				}
195 225
			}
196
		}			
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff