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

View differences:

BoundedByTypeBinding.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;
......
93 94
	 * @throws IOException
94 95
	 */
95 96
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException {
97

  
98
        parser.require(EventType.START_ELEMENT, GMLTags.GML_BOUNDEDBY);
99
        
96 100
		boolean endFeature = false;
97
		int currentTag;
101
		EventType currentTag;
98 102
		Object bbox = null;		
99
		
100
		QName tag = parser.getName();
103

  
104
		parser.nextTag();
105

  
106
		QName tag = parser.getElementName();
101 107
		currentTag = parser.getEventType();
102 108

  
103
		while (!endFeature){
104
			switch(currentTag){
105
			case IXmlStreamReader.START_ELEMENT:
106
					bbox = parseTag(parser, handler, tag);
107
					break;
108
				case IXmlStreamReader.END_ELEMENT:
109
					if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_BOUNDEDBY)){						
110
						endFeature = true;						
111
					}
112
					break;
113
				case IXmlStreamReader.CHARACTERS:			
114
					
115
					break;
116
				}
117
				if (!endFeature){					
118
					currentTag = parser.next();
119
					tag = parser.getName();
120
				}
121
			}			
109
        while (!endFeature) {
110
            switch (currentTag.getCode()) {
111
            case EventType.START_ELEMENT_CODE:
112
                bbox = parseTag(parser, handler, tag);
113
                parser.require(EventType.END_ELEMENT, tag);
114
                break;
115
            case EventType.END_ELEMENT_CODE:
116
                if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_BOUNDEDBY)) {
117
                    endFeature = true;
118
                }
119
                break;
120
            }
121
            if (!endFeature) {
122
                currentTag = parser.nextTag();
123
                tag = parser.getElementName();
124
            }
125
        }
126
        parser.require(EventType.END_ELEMENT, GMLTags.GML_BOUNDEDBY);
122 127
		return bbox;	
123 128
	}
124 129
	

Also available in: Unified diff