/** * It parses the gml:MultiPolygon tag * * @param parser The XML parser * @param handler The GPE parser that contains the content handler and the error handler * @return A multipolygon * @throws XmlStreamException * @throws IOException */ public Object parse(IXmlStreamReader parser, GPEDefaultGmlParser handler) throws XmlStreamException, IOException { boolean endFeature = false; int currentTag; Object multiPolygon = null; super.setAtributtes(parser, handler.getErrorHandler()); multiPolygon = handler.getContentHandler().startMultiPolygon(id, srsName); QName tag = parser.getName(); currentTag = parser.getEventType(); while (!endFeature) { switch (currentTag) { case IXmlStreamReader.START_ELEMENT: parseTag(parser, handler, tag, id, multiPolygon, srsName); break; case IXmlStreamReader.END_ELEMENT: endFeature = parseLastTag(parser, handler, tag); if (endFeature) { handler.getContentHandler().endMultiPolygon(multiPolygon); } break; case IXmlStreamReader.CHARACTERS: break; } if (!endFeature) { currentTag = parser.next(); tag = parser.getName(); } } return multiPolygon; }
/** * It parses the gml:LinearRing tag and return the Object * * @param parser The XML parser * @param handler The GPE parser that contains the content handler and the error handler * @return A linear ring * @throws XmlStreamException * @throws IOException */ public Object parse(IXmlStreamReader parser, GPEDefaultGmlParser handler) throws XmlStreamException, IOException { Object linearRing = null; super.setAtributtes(parser, handler.getErrorHandler()); ICoordinateIterator coordinatesIteartor = parseCoordinates(parser, handler); linearRing = handler.getContentHandler().startLinearRing(id, coordinatesIteartor, srsName); handler.getContentHandler().endLinearRing(linearRing); return linearRing; }
/** * It parses the gml:MultiPoint tag * * @param parser The XML parser * @param handler The GPE parser that contains the content handler and the error handler * @return A multipoint * @throws XmlStreamException * @throws IOException */ public Object parse(IXmlStreamReader parser, GPEDefaultGmlParser handler) throws XmlStreamException, IOException { boolean endFeature = false; int currentTag; Object multiPoint = null; super.setAtributtes(parser, handler.getErrorHandler()); multiPoint = handler.getContentHandler().startMultiPoint(id, srsName); QName tag = parser.getName(); currentTag = parser.getEventType(); while (!endFeature) { switch (currentTag) { case IXmlStreamReader.START_ELEMENT: if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_POINTMEMBER)) { Object point = handler.getProfile().getPointMemberTypeBinding().parse(parser, handler); handler.getContentHandler().addPointToMultiPoint(point, multiPoint); } break; case IXmlStreamReader.END_ELEMENT: if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_MULTIPOINT)) { endFeature = true; handler.getContentHandler().endMultiPoint(multiPoint); } break; case IXmlStreamReader.CHARACTERS: break; } if (!endFeature) { currentTag = parser.next(); tag = parser.getName(); } } return multiPoint; }
/** * It parses the gml:multiPointProperty tag * * @param parser The XML parser * @param handler The GPE parser that contains the content handler and the error handler * @return A multipoint * @throws XmlStreamException * @throws IOException */ public Object parse(IXmlStreamReader parser, GPEDefaultGmlParser handler) throws XmlStreamException, IOException { boolean endFeature = false; int currentTag; Object multiPoint = null; super.setAtributtes(parser, handler.getErrorHandler()); QName tag = parser.getName(); currentTag = parser.getEventType(); while (!endFeature) { switch (currentTag) { case IXmlStreamReader.START_ELEMENT: if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_MULTIPOINT)) { multiPoint = handler.getProfile().getMultiPointTypeBinding().parse(parser, handler); } break; case IXmlStreamReader.END_ELEMENT: if ((CompareUtils.compareWithNamespace(tag, GMLTags.GML_MULTIPOINTPROPERTY)) || (CompareUtils.compareWithNamespace(tag, GMLTags.GML_MULTILOCATION)) || (CompareUtils.compareWithNamespace(tag, GMLTags.GML_MULTICENTEROF)) || (CompareUtils.compareWithNamespace(tag, GMLTags.GML_MULTIPOSITION))) { endFeature = true; } break; case IXmlStreamReader.CHARACTERS: break; } if (!endFeature) { currentTag = parser.next(); tag = parser.getName(); } } return multiPoint; }