AppSchemaGeometryHierarchy( AppSchema appSchema, GMLVersion gmlVersion ) { QName elName = new QName( gmlVersion.getNamespace(), "Point" ); pointElements = getConcreteSubstitutions( appSchema, elName ); elName = getAbstractElementName( "Curve", gmlVersion ); abstractCurveElements = getConcreteSubstitutions( appSchema, elName ); elName = new QName( gmlVersion.getNamespace(), "Curve" ); curveElements = getConcreteSubstitutions( appSchema, elName ); elName = new QName( gmlVersion.getNamespace(), "LineString" ); lineStringElements = getConcreteSubstitutions( appSchema, elName ); elName = new QName( gmlVersion.getNamespace(), "CompositeCurve" ); compositeCurveElements = getConcreteSubstitutions( appSchema, elName ); elName = new QName( gmlVersion.getNamespace(), "OrientableCurve" ); orientableCurveElements = getConcreteSubstitutions( appSchema, elName ); elName = getAbstractElementName( "Ring", gmlVersion ); ringElements = getConcreteSubstitutions( appSchema, elName ); elName = getAbstractElementName( "Surface", gmlVersion ); abstractSurfaceElements = getConcreteSubstitutions( appSchema, elName ); elName = new QName( gmlVersion.getNamespace(), "Surface" ); surfaceElements = getConcreteSubstitutions( appSchema, elName ); elName = new QName( gmlVersion.getNamespace(), "CompositeSurface" ); compositeSurfaceElements = getConcreteSubstitutions( appSchema, elName ); elName = getAbstractElementName( "Solid", gmlVersion ); solidElements = getConcreteSubstitutions( appSchema, elName ); elName = getAbstractElementName( "GeometricPrimitive", gmlVersion ); primitiveElements = getConcreteSubstitutions( appSchema, elName ); }
AppSchemaGeometryHierarchy geometryHierarchy = getGeometryHierarchy(); if ( geometryHierarchy != null ) { if ( !geometryHierarchy.getAbstractCurveSubstitutions().contains( elName ) ) { String msg = "Invalid curve geometry element. '" + xmlStream.getName() + "' is not defined in the active application schema."; throw new XMLParsingException( xmlStream, msg ); if ( geometryHierarchy.getCurveSubstitutions().contains( elName ) ) { curve = parseCurve( xmlStream, defaultCRS ); } else if ( geometryHierarchy.getLineStringSubstitutions().contains( elName ) ) { curve = parseLineString( xmlStream, defaultCRS ); } else if ( geometryHierarchy.getCompositeCurveSubstitutions().contains( elName ) ) { curve = parseCompositeCurve( xmlStream, defaultCRS ); } else if ( geometryHierarchy.getOrientableCurveSubstitutions().contains( elName ) ) { curve = parseOrientableCurve( xmlStream, defaultCRS ); } else {
if ( geomHierarchy.getPointElementNames().contains( elName ) ) { primitive = parsePoint( xmlStream, defaultCRS ); } else if ( geomHierarchy.getAbstractCurveSubstitutions().contains( elName ) ) { primitive = parseAbstractCurve( xmlStream, defaultCRS ); } else if ( geomHierarchy.getRingElementNames().contains( elName ) ) { primitive = parseAbstractRing( xmlStream, defaultCRS ); } else if ( geomHierarchy.getAbstractSurfaceElementNames().contains( elName ) ) { primitive = parseAbstractSurface( xmlStream, defaultCRS ); } else if ( geomHierarchy.getSolidElementNames().contains( elName ) ) { primitive = parseAbstractSolid( xmlStream, defaultCRS ); } else {
AppSchemaGeometryHierarchy geometryHierarchy = getGeometryHierarchy(); if ( geometryHierarchy != null ) { if ( !geometryHierarchy.getAbstractSurfaceElementNames().contains( elName ) ) { String msg = "Invalid surface geometry element. '" + xmlStream.getName() + "' is not defined in the active application schema."; throw new XMLParsingException( xmlStream, msg ); if ( geometryHierarchy.getSurfaceSubstitutions().contains( elName ) ) { surface = parseSurface( xmlStream, defaultCRS ); } else if ( "Polygon".equals( elName.getLocalPart() ) ) { surface = parsePolygon( xmlStream, defaultCRS ); } else if ( geometryHierarchy.getCompositeSurfaceSubstitutions().contains( elName ) ) { surface = parseCompositeSurface( xmlStream, defaultCRS ); } else {
if ( hierarchy.getSurfaceSubstitutions().contains( particle.getName() ) && geom instanceof Polygon ) { patches.add( geomFac.createPolygonPatch( p.getExteriorRing(), p.getInteriorRings() ) ); geom = geomFac.createSurface( geom.getId(), patches, geom.getCoordinateSystem() ); } else if ( hierarchy.getCurveSubstitutions().contains( particle.getName() ) && geom instanceof LineString ) {
geometryHierarchy = new AppSchemaGeometryHierarchy( this, gmlSchema.getVersion() ); } else { geometryHierarchy = null;