/*
* 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.xal.Address;
import org.citygml4j.model.xal.AddressDetails;
import org.citygml4j.model.xal.AddressIdentifier;
import org.citygml4j.model.xal.AddressLatitude;
import org.citygml4j.model.xal.AddressLatitudeDirection;
import org.citygml4j.model.xal.AddressLine;
import org.citygml4j.model.xal.AddressLines;
import org.citygml4j.model.xal.AddressLongitude;
import org.citygml4j.model.xal.AddressLongitudeDirection;
import org.citygml4j.model.xal.AdministrativeArea;
import org.citygml4j.model.xal.AdministrativeAreaName;
import org.citygml4j.model.xal.Barcode;
import org.citygml4j.model.xal.BuildingName;
import org.citygml4j.model.xal.Country;
import org.citygml4j.model.xal.CountryName;
import org.citygml4j.model.xal.CountryNameCode;
import org.citygml4j.model.xal.Department;
import org.citygml4j.model.xal.DepartmentName;
import org.citygml4j.model.xal.DependentLocality;
import org.citygml4j.model.xal.DependentLocalityName;
import org.citygml4j.model.xal.DependentLocalityNumber;
import org.citygml4j.model.xal.DependentThoroughfare;
import org.citygml4j.model.xal.EndorsementLineCode;
import org.citygml4j.model.xal.Firm;
import org.citygml4j.model.xal.FirmName;
import org.citygml4j.model.xal.KeyLineCode;
import org.citygml4j.model.xal.LargeMailUser;
import org.citygml4j.model.xal.LargeMailUserIdentifier;
import org.citygml4j.model.xal.LargeMailUserName;
import org.citygml4j.model.xal.Locality;
import org.citygml4j.model.xal.LocalityName;
import org.citygml4j.model.xal.MailStop;
import org.citygml4j.model.xal.MailStopName;
import org.citygml4j.model.xal.MailStopNumber;
import org.citygml4j.model.xal.PostBox;
import org.citygml4j.model.xal.PostBoxNumber;
import org.citygml4j.model.xal.PostBoxNumberExtension;
import org.citygml4j.model.xal.PostBoxNumberPrefix;
import org.citygml4j.model.xal.PostBoxNumberSuffix;
import org.citygml4j.model.xal.PostOffice;
import org.citygml4j.model.xal.PostOfficeName;
import org.citygml4j.model.xal.PostOfficeNumber;
import org.citygml4j.model.xal.PostTown;
import org.citygml4j.model.xal.PostTownName;
import org.citygml4j.model.xal.PostTownSuffix;
import org.citygml4j.model.xal.PostalCode;
import org.citygml4j.model.xal.PostalCodeNumber;
import org.citygml4j.model.xal.PostalCodeNumberExtension;
import org.citygml4j.model.xal.PostalRoute;
import org.citygml4j.model.xal.PostalRouteName;
import org.citygml4j.model.xal.PostalRouteNumber;
import org.citygml4j.model.xal.PostalServiceElements;
import org.citygml4j.model.xal.Premise;
import org.citygml4j.model.xal.PremiseLocation;
import org.citygml4j.model.xal.PremiseName;
import org.citygml4j.model.xal.PremiseNumber;
import org.citygml4j.model.xal.PremiseNumberPrefix;
import org.citygml4j.model.xal.PremiseNumberRange;
import org.citygml4j.model.xal.PremiseNumberRangeFrom;
import org.citygml4j.model.xal.PremiseNumberRangeTo;
import org.citygml4j.model.xal.PremiseNumberSuffix;
import org.citygml4j.model.xal.SortingCode;
import org.citygml4j.model.xal.SubAdministrativeArea;
import org.citygml4j.model.xal.SubAdministrativeAreaName;
import org.citygml4j.model.xal.SubPremise;
import org.citygml4j.model.xal.SubPremiseLocation;
import org.citygml4j.model.xal.SubPremiseName;
import org.citygml4j.model.xal.SubPremiseNumber;
import org.citygml4j.model.xal.SubPremiseNumberPrefix;
import org.citygml4j.model.xal.SubPremiseNumberSuffix;
import org.citygml4j.model.xal.SupplementaryPostalServiceData;
import org.citygml4j.model.xal.Thoroughfare;
import org.citygml4j.model.xal.ThoroughfareLeadingType;
import org.citygml4j.model.xal.ThoroughfareName;
import org.citygml4j.model.xal.ThoroughfareNumber;
import org.citygml4j.model.xal.ThoroughfareNumberFrom;
import org.citygml4j.model.xal.ThoroughfareNumberPrefix;
import org.citygml4j.model.xal.ThoroughfareNumberRange;
import org.citygml4j.model.xal.ThoroughfareNumberSuffix;
import org.citygml4j.model.xal.ThoroughfareNumberTo;
import org.citygml4j.model.xal.ThoroughfarePostDirection;
import org.citygml4j.model.xal.ThoroughfarePreDirection;
import org.citygml4j.model.xal.ThoroughfareTrailingType;
public interface XALFunctor<T> extends Functor<T> {
public T apply(Address address);
public T apply(AddressDetails addressDetails);
public T apply(AddressIdentifier addressIdentifier);
public T apply(AddressLatitude addressLatitude);
public T apply(AddressLatitudeDirection addressLatitudeDirection);
public T apply(AddressLine addressLine);
public T apply(AddressLines addressLines);
public T apply(AddressLongitude addressLongitude);
public T apply(AddressLongitudeDirection addressLongitudeDirection);
public T apply(AdministrativeArea administrativeArea);
public T apply(AdministrativeAreaName administrativeAreaName);
public T apply(Barcode barcode);
public T apply(BuildingName buildingName);
public T apply(Country country);
public T apply(CountryName countryName);
public T apply(CountryNameCode countryNameCode);
public T apply(Department department);
public T apply(DepartmentName departmentName);
public T apply(DependentLocality dependentLocality);
public T apply(DependentLocalityName dependentLocalityName);
public T apply(DependentLocalityNumber dependentLocalityNumber);
public T apply(DependentThoroughfare dependentThoroughfare);
public T apply(EndorsementLineCode endorsementLineCode);
public T apply(Firm firm);
public T apply(FirmName firmName);
public T apply(KeyLineCode keyLineCode);
public T apply(LargeMailUser largeMailUser);
public T apply(LargeMailUserIdentifier largeMailUserIdentifier);
public T apply(LargeMailUserName largeMailUserName);
public T apply(Locality locality);
public T apply(LocalityName localityName);
public T apply(MailStop mailStop);
public T apply(MailStopName mailStopName);
public T apply(MailStopNumber mailStopNumber);
public T apply(PostalCode postalCode);
public T apply(PostalCodeNumber postalCodeNumber);
public T apply(PostalCodeNumberExtension postalCodeNumberExtension);
public T apply(PostalRoute postalRoute);
public T apply(PostalRouteName postalRouteName);
public T apply(PostalRouteNumber postalRouteNumber);
public T apply(PostalServiceElements postalServiceElements);
public T apply(PostBox postBox);
public T apply(PostBoxNumber postBoxNumber);
public T apply(PostBoxNumberExtension postBoxNumberExtension);
public T apply(PostBoxNumberPrefix postBoxNumberPrefix);
public T apply(PostBoxNumberSuffix postBoxNumberSuffix);
public T apply(PostOffice postOffice);
public T apply(PostOfficeName postOfficeName);
public T apply(PostOfficeNumber postOfficeNumber);
public T apply(PostTown postTown);
public T apply(PostTownName postTownName);
public T apply(PostTownSuffix postTownSuffix);
public T apply(Premise premise);
public T apply(PremiseLocation premiseLocation);
public T apply(PremiseName premiseName);
public T apply(PremiseNumber premiseNumber);
public T apply(PremiseNumberPrefix premiseNumberPrefix);
public T apply(PremiseNumberRange premiseNumberRange);
public T apply(PremiseNumberRangeFrom premiseNumberRangeFrom);
public T apply(PremiseNumberRangeTo premiseNumberRangeTo);
public T apply(PremiseNumberSuffix premiseNumberSuffix);
public T apply(SortingCode sortingCode);
public T apply(SubAdministrativeArea subAdministrativeArea);
public T apply(SubAdministrativeAreaName subAdministrativeAreaName);
public T apply(SubPremise subPremise);
public T apply(SubPremiseLocation subPremiseLocation);
public T apply(SubPremiseName subPremiseName);
public T apply(SubPremiseNumber subPremiseNumber);
public T apply(SubPremiseNumberPrefix subPremiseNumberPrefix);
public T apply(SubPremiseNumberSuffix subPremiseNumberSuffix);
public T apply(SupplementaryPostalServiceData supplementaryPostalServiceData);
public T apply(Thoroughfare thoroughfare);
public T apply(ThoroughfareLeadingType thoroughfareLeadingType);
public T apply(ThoroughfareName thoroughfareName);
public T apply(ThoroughfareNumber thoroughfareNumber);
public T apply(ThoroughfareNumberFrom thoroughfareNumberFrom);
public T apply(ThoroughfareNumberPrefix thoroughfareNumberPrefix);
public T apply(ThoroughfareNumberRange thoroughfareNumberRange);
public T apply(ThoroughfareNumberSuffix thoroughfareNumberSuffix);
public T apply(ThoroughfareNumberTo thoroughfareNumberTo);
public T apply(ThoroughfarePostDirection thoroughfarePostDirection);
public T apply(ThoroughfarePreDirection thoroughfarePreDirection);
public T apply(ThoroughfareTrailingType thoroughfareTrailingType);
}