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

View differences:

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
	}

Also available in: Unified diff