Revision 53 branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/geometries/MultiGeometryTypeBinding.java

View differences:

MultiGeometryTypeBinding.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;
......
119 120
	 * @throws IOException
120 121
	 */
121 122
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException {
122
		boolean endFeature = false;
123
		int currentTag;
123

  
124
        parser.require(EventType.START_ELEMENT, GMLTags.GML_MULTIGEOMETRY);
125

  
126
        boolean endFeature = false;
127
		EventType currentTag;
124 128
		Object multiGeometry = null;		
125 129
		
126 130
		super.setAtributtes(parser, handler.getErrorHandler());
127 131
		
128 132
		multiGeometry = handler.getContentHandler().startMultiGeometry(id, srsName);
129 133
		
130
		QName tag = parser.getName();
134
		QName tag = parser.getElementName();
131 135
		currentTag = parser.getEventType();
132 136

  
133 137
		while (!endFeature){
134
			switch(currentTag){
135
			case IXmlStreamReader.START_ELEMENT:
138
			switch(currentTag.getCode()){
139
			case EventType.START_ELEMENT_CODE:
136 140
					if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_GEOMETRYMEMBER)){
137 141
						Object geometry = handler.getProfile().getGeometryMemberTypeBinding().
138 142
						parse(parser, handler);
139 143
						handler.getContentHandler().addGeometryToMultiGeometry(geometry, multiGeometry);
140 144
					}
141 145
					break;
142
				case IXmlStreamReader.END_ELEMENT:
146
				case EventType.END_ELEMENT_CODE:
143 147
					if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_MULTIGEOMETRY)){						
144 148
						endFeature = true;	
145 149
						handler.getContentHandler().endMultiGeometry(multiGeometry);
146 150
					}
147 151
					break;
148
				case IXmlStreamReader.CHARACTERS:					
149
					
150
					break;
151 152
				}
152 153
				if (!endFeature){					
153 154
					currentTag = parser.next();
154
					tag = parser.getName();
155
					tag = parser.getElementName();
155 156
				}
156 157
			}			
157 158
		return multiGeometry;	

Also available in: Unified diff