Revision 492 org.gvsig.gpe/library/trunk/org.gvsig.gpe/org.gvsig.gpe.prov/org.gvsig.gpe.prov.gml/src/main/java/org/gvsig/gpe/prov/gml/parser/v2/geometries/MultiGeometryTypeBinding.java

View differences:

MultiGeometryTypeBinding.java
73 73
 * It parses a gml:MultiGeometryType object. Example:
74 74
 * <p>
75 75
 * <pre>
76
 * <code> 
76
 * <code>
77 77
 * &lt;MultiGeometry gid="c731" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"&gt;
78 78
 * &lt;geometryMember&gt;
79 79
 * &lt;Point gid="P6776"&gt;
......
99 99
 * &lt;/MultiGeometry&gt;
100 100
 * </code>
101 101
 * </pre>
102
 * </p> 
102
 * </p>
103 103
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
104 104
 */
105 105
public class MultiGeometryTypeBinding extends GeometryBinding{
106
	
106

  
107 107
	/**
108 108
	 * It parses the gml:MultiGeometry tag
109 109
	 * @param parser
......
119 119
	public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException {
120 120
		boolean endFeature = false;
121 121
		int currentTag;
122
		Object multiGeometry = null;		
123
		
122
		Object multiGeometry = null;
123

  
124 124
		super.setAtributtes(parser, handler);
125
		
126
		multiGeometry = handler.getContentHandler().startMultiGeometry(id, srsName);
127
		
125

  
126
		//multiGeometry = handler.getContentHandler().startMultiGeometry(id, srsName);
127

  
128 128
		IQName tag = parser.getName();
129 129
		currentTag = parser.getEventType();
130 130

  
......
134 134
					if (handler.getQNameComparator().equals(tag,GmlTags.GML_GEOMETRYMEMBER)){
135 135
						Object geometry = handler.getProfile().getGeometryMemberTypeBinding().
136 136
						parse(parser, handler);
137
						if (multiGeometry ==null){
138
    						if (geometry instanceof PolygonTypeBinding){
139
    						    multiGeometry = handler.getContentHandler().startMultiPolygon(id, srsName);
140
    						} else if (geometry instanceof LineStringTypeBinding){
141
                                multiGeometry = handler.getContentHandler().startMultiLineString(id, srsName);
142
                            } else if (geometry instanceof PointTypeBinding){
143
                                multiGeometry = handler.getContentHandler().startMultiPoint(id, srsName);
144
                            }else{
145
                                multiGeometry = handler.getContentHandler().startMultiGeometry(id, srsName);
146
                            }
147
						}
137 148
						handler.getContentHandler().addGeometryToMultiGeometry(geometry, multiGeometry);
138 149
					}
139 150
					break;
140 151
				case IXmlStreamReader.END_ELEMENT:
141
					if (handler.getQNameComparator().equals(tag,GmlTags.GML_MULTIGEOMETRY)){						
142
						endFeature = true;	
152
					if (handler.getQNameComparator().equals(tag,GmlTags.GML_MULTIGEOMETRY)){
153
						endFeature = true;
143 154
						multiGeometry = handler.getContentHandler().endMultiGeometry(multiGeometry);
144 155
					}
145 156
					break;
146
				case IXmlStreamReader.CHARACTERS:					
147
					
157
				case IXmlStreamReader.CHARACTERS:
158

  
148 159
					break;
149 160
				}
150
				if (!endFeature){					
161
				if (!endFeature){
151 162
					currentTag = parser.next();
152 163
					tag = parser.getName();
153 164
				}
154
			}			
155
		return multiGeometry;	
165
			}
166
		return multiGeometry;
156 167
	}
157 168
}

Also available in: Unified diff