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

View differences:

PolygonMemberTypeBinding.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;
......
96 97
	 * @throws IOException
97 98
	 */
98 99
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException {
99
		boolean endFeature = false;
100
		int currentTag;
100
	    
101
	    parser.require(EventType.START_ELEMENT, GMLTags.GML_NAMESPACE_URI, null);
102

  
103
	    QName tag = parser.getElementName();
104
        
105
	    if (!(GMLTags.GML_POLYGONMEMBER.getLocalPart().equals(tag.getLocalPart()) || GMLTags.GML_SURFACEMEMBER
106
                .getLocalPart().equals(tag.getLocalPart()))) {
107
            throw new IllegalStateException(
108
                    "Expected gml:PolygonMember or gml:SurfaceMember, but got " + tag);
109
        }
110
		
111
	    boolean endFeature = false;
112
		EventType currentTag;
101 113
		Object polygon = null;		
102 114
		
103
		QName tag = parser.getName();
104 115
		currentTag = parser.getEventType();
105 116

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

Also available in: Unified diff