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

View differences:

BoxTypeBinding.java
8 8
import org.gvsig.gpe.gml.parser.v2.coordinates.CoordTypeIterator;
9 9
import org.gvsig.gpe.gml.parser.v2.coordinates.CoordinatesTypeIterator;
10 10
import org.gvsig.gpe.gml.utils.GMLTags;
11
import org.gvsig.gpe.xml.stream.EventType;
11 12
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
12 13
import org.gvsig.gpe.xml.stream.XmlStreamException;
13 14
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_BOX);
108
        
105 109
		boolean endFeature = false;
106
		int currentTag;
110
		EventType currentTag;
107 111
		Object bbox = null;		
108 112

  
109 113
		super.setAtributtes(parser, handler.getErrorHandler());
110 114

  
111
		QName tag = parser.getName();
115
		QName tag = parser.getElementName();
112 116
		currentTag = parser.getEventType();
113 117

  
114 118
		while (!endFeature){
115
			switch(currentTag){
116
			case IXmlStreamReader.START_ELEMENT:
119
			switch(currentTag.getCode()){
120
			case EventType.START_ELEMENT_CODE:
117 121
				if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_COORDINATES)){
118 122
					CoordinatesTypeIterator coordinatesIterator = handler.getProfile().getCoordinatesTypeBinding();
119 123
					coordinatesIterator.initialize(parser, handler,GMLTags.GML_BOX);
120 124
					bbox = handler.getContentHandler().startBbox(id,
121 125
							coordinatesIterator,
122 126
							srsName);
123
					//The parser pointer is in the </gml:Box> tag
124
				 	return bbox;
125 127
				}else if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_COORD)){
126 128
					CoordTypeIterator coordinatesIterator = handler.getProfile().getCoordTypeBinding();
127 129
					coordinatesIterator.initialize(parser, handler,GMLTags.GML_BOX);
128 130
					bbox = handler.getContentHandler().startBbox(id,
129 131
							coordinatesIterator,								
130 132
							srsName);
131
					//The parser pointer is in the </gml:Box> tag
132
				 	return bbox;
133 133
				}
134 134
				break;
135
			case IXmlStreamReader.END_ELEMENT:
135
			case EventType.END_ELEMENT_CODE:
136 136
				if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_BOX)){						
137 137
					endFeature = true;
138 138
					handler.getContentHandler().endBbox(bbox);
139 139
				}
140 140
				break;
141
			case IXmlStreamReader.CHARACTERS:					
142

  
143
				break;
144 141
			}		
145 142
			if (!endFeature){					
146
				currentTag = parser.next();
147
				tag = parser.getName();
143
				currentTag = parser.nextTag();
144
				tag = parser.getElementName();
148 145
			}
149 146
		}			
150 147
		return bbox;	

Also available in: Unified diff