/* * 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.model.common.visitor; import org.citygml4j.model.citygml.ade.ADEComponent; import org.citygml4j.model.citygml.appearance.Appearance; import org.citygml4j.model.citygml.appearance.GeoreferencedTexture; import org.citygml4j.model.citygml.appearance.ParameterizedTexture; import org.citygml4j.model.citygml.appearance.X3DMaterial; import org.citygml4j.model.citygml.bridge.Bridge; import org.citygml4j.model.citygml.bridge.BridgeConstructionElement; import org.citygml4j.model.citygml.bridge.BridgeFurniture; import org.citygml4j.model.citygml.bridge.BridgeInstallation; import org.citygml4j.model.citygml.bridge.BridgePart; import org.citygml4j.model.citygml.bridge.BridgeRoom; import org.citygml4j.model.citygml.bridge.IntBridgeInstallation; 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.BuildingPart; import org.citygml4j.model.citygml.building.IntBuildingInstallation; 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.core.Address; import org.citygml4j.model.citygml.core.CityModel; import org.citygml4j.model.citygml.generics.GenericCityObject; import org.citygml4j.model.citygml.landuse.LandUse; 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.ReliefFeature; import org.citygml4j.model.citygml.relief.TINRelief; import org.citygml4j.model.citygml.transportation.AuxiliaryTrafficArea; 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.TransportationComplex; import org.citygml4j.model.citygml.tunnel.HollowSpace; import org.citygml4j.model.citygml.tunnel.IntTunnelInstallation; 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.TunnelPart; import org.citygml4j.model.citygml.vegetation.PlantCover; import org.citygml4j.model.citygml.vegetation.SolitaryVegetationObject; 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.gml.coverage.RectifiedGridCoverage; import org.citygml4j.xml.schema.ElementDecl; import org.w3c.dom.Element; public interface FeatureFunctor<T> extends Functor<T> { public T apply(Appearance appearance); public T apply(GeoreferencedTexture georeferencedTexture); public T apply(ParameterizedTexture parameterizedTexture); public T apply(X3DMaterial x3dMaterial); public T apply(Bridge bridge); public T apply(BridgeConstructionElement bridgeConstructionElement); public T apply(BridgeFurniture bridgeFurniture); public T apply(BridgeInstallation bridgeInstallation); public T apply(BridgePart bridgePart); public T apply(BridgeRoom bridgeRoom); public T apply(IntBridgeInstallation intBridgeInstallation); public T apply(org.citygml4j.model.citygml.bridge.CeilingSurface ceilingSurface); public T apply(org.citygml4j.model.citygml.bridge.OuterCeilingSurface outerCeilingSurface); public T apply(org.citygml4j.model.citygml.bridge.ClosureSurface closureSurface); public T apply(org.citygml4j.model.citygml.bridge.FloorSurface floorSurface); public T apply(org.citygml4j.model.citygml.bridge.OuterFloorSurface outerFloorSurface); public T apply(org.citygml4j.model.citygml.bridge.GroundSurface groundSurface); public T apply(org.citygml4j.model.citygml.bridge.InteriorWallSurface interiorWallSurface); public T apply(org.citygml4j.model.citygml.bridge.RoofSurface roofSurface); public T apply(org.citygml4j.model.citygml.bridge.WallSurface wallSurface); public T apply(org.citygml4j.model.citygml.bridge.Door door); public T apply(org.citygml4j.model.citygml.bridge.Window window); public T apply(Building building); public T apply(BuildingFurniture buildingFurniture); public T apply(BuildingInstallation buildingInstallation); public T apply(BuildingPart buildingPart); public T apply(IntBuildingInstallation intBuildingInstallation); public T apply(Room room); public T apply(org.citygml4j.model.citygml.building.CeilingSurface ceilingSurface); public T apply(org.citygml4j.model.citygml.building.OuterCeilingSurface outerCeilingSurface); public T apply(org.citygml4j.model.citygml.building.ClosureSurface closureSurface); public T apply(org.citygml4j.model.citygml.building.FloorSurface floorSurface); public T apply(org.citygml4j.model.citygml.building.OuterFloorSurface outerFloorSurface); public T apply(org.citygml4j.model.citygml.building.GroundSurface groundSurface); public T apply(org.citygml4j.model.citygml.building.InteriorWallSurface interiorWallSurface); public T apply(org.citygml4j.model.citygml.building.RoofSurface roofSurface); public T apply(org.citygml4j.model.citygml.building.WallSurface wallSurface); public T apply(org.citygml4j.model.citygml.building.Door door); public T apply(org.citygml4j.model.citygml.building.Window window); public T apply(HollowSpace hollowSpace); public T apply(IntTunnelInstallation intTunnelInstallation); public T apply(Tunnel tunnel); public T apply(TunnelFurniture tunnelFurniture); public T apply(TunnelInstallation tunnelInstallation); public T apply(TunnelPart tunnelPart); public T apply(org.citygml4j.model.citygml.tunnel.CeilingSurface ceilingSurface); public T apply(org.citygml4j.model.citygml.tunnel.OuterCeilingSurface outerCeilingSurface); public T apply(org.citygml4j.model.citygml.tunnel.ClosureSurface closureSurface); public T apply(org.citygml4j.model.citygml.tunnel.FloorSurface floorSurface); public T apply(org.citygml4j.model.citygml.tunnel.OuterFloorSurface outerFloorSurface); public T apply(org.citygml4j.model.citygml.tunnel.GroundSurface groundSurface); public T apply(org.citygml4j.model.citygml.tunnel.InteriorWallSurface interiorWallSurface); public T apply(org.citygml4j.model.citygml.tunnel.RoofSurface roofSurface); public T apply(org.citygml4j.model.citygml.tunnel.WallSurface wallSurface); public T apply(org.citygml4j.model.citygml.tunnel.Door door); public T apply(org.citygml4j.model.citygml.tunnel.Window window); public T apply(CityFurniture cityFurniture); public T apply(CityObjectGroup cityObjectGroup); public T apply(Address address); public T apply(CityModel cityModel); public T apply(GenericCityObject genericCityObject); public T apply(LandUse landUse); public T apply(BreaklineRelief breaklineRelief); public T apply(MassPointRelief massPointRelief); public T apply(RasterRelief rasterRelief); public T apply(ReliefFeature reliefFeature); public T apply(TINRelief tinRelief); public T apply(AuxiliaryTrafficArea auxiliaryTrafficArea); public T apply(Railway railway); public T apply(RectifiedGridCoverage rectifiedGridCoverage); public T apply(Road road); public T apply(Square square); public T apply(Track track); public T apply(TrafficArea trafficArea); public T apply(TransportationComplex transportationComplex); public T apply(PlantCover plantCover); public T apply(SolitaryVegetationObject solitaryVegetationObject); public T apply(WaterBody waterBody); public T apply(WaterClosureSurface waterClosureSurface); public T apply(WaterGroundSurface waterGroundSurface); public T apply(WaterSurface waterSurface); public T apply(ADEComponent adeComponent); public T apply(Element element, ElementDecl decl); }