/*
* citygml4j - The Open Source Java API for CityGML
* https://github.com/citygml4j
*
* Copyright 2013-2017 Claus Nagel <claus.nagel@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.citygml4j.util.walker;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.citygml4j.model.citygml.ade.ADEComponent;
import org.citygml4j.model.citygml.appearance.AbstractSurfaceData;
import org.citygml4j.model.citygml.appearance.AbstractTexture;
import org.citygml4j.model.citygml.appearance.AbstractTextureParameterization;
import org.citygml4j.model.citygml.appearance.Appearance;
import org.citygml4j.model.citygml.appearance.AppearanceProperty;
import org.citygml4j.model.citygml.appearance.GeoreferencedTexture;
import org.citygml4j.model.citygml.appearance.ParameterizedTexture;
import org.citygml4j.model.citygml.appearance.SurfaceDataProperty;
import org.citygml4j.model.citygml.appearance.TexCoordGen;
import org.citygml4j.model.citygml.appearance.TexCoordList;
import org.citygml4j.model.citygml.appearance.TextureAssociation;
import org.citygml4j.model.citygml.appearance.X3DMaterial;
import org.citygml4j.model.citygml.bridge.AbstractBridge;
import org.citygml4j.model.citygml.bridge.Bridge;
import org.citygml4j.model.citygml.bridge.BridgeConstructionElement;
import org.citygml4j.model.citygml.bridge.BridgeConstructionElementProperty;
import org.citygml4j.model.citygml.bridge.BridgeFurniture;
import org.citygml4j.model.citygml.bridge.BridgeInstallation;
import org.citygml4j.model.citygml.bridge.BridgeInstallationProperty;
import org.citygml4j.model.citygml.bridge.BridgePart;
import org.citygml4j.model.citygml.bridge.BridgePartProperty;
import org.citygml4j.model.citygml.bridge.BridgeRoom;
import org.citygml4j.model.citygml.bridge.IntBridgeInstallation;
import org.citygml4j.model.citygml.bridge.IntBridgeInstallationProperty;
import org.citygml4j.model.citygml.bridge.InteriorBridgeRoomProperty;
import org.citygml4j.model.citygml.building.AbstractBuilding;
import org.citygml4j.model.citygml.building.Building;
import org.citygml4j.model.citygml.building.BuildingFurniture;
import org.citygml4j.model.citygml.building.BuildingInstallation;
import org.citygml4j.model.citygml.building.BuildingInstallationProperty;
import org.citygml4j.model.citygml.building.BuildingPart;
import org.citygml4j.model.citygml.building.BuildingPartProperty;
import org.citygml4j.model.citygml.building.IntBuildingInstallation;
import org.citygml4j.model.citygml.building.IntBuildingInstallationProperty;
import org.citygml4j.model.citygml.building.InteriorRoomProperty;
import org.citygml4j.model.citygml.building.Room;
import org.citygml4j.model.citygml.cityfurniture.CityFurniture;
import org.citygml4j.model.citygml.cityobjectgroup.CityObjectGroup;
import org.citygml4j.model.citygml.cityobjectgroup.CityObjectGroupMember;
import org.citygml4j.model.citygml.core.AbstractCityObject;
import org.citygml4j.model.citygml.core.AbstractSite;
import org.citygml4j.model.citygml.core.Address;
import org.citygml4j.model.citygml.core.AddressProperty;
import org.citygml4j.model.citygml.core.CityModel;
import org.citygml4j.model.citygml.core.CityObjectMember;
import org.citygml4j.model.citygml.core.GeneralizationRelation;
import org.citygml4j.model.citygml.core.ImplicitGeometry;
import org.citygml4j.model.citygml.core.LodRepresentation;
import org.citygml4j.model.citygml.generics.GenericCityObject;
import org.citygml4j.model.citygml.landuse.LandUse;
import org.citygml4j.model.citygml.relief.AbstractReliefComponent;
import org.citygml4j.model.citygml.relief.BreaklineRelief;
import org.citygml4j.model.citygml.relief.MassPointRelief;
import org.citygml4j.model.citygml.relief.RasterRelief;
import org.citygml4j.model.citygml.relief.ReliefComponentProperty;
import org.citygml4j.model.citygml.relief.ReliefFeature;
import org.citygml4j.model.citygml.relief.TINRelief;
import org.citygml4j.model.citygml.texturedsurface._AbstractAppearance;
import org.citygml4j.model.citygml.texturedsurface._Material;
import org.citygml4j.model.citygml.texturedsurface._SimpleTexture;
import org.citygml4j.model.citygml.texturedsurface._TexturedSurface;
import org.citygml4j.model.citygml.transportation.AbstractTransportationObject;
import org.citygml4j.model.citygml.transportation.AuxiliaryTrafficArea;
import org.citygml4j.model.citygml.transportation.AuxiliaryTrafficAreaProperty;
import org.citygml4j.model.citygml.transportation.Railway;
import org.citygml4j.model.citygml.transportation.Road;
import org.citygml4j.model.citygml.transportation.Square;
import org.citygml4j.model.citygml.transportation.Track;
import org.citygml4j.model.citygml.transportation.TrafficArea;
import org.citygml4j.model.citygml.transportation.TrafficAreaProperty;
import org.citygml4j.model.citygml.transportation.TransportationComplex;
import org.citygml4j.model.citygml.tunnel.AbstractTunnel;
import org.citygml4j.model.citygml.tunnel.HollowSpace;
import org.citygml4j.model.citygml.tunnel.IntTunnelInstallation;
import org.citygml4j.model.citygml.tunnel.IntTunnelInstallationProperty;
import org.citygml4j.model.citygml.tunnel.InteriorHollowSpaceProperty;
import org.citygml4j.model.citygml.tunnel.Tunnel;
import org.citygml4j.model.citygml.tunnel.TunnelFurniture;
import org.citygml4j.model.citygml.tunnel.TunnelInstallation;
import org.citygml4j.model.citygml.tunnel.TunnelInstallationProperty;
import org.citygml4j.model.citygml.tunnel.TunnelPart;
import org.citygml4j.model.citygml.tunnel.TunnelPartProperty;
import org.citygml4j.model.citygml.vegetation.AbstractVegetationObject;
import org.citygml4j.model.citygml.vegetation.PlantCover;
import org.citygml4j.model.citygml.vegetation.SolitaryVegetationObject;
import org.citygml4j.model.citygml.waterbody.AbstractWaterBoundarySurface;
import org.citygml4j.model.citygml.waterbody.AbstractWaterObject;
import org.citygml4j.model.citygml.waterbody.BoundedByWaterSurfaceProperty;
import org.citygml4j.model.citygml.waterbody.WaterBody;
import org.citygml4j.model.citygml.waterbody.WaterClosureSurface;
import org.citygml4j.model.citygml.waterbody.WaterGroundSurface;
import org.citygml4j.model.citygml.waterbody.WaterSurface;
import org.citygml4j.model.common.visitor.GMLVisitor;
import org.citygml4j.model.gml.base.AbstractGML;
import org.citygml4j.model.gml.base.AssociationByRep;
import org.citygml4j.model.gml.base.AssociationByRepOrRef;
import org.citygml4j.model.gml.coverage.AbstractCoverage;
import org.citygml4j.model.gml.coverage.AbstractDiscreteCoverage;
import org.citygml4j.model.gml.coverage.DataBlock;
import org.citygml4j.model.gml.coverage.File;
import org.citygml4j.model.gml.coverage.RangeSet;
import org.citygml4j.model.gml.coverage.RectifiedGridCoverage;
import org.citygml4j.model.gml.feature.AbstractFeature;
import org.citygml4j.model.gml.feature.AbstractFeatureCollection;
import org.citygml4j.model.gml.feature.FeatureArrayProperty;
import org.citygml4j.model.gml.feature.FeatureMember;
import org.citygml4j.model.gml.feature.FeatureProperty;
import org.citygml4j.model.gml.geometry.AbstractGeometry;
import org.citygml4j.model.gml.geometry.GeometryArrayProperty;
import org.citygml4j.model.gml.geometry.GeometryProperty;
import org.citygml4j.model.gml.geometry.InlineGeometryProperty;
import org.citygml4j.model.gml.geometry.aggregates.AbstractGeometricAggregate;
import org.citygml4j.model.gml.geometry.aggregates.MultiCurve;
import org.citygml4j.model.gml.geometry.aggregates.MultiGeometry;
import org.citygml4j.model.gml.geometry.aggregates.MultiLineString;
import org.citygml4j.model.gml.geometry.aggregates.MultiPoint;
import org.citygml4j.model.gml.geometry.aggregates.MultiPolygon;
import org.citygml4j.model.gml.geometry.aggregates.MultiSolid;
import org.citygml4j.model.gml.geometry.aggregates.MultiSurface;
import org.citygml4j.model.gml.geometry.complexes.CompositeCurve;
import org.citygml4j.model.gml.geometry.complexes.CompositeSolid;
import org.citygml4j.model.gml.geometry.complexes.CompositeSurface;
import org.citygml4j.model.gml.geometry.complexes.GeometricComplex;
import org.citygml4j.model.gml.geometry.complexes.GeometricComplexProperty;
import org.citygml4j.model.gml.geometry.primitives.AbstractCurve;
import org.citygml4j.model.gml.geometry.primitives.AbstractGeometricPrimitive;
import org.citygml4j.model.gml.geometry.primitives.AbstractRing;
import org.citygml4j.model.gml.geometry.primitives.AbstractRingProperty;
import org.citygml4j.model.gml.geometry.primitives.AbstractSolid;
import org.citygml4j.model.gml.geometry.primitives.AbstractSurface;
import org.citygml4j.model.gml.geometry.primitives.AbstractSurfacePatch;
import org.citygml4j.model.gml.geometry.primitives.Curve;
import org.citygml4j.model.gml.geometry.primitives.CurveProperty;
import org.citygml4j.model.gml.geometry.primitives.GeometricPrimitiveProperty;
import org.citygml4j.model.gml.geometry.primitives.LineString;
import org.citygml4j.model.gml.geometry.primitives.LineStringProperty;
import org.citygml4j.model.gml.geometry.primitives.LinearRing;
import org.citygml4j.model.gml.geometry.primitives.OrientableCurve;
import org.citygml4j.model.gml.geometry.primitives.OrientableSurface;
import org.citygml4j.model.gml.geometry.primitives.Point;
import org.citygml4j.model.gml.geometry.primitives.PointProperty;
import org.citygml4j.model.gml.geometry.primitives.Polygon;
import org.citygml4j.model.gml.geometry.primitives.PolygonProperty;
import org.citygml4j.model.gml.geometry.primitives.Rectangle;
import org.citygml4j.model.gml.geometry.primitives.Ring;
import org.citygml4j.model.gml.geometry.primitives.Solid;
import org.citygml4j.model.gml.geometry.primitives.SolidProperty;
import org.citygml4j.model.gml.geometry.primitives.Surface;
import org.citygml4j.model.gml.geometry.primitives.SurfacePatchArrayProperty;
import org.citygml4j.model.gml.geometry.primitives.SurfaceProperty;
import org.citygml4j.model.gml.geometry.primitives.Tin;
import org.citygml4j.model.gml.geometry.primitives.Triangle;
import org.citygml4j.model.gml.geometry.primitives.TriangulatedSurface;
import org.citygml4j.model.gml.grids.Grid;
import org.citygml4j.model.gml.grids.RectifiedGrid;
import org.citygml4j.model.gml.valueObjects.CompositeValue;
import org.citygml4j.model.gml.valueObjects.Value;
import org.citygml4j.model.gml.valueObjects.ValueArray;
import org.citygml4j.model.gml.valueObjects.ValueArrayProperty;
import org.citygml4j.model.gml.valueObjects.ValueObject;
import org.citygml4j.model.gml.valueObjects.ValueProperty;
import org.citygml4j.xml.schema.ElementDecl;
import org.citygml4j.xml.schema.Schema;
import org.citygml4j.xml.schema.SchemaHandler;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public abstract class GMLWalker implements GMLVisitor, Walker {
private Set<Object> visited = new HashSet<Object>();
private boolean shouldWalk = true;
private SchemaHandler schemaHandler;
public GMLWalker() {
}
public GMLWalker(SchemaHandler schemaHandler) {
this.schemaHandler = schemaHandler;
}
public void reset() {
visited.clear();
shouldWalk = true;
}
public boolean shouldWalk() {
return shouldWalk;
}
public void setShouldWalk(boolean shouldWalk) {
this.shouldWalk = shouldWalk;
}
public void setSchemaHandler(SchemaHandler schemaHandler) {
this.schemaHandler = schemaHandler;
}
public SchemaHandler getSchemaHandler() {
return schemaHandler;
}
public boolean addToVisited(Object object) {
return visited.add(object);
}
public boolean hasVisited(Object object) {
return visited.contains(object);
}
public void visit(LodRepresentation lodRepresentation) {
if (lodRepresentation != null) {
for (int lod = 0; lod < 5; lod++) {
if (lodRepresentation.isSetLodGeometry(lod))
for (GeometryProperty<? extends AbstractGeometry> geometryProperty : lodRepresentation.getLodGeometry(lod))
visit(geometryProperty);
}
}
}
public void visit(AbstractGML abstractGML) {
}
public void visit(AbstractGeometry abstractGeometry) {
visit((AbstractGML)abstractGeometry);
}
public void visit(AbstractGeometricPrimitive abstractGeometricPrimitive) {
visit((AbstractGeometry)abstractGeometricPrimitive);
}
public void visit(AbstractGeometricAggregate abstractGeometricAggregate) {
visit((AbstractGeometry)abstractGeometricAggregate);
}
public void visit(AbstractCurve abstractCurve) {
visit((AbstractGeometricPrimitive)abstractCurve);
}
public void visit(AbstractSolid abstractSolid) {
visit((AbstractGeometricPrimitive)abstractSolid);
}
public void visit(AbstractSurface abstractSurface) {
visit((AbstractGeometricPrimitive)abstractSurface);
}
public void visit(AbstractRing abstractRing) {
visit((AbstractGeometry)abstractRing);
}
public void visit(Triangle triangle) {
if (triangle.isSetExterior())
visit(triangle.getExterior());
}
public void visit(Rectangle rectangle) {
if (rectangle.isSetExterior())
visit(rectangle.getExterior());
}
public void visit(CompositeCurve compositeCurve) {
visit((AbstractCurve)compositeCurve);
for (CurveProperty curveProperty : new ArrayList<CurveProperty>(compositeCurve.getCurveMember()))
visit(curveProperty);
}
public void visit(CompositeSolid compositeSolid) {
visit((AbstractSolid)compositeSolid);
for (SolidProperty solidProperty : new ArrayList<SolidProperty>(compositeSolid.getSolidMember()))
visit(solidProperty);
}
public void visit(CompositeSurface compositeSurface) {
visit((AbstractSurface)compositeSurface);
for (SurfaceProperty surfaceProperty : new ArrayList<SurfaceProperty>(compositeSurface.getSurfaceMember()))
visit(surfaceProperty);
}
public void visit(Curve curve) {
visit((AbstractCurve)curve);
}
public void visit(GeometricComplex geometricComplex) {
visit((AbstractGeometry)geometricComplex);
if (geometricComplex.isSetElement())
for (GeometricPrimitiveProperty geometricPrimitiveProperty : new ArrayList<GeometricPrimitiveProperty>(geometricComplex.getElement()))
visit(geometricPrimitiveProperty);
}
public void visit(Grid grid) {
visit((AbstractGeometry)grid);
}
public void visit(LinearRing linearRing) {
visit((AbstractRing)linearRing);
}
public void visit(LineString lineString) {
visit((AbstractCurve)lineString);
}
public void visit(MultiCurve multiCurve) {
visit((AbstractGeometricAggregate)multiCurve);
if (multiCurve.isSetCurveMember())
for (CurveProperty curveProperty : new ArrayList<CurveProperty>(multiCurve.getCurveMember()))
visit(curveProperty);
if (multiCurve.isSetCurveMembers())
visit(multiCurve.getCurveMembers());
}
public void visit(MultiGeometry multiGeometry) {
visit((AbstractGeometricAggregate)multiGeometry);
if (multiGeometry.isSetGeometryMember())
for (GeometryProperty<? extends AbstractGeometry> geometryProperty : new ArrayList<GeometryProperty<? extends AbstractGeometry>>(multiGeometry.getGeometryMember()))
visit(geometryProperty);
if (multiGeometry.isSetGeometryMembers())
visit(multiGeometry.getGeometryMembers());
}
public void visit(MultiLineString multiLineString) {
visit((AbstractGeometricAggregate)multiLineString);
if (multiLineString.isSetLineStringMember())
for (LineStringProperty lineStringProperty : new ArrayList<LineStringProperty>(multiLineString.getLineStringMember()))
visit(lineStringProperty);
}
public void visit(MultiPoint multiPoint) {
visit((AbstractGeometricAggregate)multiPoint);
if (multiPoint.isSetPointMember())
for (PointProperty pointProperty : new ArrayList<PointProperty>(multiPoint.getPointMember()))
visit(pointProperty);
if (multiPoint.isSetPointMembers())
visit(multiPoint.getPointMembers());
}
public void visit(MultiPolygon multiPolygon) {
visit((AbstractGeometricAggregate)multiPolygon);
if (multiPolygon.isSetPolygonMember())
for (PolygonProperty polygonProperty : new ArrayList<PolygonProperty>(multiPolygon.getPolygonMember()))
visit(polygonProperty);
}
public void visit(MultiSolid multiSolid) {
visit((AbstractGeometricAggregate)multiSolid);
if (multiSolid.isSetSolidMember())
for (SolidProperty solidProperty : new ArrayList<SolidProperty>(multiSolid.getSolidMember()))
visit(solidProperty);
if (multiSolid.isSetSolidMembers())
visit(multiSolid.getSolidMembers());
}
public void visit(MultiSurface multiSurface) {
visit((AbstractGeometricAggregate)multiSurface);
if (multiSurface.isSetSurfaceMember())
for (SurfaceProperty surfaceProperty : new ArrayList<SurfaceProperty>(multiSurface.getSurfaceMember()))
visit(surfaceProperty);
if (multiSurface.isSetSurfaceMembers())
visit(multiSurface.getSurfaceMembers());
}
public void visit(OrientableCurve orientableCurve) {
visit((AbstractCurve)orientableCurve);
if (orientableCurve.isSetBaseCurve())
visit(orientableCurve.getBaseCurve());
}
public void visit(OrientableSurface orientableSurface) {
visit((AbstractSurface)orientableSurface);
if (orientableSurface.isSetBaseSurface())
visit(orientableSurface.getBaseSurface());
}
public void visit(_TexturedSurface texturedSurface) {
visit((OrientableSurface)texturedSurface);
}
public void visit(Point point) {
visit((AbstractGeometricPrimitive)point);
}
public void visit(Polygon polygon) {
visit((AbstractSurface)polygon);
if (polygon.isSetExterior())
visit(polygon.getExterior());
if (polygon.isSetInterior())
for (AbstractRingProperty interior : new ArrayList<AbstractRingProperty>(polygon.getInterior()))
visit(interior);
}
public void visit(RectifiedGrid rectifiedGrid) {
visit((Grid)rectifiedGrid);
if (rectifiedGrid.isSetOrigin())
visit(rectifiedGrid.getOrigin());
}
public void visit(Ring ring) {
visit((AbstractRing)ring);
if (ring.isSetCurveMember())
for (CurveProperty curveProperty : new ArrayList<CurveProperty>(ring.getCurveMember()))
visit(curveProperty);
}
public void visit(Solid solid) {
visit((AbstractSolid)solid);
if (solid.isSetExterior())
visit(solid.getExterior());
if (solid.isSetInterior())
for (SurfaceProperty interior : new ArrayList<SurfaceProperty>(solid.getInterior()))
visit(interior);
}
public void visit(Surface surface) {
visit((AbstractSurface)surface);
if (surface.isSetPatches())
visit(surface.getPatches());
}
public void visit(Tin tin) {
visit((TriangulatedSurface)tin);
}
public void visit(TriangulatedSurface triangulatedSurface) {
visit((Surface)triangulatedSurface);
}
public void visit(org.citygml4j.model.citygml.bridge.AbstractBoundarySurface abstractBoundarySurface) {
visit((AbstractCityObject)abstractBoundarySurface);
if (abstractBoundarySurface.isSetOpening())
for (org.citygml4j.model.citygml.bridge.OpeningProperty openingProperty : new ArrayList<org.citygml4j.model.citygml.bridge.OpeningProperty>(abstractBoundarySurface.getOpening()))
visit(openingProperty);
if (abstractBoundarySurface.isSetLod2MultiSurface())
visit(abstractBoundarySurface.getLod2MultiSurface());
if (abstractBoundarySurface.isSetLod3MultiSurface())
visit(abstractBoundarySurface.getLod3MultiSurface());
if (abstractBoundarySurface.isSetLod4MultiSurface())
visit(abstractBoundarySurface.getLod4MultiSurface());
if (abstractBoundarySurface.isSetGenericApplicationPropertyOfBoundarySurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractBoundarySurface.getGenericApplicationPropertyOfBoundarySurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.AbstractBoundarySurface abstractBoundarySurface) {
visit((AbstractCityObject)abstractBoundarySurface);
if (abstractBoundarySurface.isSetOpening())
for (org.citygml4j.model.citygml.building.OpeningProperty openingProperty : new ArrayList<org.citygml4j.model.citygml.building.OpeningProperty>(abstractBoundarySurface.getOpening()))
visit(openingProperty);
if (abstractBoundarySurface.isSetLod2MultiSurface())
visit(abstractBoundarySurface.getLod2MultiSurface());
if (abstractBoundarySurface.isSetLod3MultiSurface())
visit(abstractBoundarySurface.getLod3MultiSurface());
if (abstractBoundarySurface.isSetLod4MultiSurface())
visit(abstractBoundarySurface.getLod4MultiSurface());
if (abstractBoundarySurface.isSetGenericApplicationPropertyOfBoundarySurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractBoundarySurface.getGenericApplicationPropertyOfBoundarySurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface abstractBoundarySurface) {
visit((AbstractCityObject)abstractBoundarySurface);
if (abstractBoundarySurface.isSetOpening())
for (org.citygml4j.model.citygml.tunnel.OpeningProperty openingProperty : new ArrayList<org.citygml4j.model.citygml.tunnel.OpeningProperty>(abstractBoundarySurface.getOpening()))
visit(openingProperty);
if (abstractBoundarySurface.isSetLod2MultiSurface())
visit(abstractBoundarySurface.getLod2MultiSurface());
if (abstractBoundarySurface.isSetLod3MultiSurface())
visit(abstractBoundarySurface.getLod3MultiSurface());
if (abstractBoundarySurface.isSetLod4MultiSurface())
visit(abstractBoundarySurface.getLod4MultiSurface());
if (abstractBoundarySurface.isSetGenericApplicationPropertyOfBoundarySurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractBoundarySurface.getGenericApplicationPropertyOfBoundarySurface()))
visit(ade);
}
public void visit(AbstractBridge abstractBridge) {
visit((AbstractSite)abstractBridge);
if (abstractBridge.isSetOuterBridgeInstallation())
for (BridgeInstallationProperty bridgeInstallationProperty : new ArrayList<BridgeInstallationProperty>(abstractBridge.getOuterBridgeInstallation()))
visit(bridgeInstallationProperty);
if (abstractBridge.isSetOuterBridgeConstructionElement())
for (BridgeConstructionElementProperty constructionElementProperty : new ArrayList<BridgeConstructionElementProperty>(abstractBridge.getOuterBridgeConstructionElement()))
visit(constructionElementProperty);
if (abstractBridge.isSetInteriorBridgeInstallation())
for (IntBridgeInstallationProperty intBridgeInstallationProperty : new ArrayList<IntBridgeInstallationProperty>(abstractBridge.getInteriorBridgeInstallation()))
visit(intBridgeInstallationProperty);
if (abstractBridge.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty>(abstractBridge.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (abstractBridge.isSetConsistsOfBridgePart())
for (BridgePartProperty bridgePartProperty : new ArrayList<BridgePartProperty>(abstractBridge.getConsistsOfBridgePart()))
visit(bridgePartProperty);
if (abstractBridge.isSetInteriorBridgeRoom())
for (InteriorBridgeRoomProperty interiorBridgeRoomProperty : new ArrayList<InteriorBridgeRoomProperty>(abstractBridge.getInteriorBridgeRoom()))
visit(interiorBridgeRoomProperty);
if (abstractBridge.isSetAddress())
for (AddressProperty addressProperty : new ArrayList<AddressProperty>(abstractBridge.getAddress()))
visit(addressProperty);
if (abstractBridge.isSetLod1Solid())
visit(abstractBridge.getLod1Solid());
if (abstractBridge.isSetLod2Solid())
visit(abstractBridge.getLod2Solid());
if (abstractBridge.isSetLod3Solid())
visit(abstractBridge.getLod3Solid());
if (abstractBridge.isSetLod4Solid())
visit(abstractBridge.getLod4Solid());
if (abstractBridge.isSetLod1TerrainIntersection())
visit(abstractBridge.getLod1TerrainIntersection());
if (abstractBridge.isSetLod2TerrainIntersection())
visit(abstractBridge.getLod2TerrainIntersection());
if (abstractBridge.isSetLod3TerrainIntersection())
visit(abstractBridge.getLod3TerrainIntersection());
if (abstractBridge.isSetLod4TerrainIntersection())
visit(abstractBridge.getLod4TerrainIntersection());
if (abstractBridge.isSetLod2MultiCurve())
visit(abstractBridge.getLod2MultiCurve());
if (abstractBridge.isSetLod3MultiCurve())
visit(abstractBridge.getLod3MultiCurve());
if (abstractBridge.isSetLod4MultiCurve())
visit(abstractBridge.getLod4MultiCurve());
if (abstractBridge.isSetLod1MultiSurface())
visit(abstractBridge.getLod1MultiSurface());
if (abstractBridge.isSetLod2MultiSurface())
visit(abstractBridge.getLod2MultiSurface());
if (abstractBridge.isSetLod3MultiSurface())
visit(abstractBridge.getLod3MultiSurface());
if (abstractBridge.isSetLod4MultiSurface())
visit(abstractBridge.getLod4MultiSurface());
if (abstractBridge.isSetGenericApplicationPropertyOfAbstractBridge())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractBridge.getGenericApplicationPropertyOfAbstractBridge()))
visit(ade);
}
public void visit(AbstractBuilding abstractBuilding) {
visit((AbstractSite)abstractBuilding);
if (abstractBuilding.isSetOuterBuildingInstallation())
for (BuildingInstallationProperty buildingInstallationProperty : new ArrayList<BuildingInstallationProperty>(abstractBuilding.getOuterBuildingInstallation()))
visit(buildingInstallationProperty);
if (abstractBuilding.isSetInteriorBuildingInstallation())
for (IntBuildingInstallationProperty intBuildingInstallationProperty : new ArrayList<IntBuildingInstallationProperty>(abstractBuilding.getInteriorBuildingInstallation()))
visit(intBuildingInstallationProperty);
if (abstractBuilding.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.building.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.building.BoundarySurfaceProperty>(abstractBuilding.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (abstractBuilding.isSetConsistsOfBuildingPart())
for (BuildingPartProperty buildingPartProperty : new ArrayList<BuildingPartProperty>(abstractBuilding.getConsistsOfBuildingPart()))
visit(buildingPartProperty);
if (abstractBuilding.isSetInteriorRoom())
for (InteriorRoomProperty interiorRoomProperty : new ArrayList<InteriorRoomProperty>(abstractBuilding.getInteriorRoom()))
visit(interiorRoomProperty);
if (abstractBuilding.isSetAddress())
for (AddressProperty addressProperty : new ArrayList<AddressProperty>(abstractBuilding.getAddress()))
visit(addressProperty);
if (abstractBuilding.isSetLod1Solid())
visit(abstractBuilding.getLod1Solid());
if (abstractBuilding.isSetLod2Solid())
visit(abstractBuilding.getLod2Solid());
if (abstractBuilding.isSetLod3Solid())
visit(abstractBuilding.getLod3Solid());
if (abstractBuilding.isSetLod4Solid())
visit(abstractBuilding.getLod4Solid());
if (abstractBuilding.isSetLod1TerrainIntersection())
visit(abstractBuilding.getLod1TerrainIntersection());
if (abstractBuilding.isSetLod2TerrainIntersection())
visit(abstractBuilding.getLod2TerrainIntersection());
if (abstractBuilding.isSetLod3TerrainIntersection())
visit(abstractBuilding.getLod3TerrainIntersection());
if (abstractBuilding.isSetLod4TerrainIntersection())
visit(abstractBuilding.getLod4TerrainIntersection());
if (abstractBuilding.isSetLod2MultiCurve())
visit(abstractBuilding.getLod2MultiCurve());
if (abstractBuilding.isSetLod3MultiCurve())
visit(abstractBuilding.getLod3MultiCurve());
if (abstractBuilding.isSetLod4MultiCurve())
visit(abstractBuilding.getLod4MultiCurve());
if (abstractBuilding.isSetLod0FootPrint())
visit(abstractBuilding.getLod0FootPrint());
if (abstractBuilding.isSetLod0RoofEdge())
visit(abstractBuilding.getLod0RoofEdge());
if (abstractBuilding.isSetLod1MultiSurface())
visit(abstractBuilding.getLod1MultiSurface());
if (abstractBuilding.isSetLod2MultiSurface())
visit(abstractBuilding.getLod2MultiSurface());
if (abstractBuilding.isSetLod3MultiSurface())
visit(abstractBuilding.getLod3MultiSurface());
if (abstractBuilding.isSetLod4MultiSurface())
visit(abstractBuilding.getLod4MultiSurface());
if (abstractBuilding.isSetGenericApplicationPropertyOfAbstractBuilding())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractBuilding.getGenericApplicationPropertyOfAbstractBuilding()))
visit(ade);
}
public void visit(AbstractCityObject abstractCityObject) {
visit((AbstractFeature)abstractCityObject);
if (abstractCityObject.isSetGeneralizesTo()) {
for (GeneralizationRelation generalizationRelation : new ArrayList<GeneralizationRelation>(abstractCityObject.getGeneralizesTo()))
visit(generalizationRelation);
}
if (abstractCityObject.isSetAppearance()) {
for (AppearanceProperty appearanceProperty : new ArrayList<AppearanceProperty>(abstractCityObject.getAppearance()))
visit(appearanceProperty);
}
if (abstractCityObject.isSetGenericApplicationPropertyOfCityObject())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractCityObject.getGenericApplicationPropertyOfCityObject()))
visit(ade);
}
public void visit(AbstractCoverage abstractCoverage) {
visit((AbstractFeature)abstractCoverage);
if (abstractCoverage.isSetRangeSet()) {
RangeSet rangeSet = abstractCoverage.getRangeSet();
if (rangeSet.isSetValueArray()) {
for (ValueArray valueArray : new ArrayList<ValueArray>(rangeSet.getValueArray()))
visit(valueArray);
}
else if (rangeSet.isSetDataBlock()) {
DataBlock dataBlock = rangeSet.getDataBlock();
if (dataBlock.isSetRangeParameters() && dataBlock.getRangeParameters().isSetValueObject())
visit(dataBlock.getRangeParameters().getValueObject());
}
else if (rangeSet.isSetFile()) {
File file = rangeSet.getFile();
if (file.isSetRangeParameters() && file.getRangeParameters().isSetValueObject())
visit(file.getRangeParameters().getValueObject());
}
}
}
public void visit(AbstractDiscreteCoverage abstractDiscreteCoverage) {
visit((AbstractCoverage)abstractDiscreteCoverage);
}
public void visit(AbstractFeature abstractFeature) {
visit((AbstractGML)abstractFeature);
if (abstractFeature.isSetLocation())
visit(abstractFeature.getLocation());
if (abstractFeature.isSetGenericADEComponent())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractFeature.getGenericADEComponent()))
visit(ade);
}
public void visit(AbstractFeatureCollection abstractFeatureCollection) {
visit((AbstractFeature)abstractFeatureCollection);
if (abstractFeatureCollection.isSetFeatureMember())
for (FeatureMember member : new ArrayList<FeatureMember>(abstractFeatureCollection.getFeatureMember()))
visit(member);
if (abstractFeatureCollection.isSetFeatureMembers())
visit(abstractFeatureCollection.getFeatureMembers());
}
public void visit(org.citygml4j.model.citygml.bridge.AbstractOpening abstractOpening) {
visit((AbstractCityObject)abstractOpening);
if (abstractOpening.isSetLod3MultiSurface())
visit(abstractOpening.getLod3MultiSurface());
if (abstractOpening.isSetLod4MultiSurface())
visit(abstractOpening.getLod4MultiSurface());
if (abstractOpening.isSetLod3ImplicitRepresentation())
visit(abstractOpening.getLod3ImplicitRepresentation());
if (abstractOpening.isSetLod4ImplicitRepresentation())
visit(abstractOpening.getLod4ImplicitRepresentation());
if (abstractOpening.isSetGenericApplicationPropertyOfOpening())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractOpening.getGenericApplicationPropertyOfOpening()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.AbstractOpening abstractOpening) {
visit((AbstractCityObject)abstractOpening);
if (abstractOpening.isSetLod3MultiSurface())
visit(abstractOpening.getLod3MultiSurface());
if (abstractOpening.isSetLod4MultiSurface())
visit(abstractOpening.getLod4MultiSurface());
if (abstractOpening.isSetLod3ImplicitRepresentation())
visit(abstractOpening.getLod3ImplicitRepresentation());
if (abstractOpening.isSetLod4ImplicitRepresentation())
visit(abstractOpening.getLod4ImplicitRepresentation());
if (abstractOpening.isSetGenericApplicationPropertyOfOpening())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractOpening.getGenericApplicationPropertyOfOpening()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.AbstractOpening abstractOpening) {
visit((AbstractCityObject)abstractOpening);
if (abstractOpening.isSetLod3MultiSurface())
visit(abstractOpening.getLod3MultiSurface());
if (abstractOpening.isSetLod4MultiSurface())
visit(abstractOpening.getLod4MultiSurface());
if (abstractOpening.isSetLod3ImplicitRepresentation())
visit(abstractOpening.getLod3ImplicitRepresentation());
if (abstractOpening.isSetLod4ImplicitRepresentation())
visit(abstractOpening.getLod4ImplicitRepresentation());
if (abstractOpening.isSetGenericApplicationPropertyOfOpening())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractOpening.getGenericApplicationPropertyOfOpening()))
visit(ade);
}
public void visit(AbstractReliefComponent abstractReliefComponent) {
visit((AbstractCityObject)abstractReliefComponent);
if (abstractReliefComponent.isSetExtent())
visit(abstractReliefComponent.getExtent());
if (abstractReliefComponent.isSetGenericApplicationPropertyOfReliefComponent())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractReliefComponent.getGenericApplicationPropertyOfReliefComponent()))
visit(ade);
}
public void visit(AbstractSite abstractSite) {
visit((AbstractCityObject)abstractSite);
if (abstractSite.isSetGenericApplicationPropertyOfSite())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractSite.getGenericApplicationPropertyOfSite()))
visit(ade);
}
public void visit(AbstractSurfaceData abstractSurfaceData) {
visit((AbstractFeature)abstractSurfaceData);
if (abstractSurfaceData.isSetGenericApplicationPropertyOfSurfaceData())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractSurfaceData.getGenericApplicationPropertyOfSurfaceData()))
visit(ade);
}
public void visit(AbstractTexture abstractTexture) {
visit((AbstractSurfaceData)abstractTexture);
if (abstractTexture.isSetGenericApplicationPropertyOfTexture())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractTexture.getGenericApplicationPropertyOfTexture()))
visit(ade);
}
public void visit(AbstractTransportationObject abstractTransportationObject) {
visit((AbstractCityObject)abstractTransportationObject);
if (abstractTransportationObject.isSetGenericApplicationPropertyOfTransportationObject())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractTransportationObject.getGenericApplicationPropertyOfTransportationObject()))
visit(ade);
}
public void visit(AbstractTunnel abstractTunnel) {
visit((AbstractSite)abstractTunnel);
if (abstractTunnel.isSetOuterTunnelInstallation())
for (TunnelInstallationProperty tunnelInstallationProperty : new ArrayList<TunnelInstallationProperty>(abstractTunnel.getOuterTunnelInstallation()))
visit(tunnelInstallationProperty);
if (abstractTunnel.isSetInteriorTunnelInstallation())
for (IntTunnelInstallationProperty intTunnelInstallationProperty : new ArrayList<IntTunnelInstallationProperty>(abstractTunnel.getInteriorTunnelInstallation()))
visit(intTunnelInstallationProperty);
if (abstractTunnel.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty>(abstractTunnel.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (abstractTunnel.isSetConsistsOfTunnelPart())
for (TunnelPartProperty tunnelPartProperty : new ArrayList<TunnelPartProperty>(abstractTunnel.getConsistsOfTunnelPart()))
visit(tunnelPartProperty);
if (abstractTunnel.isSetInteriorHollowSpace())
for (InteriorHollowSpaceProperty interiorHollowSpaceProperty : new ArrayList<InteriorHollowSpaceProperty>(abstractTunnel.getInteriorHollowSpace()))
visit(interiorHollowSpaceProperty);
if (abstractTunnel.isSetLod1Solid())
visit(abstractTunnel.getLod1Solid());
if (abstractTunnel.isSetLod2Solid())
visit(abstractTunnel.getLod2Solid());
if (abstractTunnel.isSetLod3Solid())
visit(abstractTunnel.getLod3Solid());
if (abstractTunnel.isSetLod4Solid())
visit(abstractTunnel.getLod4Solid());
if (abstractTunnel.isSetLod1TerrainIntersection())
visit(abstractTunnel.getLod1TerrainIntersection());
if (abstractTunnel.isSetLod2TerrainIntersection())
visit(abstractTunnel.getLod2TerrainIntersection());
if (abstractTunnel.isSetLod3TerrainIntersection())
visit(abstractTunnel.getLod3TerrainIntersection());
if (abstractTunnel.isSetLod4TerrainIntersection())
visit(abstractTunnel.getLod4TerrainIntersection());
if (abstractTunnel.isSetLod2MultiCurve())
visit(abstractTunnel.getLod2MultiCurve());
if (abstractTunnel.isSetLod3MultiCurve())
visit(abstractTunnel.getLod3MultiCurve());
if (abstractTunnel.isSetLod4MultiCurve())
visit(abstractTunnel.getLod4MultiCurve());
if (abstractTunnel.isSetLod1MultiSurface())
visit(abstractTunnel.getLod1MultiSurface());
if (abstractTunnel.isSetLod2MultiSurface())
visit(abstractTunnel.getLod2MultiSurface());
if (abstractTunnel.isSetLod3MultiSurface())
visit(abstractTunnel.getLod3MultiSurface());
if (abstractTunnel.isSetLod4MultiSurface())
visit(abstractTunnel.getLod4MultiSurface());
if (abstractTunnel.isSetGenericApplicationPropertyOfAbstractTunnel())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractTunnel.getGenericApplicationPropertyOfAbstractTunnel()))
visit(ade);
}
public void visit(AbstractVegetationObject abstractVegetationObject) {
visit((AbstractCityObject)abstractVegetationObject);
if (abstractVegetationObject.isSetGenericApplicationPropertyOfVegetationObject())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractVegetationObject.getGenericApplicationPropertyOfVegetationObject()))
visit(ade);
}
public void visit(AbstractWaterObject abstractWaterObject) {
visit((AbstractCityObject)abstractWaterObject);
if (abstractWaterObject.isSetGenericApplicationPropertyOfWaterObject())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractWaterObject.getGenericApplicationPropertyOfWaterObject()))
visit(ade);
}
public void visit(AbstractWaterBoundarySurface abstractWaterBoundarySurface) {
visit((AbstractCityObject)abstractWaterBoundarySurface);
if (abstractWaterBoundarySurface.isSetLod2Surface())
visit(abstractWaterBoundarySurface.getLod2Surface());
if (abstractWaterBoundarySurface.isSetLod3Surface())
visit(abstractWaterBoundarySurface.getLod3Surface());
if (abstractWaterBoundarySurface.isSetLod4Surface())
visit(abstractWaterBoundarySurface.getLod4Surface());
if (abstractWaterBoundarySurface.isSetGenericApplicationPropertyOfWaterBoundarySurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractWaterBoundarySurface.getGenericApplicationPropertyOfWaterBoundarySurface()))
visit(ade);
}
public void visit(Appearance appearance) {
visit((AbstractFeature)appearance);
if (appearance.isSetSurfaceDataMember())
for (SurfaceDataProperty surfaceDataProperty : new ArrayList<SurfaceDataProperty>(appearance.getSurfaceDataMember()))
visit(surfaceDataProperty);
if (appearance.isSetGenericApplicationPropertyOfAppearance())
for (ADEComponent ade : new ArrayList<ADEComponent>(appearance.getGenericApplicationPropertyOfAppearance()))
visit(ade);
}
public void visit(GeoreferencedTexture georeferencedTexture) {
visit((AbstractTexture)georeferencedTexture);
if (georeferencedTexture.isSetReferencePoint())
visit(georeferencedTexture.getReferencePoint());
if (georeferencedTexture.isSetGenericApplicationPropertyOfGeoreferencedTexture())
for (ADEComponent ade : new ArrayList<ADEComponent>(georeferencedTexture.getGenericApplicationPropertyOfGeoreferencedTexture()))
visit(ade);
}
public void visit(ParameterizedTexture parameterizedTexture) {
visit((AbstractTexture)parameterizedTexture);
if (parameterizedTexture.isSetTarget())
for (TextureAssociation textureAssociation : new ArrayList<TextureAssociation>(parameterizedTexture.getTarget()))
visit(textureAssociation);
if (parameterizedTexture.isSetGenericApplicationPropertyOfParameterizedTexture())
for (ADEComponent ade : new ArrayList<ADEComponent>(parameterizedTexture.getGenericApplicationPropertyOfParameterizedTexture()))
visit(ade);
}
public void visit(X3DMaterial x3dMaterial) {
visit((AbstractSurfaceData)x3dMaterial);
if (x3dMaterial.isSetGenericApplicationPropertyOfX3DMaterial())
for (ADEComponent ade : new ArrayList<ADEComponent>(x3dMaterial.getGenericApplicationPropertyOfX3DMaterial()))
visit(ade);
}
public void visit(Bridge bridge) {
visit((AbstractBridge)bridge);
if (bridge.isSetGenericApplicationPropertyOfBridge())
for (ADEComponent ade : new ArrayList<ADEComponent>(bridge.getGenericApplicationPropertyOfBridge()))
visit(ade);
}
public void visit(BridgeConstructionElement bridgeConstructionElement) {
visit((AbstractCityObject)bridgeConstructionElement);
if (bridgeConstructionElement.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty>(bridgeConstructionElement.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (bridgeConstructionElement.isSetLod1Geometry())
visit(bridgeConstructionElement.getLod1Geometry());
if (bridgeConstructionElement.isSetLod2Geometry())
visit(bridgeConstructionElement.getLod2Geometry());
if (bridgeConstructionElement.isSetLod3Geometry())
visit(bridgeConstructionElement.getLod3Geometry());
if (bridgeConstructionElement.isSetLod4Geometry())
visit(bridgeConstructionElement.getLod4Geometry());
if (bridgeConstructionElement.isSetLod1ImplicitRepresentation())
visit(bridgeConstructionElement.getLod1ImplicitRepresentation());
if (bridgeConstructionElement.isSetLod2ImplicitRepresentation())
visit(bridgeConstructionElement.getLod2ImplicitRepresentation());
if (bridgeConstructionElement.isSetLod3ImplicitRepresentation())
visit(bridgeConstructionElement.getLod3ImplicitRepresentation());
if (bridgeConstructionElement.isSetLod4ImplicitRepresentation())
visit(bridgeConstructionElement.getLod4ImplicitRepresentation());
if (bridgeConstructionElement.isSetLod1TerrainIntersection())
visit(bridgeConstructionElement.getLod1TerrainIntersection());
if (bridgeConstructionElement.isSetLod2TerrainIntersection())
visit(bridgeConstructionElement.getLod2TerrainIntersection());
if (bridgeConstructionElement.isSetLod3TerrainIntersection())
visit(bridgeConstructionElement.getLod3TerrainIntersection());
if (bridgeConstructionElement.isSetLod4TerrainIntersection())
visit(bridgeConstructionElement.getLod4TerrainIntersection());
if (bridgeConstructionElement.isSetGenericApplicationPropertyOfBridgeConstructionElement())
for (ADEComponent ade : new ArrayList<ADEComponent>(bridgeConstructionElement.getGenericApplicationPropertyOfBridgeConstructionElement()))
visit(ade);
}
public void visit(BridgeFurniture bridgeFurniture) {
visit((AbstractCityObject)bridgeFurniture);
if (bridgeFurniture.isSetLod4Geometry())
visit(bridgeFurniture.getLod4Geometry());
if (bridgeFurniture.isSetLod4ImplicitRepresentation())
visit(bridgeFurniture.getLod4ImplicitRepresentation());
if (bridgeFurniture.isSetGenericApplicationPropertyOfBridgeFurniture())
for (ADEComponent ade : new ArrayList<ADEComponent>(bridgeFurniture.getGenericApplicationPropertyOfBridgeFurniture()))
visit(ade);
}
public void visit(BridgeInstallation bridgeInstallation) {
visit((AbstractCityObject)bridgeInstallation);
if (bridgeInstallation.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty>(bridgeInstallation.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (bridgeInstallation.isSetLod2Geometry())
visit(bridgeInstallation.getLod2Geometry());
if (bridgeInstallation.isSetLod3Geometry())
visit(bridgeInstallation.getLod3Geometry());
if (bridgeInstallation.isSetLod4Geometry())
visit(bridgeInstallation.getLod4Geometry());
if (bridgeInstallation.isSetLod2ImplicitRepresentation())
visit(bridgeInstallation.getLod2ImplicitRepresentation());
if (bridgeInstallation.isSetLod3ImplicitRepresentation())
visit(bridgeInstallation.getLod3ImplicitRepresentation());
if (bridgeInstallation.isSetLod4ImplicitRepresentation())
visit(bridgeInstallation.getLod4ImplicitRepresentation());
if (bridgeInstallation.isSetGenericApplicationPropertyOfBridgeInstallation())
for (ADEComponent ade : new ArrayList<ADEComponent>(bridgeInstallation.getGenericApplicationPropertyOfBridgeInstallation()))
visit(ade);
}
public void visit(BridgePart bridgePart) {
visit((AbstractBridge)bridgePart);
if (bridgePart.isSetGenericApplicationPropertyOfBridgePart())
for (ADEComponent ade : new ArrayList<ADEComponent>(bridgePart.getGenericApplicationPropertyOfBridgePart()))
visit(ade);
}
public void visit(BridgeRoom bridgeRoom) {
visit((AbstractCityObject)bridgeRoom);
if (bridgeRoom.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty>(bridgeRoom.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (bridgeRoom.isSetInteriorFurniture())
for (org.citygml4j.model.citygml.bridge.InteriorFurnitureProperty interiorFurnitureProperty : new ArrayList<org.citygml4j.model.citygml.bridge.InteriorFurnitureProperty>(bridgeRoom.getInteriorFurniture()))
visit(interiorFurnitureProperty);
if (bridgeRoom.isSetBridgeRoomInstallation())
for (IntBridgeInstallationProperty intBridgeInstallationProperty : new ArrayList<IntBridgeInstallationProperty>(bridgeRoom.getBridgeRoomInstallation()))
visit(intBridgeInstallationProperty);
if (bridgeRoom.isSetLod4MultiSurface())
visit(bridgeRoom.getLod4MultiSurface());
if (bridgeRoom.isSetLod4Solid())
visit(bridgeRoom.getLod4Solid());
if (bridgeRoom.isSetGenericApplicationPropertyOfBridgeRoom())
for (ADEComponent ade : new ArrayList<ADEComponent>(bridgeRoom.getGenericApplicationPropertyOfBridgeRoom()))
visit(ade);
}
public void visit(IntBridgeInstallation intBridgeInstallation) {
visit((AbstractCityObject)intBridgeInstallation);
if (intBridgeInstallation.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.bridge.BoundarySurfaceProperty>(intBridgeInstallation.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (intBridgeInstallation.isSetLod4Geometry())
visit(intBridgeInstallation.getLod4Geometry());
if (intBridgeInstallation.isSetLod4ImplicitRepresentation())
visit(intBridgeInstallation.getLod4ImplicitRepresentation());
if (intBridgeInstallation.isSetGenericApplicationPropertyOfIntBridgeInstallation())
for (ADEComponent ade : new ArrayList<ADEComponent>(intBridgeInstallation.getGenericApplicationPropertyOfIntBridgeInstallation()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.CeilingSurface ceilingSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)ceilingSurface);
if (ceilingSurface.isSetGenericApplicationPropertyOfCeilingSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(ceilingSurface.getGenericApplicationPropertyOfCeilingSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.OuterCeilingSurface outerCeilingSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)outerCeilingSurface);
if (outerCeilingSurface.isSetGenericApplicationPropertyOfOuterCeilingSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(outerCeilingSurface.getGenericApplicationPropertyOfOuterCeilingSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.ClosureSurface closureSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)closureSurface);
if (closureSurface.isSetGenericApplicationPropertyOfClosureSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(closureSurface.getGenericApplicationPropertyOfClosureSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.FloorSurface floorSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)floorSurface);
if (floorSurface.isSetGenericApplicationPropertyOfFloorSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(floorSurface.getGenericApplicationPropertyOfFloorSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.OuterFloorSurface outerFloorSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)outerFloorSurface);
if (outerFloorSurface.isSetGenericApplicationPropertyOfOuterFloorSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(outerFloorSurface.getGenericApplicationPropertyOfOuterFloorSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.GroundSurface groundSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)groundSurface);
if (groundSurface.isSetGenericApplicationPropertyOfGroundSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(groundSurface.getGenericApplicationPropertyOfGroundSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.InteriorWallSurface interiorWallSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)interiorWallSurface);
if (interiorWallSurface.isSetGenericApplicationPropertyOfInteriorWallSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(interiorWallSurface.getGenericApplicationPropertyOfInteriorWallSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.RoofSurface roofSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)roofSurface);
if (roofSurface.isSetGenericApplicationPropertyOfRoofSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(roofSurface.getGenericApplicationPropertyOfRoofSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.WallSurface wallSurface) {
visit((org.citygml4j.model.citygml.bridge.AbstractBoundarySurface)wallSurface);
if (wallSurface.isSetGenericApplicationPropertyOfWallSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(wallSurface.getGenericApplicationPropertyOfWallSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.Door door) {
visit((org.citygml4j.model.citygml.bridge.AbstractOpening)door);
if (door.isSetAddress())
for (AddressProperty addressProperty : new ArrayList<AddressProperty>(door.getAddress()))
visit(addressProperty);
if (door.isSetGenericApplicationPropertyOfDoor())
for (ADEComponent ade : new ArrayList<ADEComponent>(door.getGenericApplicationPropertyOfDoor()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.bridge.Window window) {
visit((org.citygml4j.model.citygml.bridge.AbstractOpening)window);
if (window.isSetGenericApplicationPropertyOfWindow())
for (ADEComponent ade : new ArrayList<ADEComponent>(window.getGenericApplicationPropertyOfWindow()))
visit(ade);
}
public void visit(Building building) {
visit((AbstractBuilding)building);
if (building.isSetGenericApplicationPropertyOfBuilding())
for (ADEComponent ade : new ArrayList<ADEComponent>(building.getGenericApplicationPropertyOfBuilding()))
visit(ade);
}
public void visit(BuildingFurniture buildingFurniture) {
visit((AbstractCityObject)buildingFurniture);
if (buildingFurniture.isSetLod4Geometry())
visit(buildingFurniture.getLod4Geometry());
if (buildingFurniture.isSetLod4ImplicitRepresentation())
visit(buildingFurniture.getLod4ImplicitRepresentation());
if (buildingFurniture.isSetGenericApplicationPropertyOfBuildingFurniture())
for (ADEComponent ade : new ArrayList<ADEComponent>(buildingFurniture.getGenericApplicationPropertyOfBuildingFurniture()))
visit(ade);
}
public void visit(BuildingInstallation buildingInstallation) {
visit((AbstractCityObject)buildingInstallation);
if (buildingInstallation.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.building.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.building.BoundarySurfaceProperty>(buildingInstallation.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (buildingInstallation.isSetLod2Geometry())
visit(buildingInstallation.getLod2Geometry());
if (buildingInstallation.isSetLod3Geometry())
visit(buildingInstallation.getLod3Geometry());
if (buildingInstallation.isSetLod4Geometry())
visit(buildingInstallation.getLod4Geometry());
if (buildingInstallation.isSetLod2ImplicitRepresentation())
visit(buildingInstallation.getLod2ImplicitRepresentation());
if (buildingInstallation.isSetLod3ImplicitRepresentation())
visit(buildingInstallation.getLod3ImplicitRepresentation());
if (buildingInstallation.isSetLod4ImplicitRepresentation())
visit(buildingInstallation.getLod4ImplicitRepresentation());
if (buildingInstallation.isSetGenericApplicationPropertyOfBuildingInstallation())
for (ADEComponent ade : new ArrayList<ADEComponent>(buildingInstallation.getGenericApplicationPropertyOfBuildingInstallation()))
visit(ade);
}
public void visit(BuildingPart buildingPart) {
visit((AbstractBuilding)buildingPart);
if (buildingPart.isSetGenericApplicationPropertyOfBuildingPart())
for (ADEComponent ade : new ArrayList<ADEComponent>(buildingPart.getGenericApplicationPropertyOfBuildingPart()))
visit(ade);
}
public void visit(IntBuildingInstallation intBuildingInstallation) {
visit((AbstractCityObject)intBuildingInstallation);
if (intBuildingInstallation.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.building.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.building.BoundarySurfaceProperty>(intBuildingInstallation.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (intBuildingInstallation.isSetLod4Geometry())
visit(intBuildingInstallation.getLod4Geometry());
if (intBuildingInstallation.isSetLod4ImplicitRepresentation())
visit(intBuildingInstallation.getLod4ImplicitRepresentation());
if (intBuildingInstallation.isSetGenericApplicationPropertyOfIntBuildingInstallation())
for (ADEComponent ade : new ArrayList<ADEComponent>(intBuildingInstallation.getGenericApplicationPropertyOfIntBuildingInstallation()))
visit(ade);
}
public void visit(Room room) {
visit((AbstractCityObject)room);
if (room.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.building.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.building.BoundarySurfaceProperty>(room.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (room.isSetInteriorFurniture())
for (org.citygml4j.model.citygml.building.InteriorFurnitureProperty interiorFurnitureProperty : new ArrayList<org.citygml4j.model.citygml.building.InteriorFurnitureProperty>(room.getInteriorFurniture()))
visit(interiorFurnitureProperty);
if (room.isSetRoomInstallation())
for (IntBuildingInstallationProperty intBuildingInstallationProperty : new ArrayList<IntBuildingInstallationProperty>(room.getRoomInstallation()))
visit(intBuildingInstallationProperty);
if (room.isSetLod4MultiSurface())
visit(room.getLod4MultiSurface());
if (room.isSetLod4Solid())
visit(room.getLod4Solid());
if (room.isSetGenericApplicationPropertyOfRoom())
for (ADEComponent ade : new ArrayList<ADEComponent>(room.getGenericApplicationPropertyOfRoom()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.CeilingSurface ceilingSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)ceilingSurface);
if (ceilingSurface.isSetGenericApplicationPropertyOfCeilingSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(ceilingSurface.getGenericApplicationPropertyOfCeilingSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.OuterCeilingSurface outerCeilingSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)outerCeilingSurface);
if (outerCeilingSurface.isSetGenericApplicationPropertyOfOuterCeilingSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(outerCeilingSurface.getGenericApplicationPropertyOfOuterCeilingSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.ClosureSurface closureSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)closureSurface);
if (closureSurface.isSetGenericApplicationPropertyOfClosureSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(closureSurface.getGenericApplicationPropertyOfClosureSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.FloorSurface floorSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)floorSurface);
if (floorSurface.isSetGenericApplicationPropertyOfFloorSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(floorSurface.getGenericApplicationPropertyOfFloorSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.OuterFloorSurface outerFloorSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)outerFloorSurface);
if (outerFloorSurface.isSetGenericApplicationPropertyOfOuterFloorSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(outerFloorSurface.getGenericApplicationPropertyOfOuterFloorSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.GroundSurface groundSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)groundSurface);
if (groundSurface.isSetGenericApplicationPropertyOfGroundSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(groundSurface.getGenericApplicationPropertyOfGroundSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.InteriorWallSurface interiorWallSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)interiorWallSurface);
if (interiorWallSurface.isSetGenericApplicationPropertyOfInteriorWallSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(interiorWallSurface.getGenericApplicationPropertyOfInteriorWallSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.RoofSurface roofSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)roofSurface);
if (roofSurface.isSetGenericApplicationPropertyOfRoofSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(roofSurface.getGenericApplicationPropertyOfRoofSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.WallSurface wallSurface) {
visit((org.citygml4j.model.citygml.building.AbstractBoundarySurface)wallSurface);
if (wallSurface.isSetGenericApplicationPropertyOfWallSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(wallSurface.getGenericApplicationPropertyOfWallSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.Door door) {
visit((org.citygml4j.model.citygml.building.AbstractOpening)door);
if (door.isSetAddress())
for (AddressProperty addressProperty : new ArrayList<AddressProperty>(door.getAddress()))
visit(addressProperty);
if (door.isSetGenericApplicationPropertyOfDoor())
for (ADEComponent ade : new ArrayList<ADEComponent>(door.getGenericApplicationPropertyOfDoor()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.building.Window window) {
visit((org.citygml4j.model.citygml.building.AbstractOpening)window);
if (window.isSetGenericApplicationPropertyOfWindow())
for (ADEComponent ade : new ArrayList<ADEComponent>(window.getGenericApplicationPropertyOfWindow()))
visit(ade);
}
public void visit(HollowSpace hollowSpace) {
visit((AbstractCityObject)hollowSpace);
if (hollowSpace.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty>(hollowSpace.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (hollowSpace.isSetInteriorFurniture())
for (org.citygml4j.model.citygml.tunnel.InteriorFurnitureProperty interiorFurnitureProperty : new ArrayList<org.citygml4j.model.citygml.tunnel.InteriorFurnitureProperty>(hollowSpace.getInteriorFurniture()))
visit(interiorFurnitureProperty);
if (hollowSpace.isSetHollowSpaceInstallation())
for (IntTunnelInstallationProperty intTunnelInstallationProperty : new ArrayList<IntTunnelInstallationProperty>(hollowSpace.getHollowSpaceInstallation()))
visit(intTunnelInstallationProperty);
if (hollowSpace.isSetLod4MultiSurface())
visit(hollowSpace.getLod4MultiSurface());
if (hollowSpace.isSetLod4Solid())
visit(hollowSpace.getLod4Solid());
if (hollowSpace.isSetGenericApplicationPropertyOfHollowSpace())
for (ADEComponent ade : new ArrayList<ADEComponent>(hollowSpace.getGenericApplicationPropertyOfHollowSpace()))
visit(ade);
}
public void visit(IntTunnelInstallation intTunnelInstallation) {
visit((AbstractCityObject)intTunnelInstallation);
if (intTunnelInstallation.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty>(intTunnelInstallation.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (intTunnelInstallation.isSetLod4Geometry())
visit(intTunnelInstallation.getLod4Geometry());
if (intTunnelInstallation.isSetLod4ImplicitRepresentation())
visit(intTunnelInstallation.getLod4ImplicitRepresentation());
if (intTunnelInstallation.isSetGenericApplicationPropertyOfIntTunnelInstallation())
for (ADEComponent ade : new ArrayList<ADEComponent>(intTunnelInstallation.getGenericApplicationPropertyOfIntTunnelInstallation()))
visit(ade);
}
public void visit(Tunnel tunnel) {
visit((AbstractTunnel)tunnel);
if (tunnel.isSetGenericApplicationPropertyOfTunnel())
for (ADEComponent ade : new ArrayList<ADEComponent>(tunnel.getGenericApplicationPropertyOfTunnel()))
visit(ade);
}
public void visit(TunnelFurniture tunnelFurniture) {
visit((AbstractCityObject)tunnelFurniture);
if (tunnelFurniture.isSetLod4Geometry())
visit(tunnelFurniture.getLod4Geometry());
if (tunnelFurniture.isSetLod4ImplicitRepresentation())
visit(tunnelFurniture.getLod4ImplicitRepresentation());
if (tunnelFurniture.isSetGenericApplicationPropertyOfTunnelFurniture())
for (ADEComponent ade : new ArrayList<ADEComponent>(tunnelFurniture.getGenericApplicationPropertyOfTunnelFurniture()))
visit(ade);
}
public void visit(TunnelInstallation tunnelInstallation) {
visit((AbstractCityObject)tunnelInstallation);
if (tunnelInstallation.isSetBoundedBySurface())
for (org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty boundarySurfaceProperty : new ArrayList<org.citygml4j.model.citygml.tunnel.BoundarySurfaceProperty>(tunnelInstallation.getBoundedBySurface()))
visit(boundarySurfaceProperty);
if (tunnelInstallation.isSetLod2Geometry())
visit(tunnelInstallation.getLod2Geometry());
if (tunnelInstallation.isSetLod3Geometry())
visit(tunnelInstallation.getLod3Geometry());
if (tunnelInstallation.isSetLod4Geometry())
visit(tunnelInstallation.getLod4Geometry());
if (tunnelInstallation.isSetLod2ImplicitRepresentation())
visit(tunnelInstallation.getLod2ImplicitRepresentation());
if (tunnelInstallation.isSetLod3ImplicitRepresentation())
visit(tunnelInstallation.getLod3ImplicitRepresentation());
if (tunnelInstallation.isSetLod4ImplicitRepresentation())
visit(tunnelInstallation.getLod4ImplicitRepresentation());
if (tunnelInstallation.isSetGenericApplicationPropertyOfTunnelInstallation())
for (ADEComponent ade : new ArrayList<ADEComponent>(tunnelInstallation.getGenericApplicationPropertyOfTunnelInstallation()))
visit(ade);
}
public void visit(TunnelPart tunnelPart) {
visit((AbstractTunnel)tunnelPart);
if (tunnelPart.isSetGenericApplicationPropertyOfTunnelPart())
for (ADEComponent ade : new ArrayList<ADEComponent>(tunnelPart.getGenericApplicationPropertyOfTunnelPart()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.CeilingSurface ceilingSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)ceilingSurface);
if (ceilingSurface.isSetGenericApplicationPropertyOfCeilingSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(ceilingSurface.getGenericApplicationPropertyOfCeilingSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.OuterCeilingSurface outerCeilingSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)outerCeilingSurface);
if (outerCeilingSurface.isSetGenericApplicationPropertyOfOuterCeilingSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(outerCeilingSurface.getGenericApplicationPropertyOfOuterCeilingSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.ClosureSurface closureSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)closureSurface);
if (closureSurface.isSetGenericApplicationPropertyOfClosureSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(closureSurface.getGenericApplicationPropertyOfClosureSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.FloorSurface floorSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)floorSurface);
if (floorSurface.isSetGenericApplicationPropertyOfFloorSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(floorSurface.getGenericApplicationPropertyOfFloorSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.OuterFloorSurface outerFloorSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)outerFloorSurface);
if (outerFloorSurface.isSetGenericApplicationPropertyOfOuterFloorSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(outerFloorSurface.getGenericApplicationPropertyOfOuterFloorSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.GroundSurface groundSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)groundSurface);
if (groundSurface.isSetGenericApplicationPropertyOfGroundSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(groundSurface.getGenericApplicationPropertyOfGroundSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.InteriorWallSurface interiorWallSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)interiorWallSurface);
if (interiorWallSurface.isSetGenericApplicationPropertyOfInteriorWallSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(interiorWallSurface.getGenericApplicationPropertyOfInteriorWallSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.RoofSurface roofSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)roofSurface);
if (roofSurface.isSetGenericApplicationPropertyOfRoofSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(roofSurface.getGenericApplicationPropertyOfRoofSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.WallSurface wallSurface) {
visit((org.citygml4j.model.citygml.tunnel.AbstractBoundarySurface)wallSurface);
if (wallSurface.isSetGenericApplicationPropertyOfWallSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(wallSurface.getGenericApplicationPropertyOfWallSurface()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.Door door) {
visit((org.citygml4j.model.citygml.tunnel.AbstractOpening)door);
if (door.isSetGenericApplicationPropertyOfDoor())
for (ADEComponent ade : new ArrayList<ADEComponent>(door.getGenericApplicationPropertyOfDoor()))
visit(ade);
}
public void visit(org.citygml4j.model.citygml.tunnel.Window window) {
visit((org.citygml4j.model.citygml.tunnel.AbstractOpening)window);
if (window.isSetGenericApplicationPropertyOfWindow())
for (ADEComponent ade : new ArrayList<ADEComponent>(window.getGenericApplicationPropertyOfWindow()))
visit(ade);
}
public void visit(CityFurniture cityFurniture) {
visit((AbstractCityObject)cityFurniture);
if (cityFurniture.isSetLod1Geometry())
visit(cityFurniture.getLod1Geometry());
if (cityFurniture.isSetLod2Geometry())
visit(cityFurniture.getLod2Geometry());
if (cityFurniture.isSetLod3Geometry())
visit(cityFurniture.getLod3Geometry());
if (cityFurniture.isSetLod4Geometry())
visit(cityFurniture.getLod4Geometry());
if (cityFurniture.isSetLod1TerrainIntersection())
visit(cityFurniture.getLod1TerrainIntersection());
if (cityFurniture.isSetLod2TerrainIntersection())
visit(cityFurniture.getLod2TerrainIntersection());
if (cityFurniture.isSetLod3TerrainIntersection())
visit(cityFurniture.getLod3TerrainIntersection());
if (cityFurniture.isSetLod4TerrainIntersection())
visit(cityFurniture.getLod4TerrainIntersection());
if (cityFurniture.isSetLod1ImplicitRepresentation())
visit(cityFurniture.getLod1ImplicitRepresentation());
if (cityFurniture.isSetLod2ImplicitRepresentation())
visit(cityFurniture.getLod2ImplicitRepresentation());
if (cityFurniture.isSetLod3ImplicitRepresentation())
visit(cityFurniture.getLod3ImplicitRepresentation());
if (cityFurniture.isSetLod4ImplicitRepresentation())
visit(cityFurniture.getLod4ImplicitRepresentation());
if (cityFurniture.isSetGenericApplicationPropertyOfCityFurniture())
for (ADEComponent ade : new ArrayList<ADEComponent>(cityFurniture.getGenericApplicationPropertyOfCityFurniture()))
visit(ade);
}
public void visit(CityObjectGroup cityObjectGroup) {
visit((AbstractCityObject)cityObjectGroup);
if (cityObjectGroup.isSetGroupMember())
for (CityObjectGroupMember cityObjectGroupMember : new ArrayList<CityObjectGroupMember>(cityObjectGroup.getGroupMember()))
visit(cityObjectGroupMember);
if (cityObjectGroup.isSetGroupParent())
visit(cityObjectGroup.getGroupParent());
if (cityObjectGroup.isSetGeometry())
visit(cityObjectGroup.getGeometry());
if (cityObjectGroup.isSetGenericApplicationPropertyOfCityObjectGroup())
for (ADEComponent ade : new ArrayList<ADEComponent>(cityObjectGroup.getGenericApplicationPropertyOfCityObjectGroup()))
visit(ade);
}
public void visit(Address address) {
visit((AbstractFeature)address);
if (address.isSetMultiPoint())
visit(address.getMultiPoint());
if (address.isSetGenericApplicationPropertyOfAddress())
for (ADEComponent ade : new ArrayList<ADEComponent>(address.getGenericApplicationPropertyOfAddress()))
visit(ade);
}
public void visit(CityModel cityModel) {
visit((AbstractFeatureCollection)cityModel);
if (cityModel.isSetCityObjectMember())
for (CityObjectMember member : new ArrayList<CityObjectMember>(cityModel.getCityObjectMember()))
visit(member);
if (cityModel.isSetAppearanceMember())
for (AppearanceProperty member : new ArrayList<AppearanceProperty>(cityModel.getAppearanceMember()))
visit(member);
if (cityModel.isSetGenericApplicationPropertyOfCityModel())
for (ADEComponent ade : new ArrayList<ADEComponent>(cityModel.getGenericApplicationPropertyOfCityModel()))
visit(ade);
}
public void visit(GenericCityObject genericCityObject) {
visit((AbstractCityObject)genericCityObject);
if (genericCityObject.isSetLod0Geometry())
visit(genericCityObject.getLod0Geometry());
if (genericCityObject.isSetLod1Geometry())
visit(genericCityObject.getLod1Geometry());
if (genericCityObject.isSetLod2Geometry())
visit(genericCityObject.getLod2Geometry());
if (genericCityObject.isSetLod3Geometry())
visit(genericCityObject.getLod3Geometry());
if (genericCityObject.isSetLod4Geometry())
visit(genericCityObject.getLod4Geometry());
if (genericCityObject.isSetLod0TerrainIntersection())
visit(genericCityObject.getLod0TerrainIntersection());
if (genericCityObject.isSetLod1TerrainIntersection())
visit(genericCityObject.getLod1TerrainIntersection());
if (genericCityObject.isSetLod2TerrainIntersection())
visit(genericCityObject.getLod2TerrainIntersection());
if (genericCityObject.isSetLod3TerrainIntersection())
visit(genericCityObject.getLod3TerrainIntersection());
if (genericCityObject.isSetLod4TerrainIntersection())
visit(genericCityObject.getLod4TerrainIntersection());
if (genericCityObject.isSetLod0ImplicitRepresentation())
visit(genericCityObject.getLod0ImplicitRepresentation());
if (genericCityObject.isSetLod1ImplicitRepresentation())
visit(genericCityObject.getLod1ImplicitRepresentation());
if (genericCityObject.isSetLod2ImplicitRepresentation())
visit(genericCityObject.getLod2ImplicitRepresentation());
if (genericCityObject.isSetLod3ImplicitRepresentation())
visit(genericCityObject.getLod3ImplicitRepresentation());
if (genericCityObject.isSetLod4ImplicitRepresentation())
visit(genericCityObject.getLod4ImplicitRepresentation());
}
public void visit(LandUse landUse) {
visit((AbstractCityObject)landUse);
if (landUse.isSetLod0MultiSurface())
visit(landUse.getLod0MultiSurface());
if (landUse.isSetLod1MultiSurface())
visit(landUse.getLod1MultiSurface());
if (landUse.isSetLod2MultiSurface())
visit(landUse.getLod2MultiSurface());
if (landUse.isSetLod3MultiSurface())
visit(landUse.getLod3MultiSurface());
if (landUse.isSetLod4MultiSurface())
visit(landUse.getLod4MultiSurface());
if (landUse.isSetGenericApplicationPropertyOfLandUse())
for (ADEComponent ade : new ArrayList<ADEComponent>(landUse.getGenericApplicationPropertyOfLandUse()))
visit(ade);
}
public void visit(BreaklineRelief breaklineRelief) {
visit((AbstractReliefComponent)breaklineRelief);
if (breaklineRelief.isSetBreaklines())
visit(breaklineRelief.getBreaklines());
if (breaklineRelief.isSetRidgeOrValleyLines())
visit(breaklineRelief.getRidgeOrValleyLines());
if (breaklineRelief.isSetGenericApplicationPropertyOfBreaklineRelief())
for (ADEComponent ade : new ArrayList<ADEComponent>(breaklineRelief.getGenericApplicationPropertyOfBreaklineRelief()))
visit(ade);
}
public void visit(MassPointRelief massPointRelief) {
visit((AbstractReliefComponent)massPointRelief);
if (massPointRelief.isSetReliefPoints())
visit(massPointRelief.getReliefPoints());
if (massPointRelief.isSetGenericApplicationPropertyOfMassPointRelief())
for (ADEComponent ade : new ArrayList<ADEComponent>(massPointRelief.getGenericApplicationPropertyOfMassPointRelief()))
visit(ade);
}
public void visit(RasterRelief rasterRelief) {
visit((AbstractReliefComponent)rasterRelief);
if (rasterRelief.isSetGrid())
visit(rasterRelief.getGrid());
if (rasterRelief.isSetGenericApplicationPropertyOfRasterRelief())
for (ADEComponent ade : new ArrayList<ADEComponent>(rasterRelief.getGenericApplicationPropertyOfRasterRelief()))
visit(ade);
}
public void visit(ReliefFeature reliefFeature) {
visit((AbstractCityObject)reliefFeature);
if (reliefFeature.isSetReliefComponent())
for (ReliefComponentProperty reliefComponentProperty : new ArrayList<ReliefComponentProperty>(reliefFeature.getReliefComponent()))
visit(reliefComponentProperty);
if (reliefFeature.isSetGenericApplicationPropertyOfReliefFeature())
for (ADEComponent ade : new ArrayList<ADEComponent>(reliefFeature.getGenericApplicationPropertyOfReliefFeature()))
visit(ade);
}
public void visit(TINRelief tinRelief) {
visit((AbstractReliefComponent)tinRelief);
if (tinRelief.isSetTin())
visit(tinRelief.getTin());
if (tinRelief.isSetGenericApplicationPropertyOfTinRelief())
for (ADEComponent ade : new ArrayList<ADEComponent>(tinRelief.getGenericApplicationPropertyOfTinRelief()))
visit(ade);
}
public void visit(AuxiliaryTrafficArea auxiliaryTrafficArea) {
visit((AbstractTransportationObject)auxiliaryTrafficArea);
if (auxiliaryTrafficArea.isSetLod2MultiSurface())
visit(auxiliaryTrafficArea.getLod2MultiSurface());
if (auxiliaryTrafficArea.isSetLod3MultiSurface())
visit(auxiliaryTrafficArea.getLod3MultiSurface());
if (auxiliaryTrafficArea.isSetLod4MultiSurface())
visit(auxiliaryTrafficArea.getLod4MultiSurface());
if (auxiliaryTrafficArea.isSetGenericApplicationPropertyOfAuxiliaryTrafficArea())
for (ADEComponent ade : new ArrayList<ADEComponent>(auxiliaryTrafficArea.getGenericApplicationPropertyOfAuxiliaryTrafficArea()))
visit(ade);
}
public void visit(Railway railway) {
visit((TransportationComplex)railway);
if (railway.isSetGenericApplicationPropertyOfRailway())
for (ADEComponent ade : new ArrayList<ADEComponent>(railway.getGenericApplicationPropertyOfRailway()))
visit(ade);
}
public void visit(RectifiedGridCoverage rectifiedGridCoverage) {
visit((AbstractDiscreteCoverage)rectifiedGridCoverage);
if (rectifiedGridCoverage.isSetRectifiedGridDomain())
visit(rectifiedGridCoverage.getRectifiedGridDomain());
}
public void visit(Road road) {
visit((TransportationComplex)road);
if (road.isSetGenericApplicationPropertyOfRoad())
for (ADEComponent ade : new ArrayList<ADEComponent>(road.getGenericApplicationPropertyOfRoad()))
visit(ade);
}
public void visit(Square square) {
visit((TransportationComplex)square);
if (square.isSetGenericApplicationPropertyOfSquare())
for (ADEComponent ade : new ArrayList<ADEComponent>(square.getGenericApplicationPropertyOfSquare()))
visit(ade);
}
public void visit(Track track) {
visit((TransportationComplex)track);
if (track.isSetGenericApplicationPropertyOfTrack())
for (ADEComponent ade : new ArrayList<ADEComponent>(track.getGenericApplicationPropertyOfTrack()))
visit(ade);
}
public void visit(TrafficArea trafficArea) {
visit((AbstractTransportationObject)trafficArea);
if (trafficArea.isSetLod2MultiSurface())
visit(trafficArea.getLod2MultiSurface());
if (trafficArea.isSetLod3MultiSurface())
visit(trafficArea.getLod3MultiSurface());
if (trafficArea.isSetLod4MultiSurface())
visit(trafficArea.getLod4MultiSurface());
if (trafficArea.isSetGenericApplicationPropertyOfTrafficArea())
for (ADEComponent ade : new ArrayList<ADEComponent>(trafficArea.getGenericApplicationPropertyOfTrafficArea()))
visit(ade);
}
public void visit(TransportationComplex transportationComplex) {
visit((AbstractTransportationObject)transportationComplex);
if (transportationComplex.isSetTrafficArea())
for (TrafficAreaProperty trafficAreaProperty : new ArrayList<TrafficAreaProperty>(transportationComplex.getTrafficArea()))
visit(trafficAreaProperty);
if (transportationComplex.isSetAuxiliaryTrafficArea())
for (AuxiliaryTrafficAreaProperty auxiliaryTrafficAreaProperty : new ArrayList<AuxiliaryTrafficAreaProperty>(transportationComplex.getAuxiliaryTrafficArea()))
visit(auxiliaryTrafficAreaProperty);
if (transportationComplex.isSetLod0Network())
for (GeometricComplexProperty geometricComplexProperty : new ArrayList<GeometricComplexProperty>(transportationComplex.getLod0Network()))
visit(geometricComplexProperty);
if (transportationComplex.isSetLod1MultiSurface())
visit(transportationComplex.getLod1MultiSurface());
if (transportationComplex.isSetLod2MultiSurface())
visit(transportationComplex.getLod2MultiSurface());
if (transportationComplex.isSetLod3MultiSurface())
visit(transportationComplex.getLod3MultiSurface());
if (transportationComplex.isSetLod4MultiSurface())
visit(transportationComplex.getLod4MultiSurface());
if (transportationComplex.isSetGenericApplicationPropertyOfTransportationComplex())
for (ADEComponent ade : new ArrayList<ADEComponent>(transportationComplex.getGenericApplicationPropertyOfTransportationComplex()))
visit(ade);
}
public void visit(PlantCover plantCover) {
visit((AbstractVegetationObject)plantCover);
if (plantCover.isSetLod1MultiSurface())
visit(plantCover.getLod1MultiSurface());
if (plantCover.isSetLod2MultiSurface())
visit(plantCover.getLod2MultiSurface());
if (plantCover.isSetLod3MultiSurface())
visit(plantCover.getLod3MultiSurface());
if (plantCover.isSetLod4MultiSurface())
visit(plantCover.getLod4MultiSurface());
if (plantCover.isSetLod1MultiSolid())
visit(plantCover.getLod1MultiSolid());
if (plantCover.isSetLod2MultiSolid())
visit(plantCover.getLod2MultiSolid());
if (plantCover.isSetLod3MultiSolid())
visit(plantCover.getLod3MultiSolid());
if (plantCover.isSetLod4MultiSolid())
visit(plantCover.getLod4MultiSolid());
if (plantCover.isSetGenericApplicationPropertyOfPlantCover())
for (ADEComponent ade : new ArrayList<ADEComponent>(plantCover.getGenericApplicationPropertyOfPlantCover()))
visit(ade);
}
public void visit(SolitaryVegetationObject solitaryVegetationObject) {
visit((AbstractVegetationObject)solitaryVegetationObject);
if (solitaryVegetationObject.isSetLod1Geometry())
visit(solitaryVegetationObject.getLod1Geometry());
if (solitaryVegetationObject.isSetLod2Geometry())
visit(solitaryVegetationObject.getLod2Geometry());
if (solitaryVegetationObject.isSetLod3Geometry())
visit(solitaryVegetationObject.getLod3Geometry());
if (solitaryVegetationObject.isSetLod4Geometry())
visit(solitaryVegetationObject.getLod4Geometry());
if (solitaryVegetationObject.isSetLod1ImplicitRepresentation())
visit(solitaryVegetationObject.getLod1ImplicitRepresentation());
if (solitaryVegetationObject.isSetLod2ImplicitRepresentation())
visit(solitaryVegetationObject.getLod2ImplicitRepresentation());
if (solitaryVegetationObject.isSetLod3ImplicitRepresentation())
visit(solitaryVegetationObject.getLod3ImplicitRepresentation());
if (solitaryVegetationObject.isSetLod4ImplicitRepresentation())
visit(solitaryVegetationObject.getLod4ImplicitRepresentation());
if (solitaryVegetationObject.isSetGenericApplicationPropertyOfSolitaryVegetationObject())
for (ADEComponent ade : new ArrayList<ADEComponent>(solitaryVegetationObject.getGenericApplicationPropertyOfVegetationObject()))
visit(ade);
}
public void visit(WaterBody waterBody) {
visit((AbstractWaterObject)waterBody);
if (waterBody.isSetBoundedBySurface())
for (BoundedByWaterSurfaceProperty boundedByWaterSurfaceProperty : new ArrayList<BoundedByWaterSurfaceProperty>(waterBody.getBoundedBySurface()))
visit(boundedByWaterSurfaceProperty);
if (waterBody.isSetLod0MultiCurve())
visit(waterBody.getLod0MultiCurve());
if (waterBody.isSetLod1MultiCurve())
visit(waterBody.getLod1MultiCurve());
if (waterBody.isSetLod0MultiSurface())
visit(waterBody.getLod0MultiSurface());
if (waterBody.isSetLod1MultiSurface())
visit(waterBody.getLod1MultiSurface());
if (waterBody.isSetLod1Solid())
visit(waterBody.getLod1Solid());
if (waterBody.isSetLod2Solid())
visit(waterBody.getLod2Solid());
if (waterBody.isSetLod3Solid())
visit(waterBody.getLod3Solid());
if (waterBody.isSetLod4Solid())
visit(waterBody.getLod4Solid());
if (waterBody.isSetGenericApplicationPropertyOfWaterBody())
for (ADEComponent ade : new ArrayList<ADEComponent>(waterBody.getGenericApplicationPropertyOfWaterBody()))
visit(ade);
}
public void visit(WaterClosureSurface waterClosureSurface) {
visit((AbstractWaterBoundarySurface)waterClosureSurface);
if (waterClosureSurface.isSetGenericApplicationPropertyOfWaterClosureSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(waterClosureSurface.getGenericApplicationPropertyOfWaterClosureSurface()))
visit(ade);
}
public void visit(WaterGroundSurface waterGroundSurface) {
visit((AbstractWaterBoundarySurface)waterGroundSurface);
if (waterGroundSurface.isSetGenericApplicationPropertyOfWaterGroundSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(waterGroundSurface.getGenericApplicationPropertyOfWaterGroundSurface()))
visit(ade);
}
public void visit(WaterSurface waterSurface) {
visit((AbstractWaterBoundarySurface)waterSurface);
if (waterSurface.isSetGenericApplicationPropertyOfWaterSurface())
for (ADEComponent ade : new ArrayList<ADEComponent>(waterSurface.getGenericApplicationPropertyOfWaterSurface()))
visit(ade);
}
public void visit(AbstractTextureParameterization abstractTextureParameterization) {
visit((AbstractGML)abstractTextureParameterization);
if (abstractTextureParameterization.isSetGenericApplicationPropertyOfTextureParameterization())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractTextureParameterization.getGenericApplicationPropertyOfTextureParameterization()))
visit(ade);
if (abstractTextureParameterization.isSetGenericADEComponent())
for (ADEComponent ade : new ArrayList<ADEComponent>(abstractTextureParameterization.getGenericADEComponent()))
visit(ade);
}
public void visit(_AbstractAppearance abstractAppearance) {
visit((AbstractGML)abstractAppearance);
}
public void visit(CompositeValue compositeValue) {
visit((AbstractGML)compositeValue);
if (compositeValue.isSetValueComponent()) {
for (ValueProperty valueProperty : new ArrayList<ValueProperty>(compositeValue.getValueComponent())) {
if (valueProperty.isSetValue())
visit(valueProperty.getValue());
}
}
if (compositeValue.isSetValueComponents()) {
ValueArrayProperty valueArrayProperty = compositeValue.getValueComponents();
if (valueArrayProperty.isSetValue()) {
for (Value value : new ArrayList<Value>(valueArrayProperty.getValue()))
visit(value);
}
}
}
public void visit(ValueArray valueArray) {
visit((CompositeValue)valueArray);
}
public void visit(TexCoordGen texCoordGen) {
visit((AbstractTextureParameterization)texCoordGen);
if (texCoordGen.isSetGenericApplicationPropertyOfTexCoordGen())
for (ADEComponent ade : new ArrayList<ADEComponent>(texCoordGen.getGenericApplicationPropertyOfTexCoordGen()))
visit(ade);
}
public void visit(TexCoordList texCoordList) {
visit((AbstractTextureParameterization)texCoordList);
if (texCoordList.isSetGenericApplicationPropertyOfTexCoordList())
for (ADEComponent ade : new ArrayList<ADEComponent>(texCoordList.getGenericApplicationPropertyOfTexCoordList()))
visit(ade);
}
public void visit(ImplicitGeometry implicitGeometry) {
visit((AbstractGML)implicitGeometry);
if (implicitGeometry.isSetRelativeGMLGeometry())
visit(implicitGeometry.getRelativeGMLGeometry());
if (implicitGeometry.isSetReferencePoint())
visit(implicitGeometry.getReferencePoint());
}
public void visit(_Material material) {
visit((_AbstractAppearance)material);
}
public void visit(_SimpleTexture simpleTexture) {
visit((_AbstractAppearance)simpleTexture);
}
public <T extends AbstractGML> void visit(AssociationByRep<T> association) {
if (association.isSetObject() && shouldWalk && visited.add(association.getObject()))
association.getObject().accept(this);
}
public <T extends AbstractGML> void visit(AssociationByRepOrRef<T> association) {
visit((AssociationByRep<T>)association);
}
public <T extends AbstractFeature> void visit(FeatureProperty<T> featureProperty) {
if (featureProperty.isSetFeature() && shouldWalk && visited.add(featureProperty.getFeature()))
featureProperty.getFeature().accept(this);
if (featureProperty.isSetGenericADEComponent())
visit(featureProperty.getGenericADEComponent());
}
public void visit(FeatureArrayProperty featureArrayProperty) {
if (featureArrayProperty.isSetFeature()) {
for (AbstractFeature feature : new ArrayList<AbstractFeature>(featureArrayProperty.getFeature()))
if (shouldWalk && visited.add(feature))
feature.accept(this);
if (featureArrayProperty.isSetGenericADEComponent())
for (ADEComponent ade : new ArrayList<ADEComponent>(featureArrayProperty.getGenericADEComponent()))
visit(ade);
}
}
public <T extends AbstractGeometry> void visit(GeometryProperty<T> geometryProperty) {
if (geometryProperty.isSetGeometry() && shouldWalk && visited.add(geometryProperty.getGeometry()))
geometryProperty.getGeometry().accept(this);
}
public <T extends AbstractGeometry> void visit(InlineGeometryProperty<T> geometryProperty) {
if (geometryProperty.isSetGeometry() && shouldWalk && visited.add(geometryProperty.getGeometry()))
geometryProperty.getGeometry().accept(this);
}
public <T extends AbstractGeometry> void visit(GeometryArrayProperty<T> geometryArrayProperty) {
if (geometryArrayProperty.isSetGeometry()) {
for (AbstractGeometry abstractGeometry : new ArrayList<AbstractGeometry>(geometryArrayProperty.getGeometry()))
if (shouldWalk && visited.add(abstractGeometry))
abstractGeometry.accept(this);
}
}
public void visit(SurfacePatchArrayProperty surfacePatchArrayProperty) {
if (surfacePatchArrayProperty.isSetSurfacePatch())
for (AbstractSurfacePatch abstractSurfacePatch : new ArrayList<AbstractSurfacePatch>(surfacePatchArrayProperty.getSurfacePatch())) {
if (shouldWalk && visited.add(abstractSurfacePatch)) {
if (abstractSurfacePatch instanceof Triangle)
visit((Triangle)abstractSurfacePatch);
else if (abstractSurfacePatch instanceof Rectangle)
visit((Rectangle)abstractSurfacePatch);
}
}
}
public void visit(Element element, ElementDecl decl) {
iterateNodeList(element, decl);
}
public void visit(ADEComponent adeComponent) {
if (adeComponent.isSetContent() && shouldWalk && visited.add(adeComponent.getContent()) && schemaHandler != null)
adeComponent(adeComponent.getContent(), null);
}
protected void adeComponent(Element element, ElementDecl decl) {
Schema schema = schemaHandler.getSchema(element.getNamespaceURI());
if (schema != null) {
decl = schema.getElementDecl(element.getLocalName(), decl);
if (decl != null && (decl.isAbstractGML() || decl.isFeatureProperty() || decl.isGeometryProperty()))
visit(element, decl);
else
iterateNodeList(element, decl);
}
}
protected void iterateNodeList(Element element, ElementDecl decl) {
NodeList nodeList = element.getChildNodes();
List<Element> children = new ArrayList<Element>(nodeList.getLength());
for (int i = 0; i < nodeList.getLength(); ++i) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE)
children.add((Element)node);
}
for (Element child : children)
if (shouldWalk && visited.add(child))
adeComponent((Element)child, decl);
}
protected void visit(Value value) {
if (value.isSetGeometry() && shouldWalk && visited.add(value.getGeometry()))
value.getGeometry().accept(this);
else if (value.isSetValueObject())
visit(value.getValueObject());
}
protected void visit(ValueObject valueObject) {
if (valueObject.isSetCompositeValue())
valueObject.getCompositeValue().accept(this);
}
}