/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2010, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.xal.model; import java.util.List; import static java.util.Collections.*; /** * * @author Samuel Andrés * @module */ public class DefaultPremise implements Premise { private List<GenericTypedGrPostal> addressLines; private List<PremiseName> premiseNames; private PremiseLocation premiseLocation; private List<PremiseNumber> premiseNumbers; private PremiseNumberRange premiseNumberRange; private List<PremiseNumberPrefix> premiseNumberPrefixes; private List<PremiseNumberSuffix> premiseNumberSuffixes; private List<BuildingName> buildingNames; private List<SubPremise> subPremises; private Firm firm; private MailStop mailStop; private PostalCode postalCode; private Premise premise; private String type; private String premiseDependency; private String premiseDependencyType; private String premiseThoroughfareConnector; public DefaultPremise() { this.addressLines = EMPTY_LIST; this.premiseNames = EMPTY_LIST; this.premiseNumbers = EMPTY_LIST; this.premiseNumberPrefixes = EMPTY_LIST; this.premiseNumberSuffixes = EMPTY_LIST; this.buildingNames = EMPTY_LIST; this.subPremises = EMPTY_LIST; } /** * * @param addressLines * @param premiseNames * @param localisation * @param premiseNumberPrefixes * @param premiseNumberSuffixes * @param buildingNames * @param sub * @param mailStop * @param postalCode * @param premise * @param type * @param premiseDependency * @param premiseDependencyType * @param premiseThoroughfareConnector * @throws XalException */ public DefaultPremise(List<GenericTypedGrPostal> addressLines, List<PremiseName> premiseNames, Object location, List<PremiseNumberPrefix> premiseNumberPrefixes, List<PremiseNumberSuffix> premiseNumberSuffixes, List<BuildingName> buildingNames, Object sub, MailStop mailStop, PostalCode postalCode, Premise premise, String type, String premiseDependency, String premiseDependencyType, String premiseThoroughfareConnector) throws XalException { this.addressLines = (addressLines == null) ? EMPTY_LIST : addressLines; this.premiseNames = (premiseNames == null) ? EMPTY_LIST : premiseNames; if (location instanceof PremiseLocation) { premiseLocation = (PremiseLocation) location; premiseNumbers = EMPTY_LIST; } else if (location instanceof List) { try { premiseNumbers = (List<PremiseNumber>) location; } catch (ClassCastException e) { throw new XalException("This kind of location (" + location.getClass() + ") is not allowed here : " + this.getClass()); } } else if (location instanceof PremiseNumberRange) { premiseNumberRange = (PremiseNumberRange) location; premiseNumbers = EMPTY_LIST; } else if (location != null) { throw new XalException("This kind of location (" + location.getClass() + ") is not allowed here : " + this.getClass()); } else { premiseNumbers = EMPTY_LIST; } this.premiseNumberPrefixes = (premiseNumberPrefixes == null) ? EMPTY_LIST : premiseNumberPrefixes; this.premiseNumberSuffixes = (premiseNumberSuffixes == null) ? EMPTY_LIST : premiseNumberSuffixes; this.buildingNames = (buildingNames == null) ? EMPTY_LIST : buildingNames; if (sub instanceof List) { try { subPremises = (List<SubPremise>) sub; } catch (ClassCastException e) { throw new XalException("This kind of class (" + sub.getClass() + ") is not allowed here : " + this.getClass()); } } else if (sub instanceof Firm) { firm = (Firm) sub; subPremises = EMPTY_LIST; } else if (sub != null) { throw new XalException("This kind of class (" + sub.getClass() + ") is not allowed here : " + this.getClass()); } else { subPremises = EMPTY_LIST; } this.mailStop = mailStop; this.postalCode = postalCode; this.premise = premise; this.type = type; this.premiseDependency = premiseDependency; this.premiseDependencyType = premiseDependencyType; this.premiseThoroughfareConnector = premiseThoroughfareConnector; } /** * * @{@inheritDoc } */ @Override public List<GenericTypedGrPostal> getAddressLines() { return this.addressLines; } /** * * @{@inheritDoc } */ @Override public List<PremiseName> getPremiseNames() { return this.premiseNames; } /** * * @{@inheritDoc } */ @Override public PremiseLocation getPremiseLocation() { return this.premiseLocation; } /** * * @{@inheritDoc } */ @Override public List<PremiseNumber> getPremiseNumbers() { return this.premiseNumbers; } /** * * @{@inheritDoc } */ @Override public PremiseNumberRange getPremiseNumberRange() { return this.premiseNumberRange; } /** * * @{@inheritDoc } */ @Override public List<PremiseNumberPrefix> getPremiseNumberPrefixes() { return this.premiseNumberPrefixes; } /** * * @{@inheritDoc } */ @Override public List<PremiseNumberSuffix> getPremiseNumberSuffixes() { return this.premiseNumberSuffixes; } /** * * @{@inheritDoc } */ @Override public List<BuildingName> getBuildingNames() { return this.buildingNames; } /** * * @{@inheritDoc } */ @Override public List<SubPremise> getSubPremises() { return this.subPremises; } /** * * @{@inheritDoc } */ @Override public Firm getFirm() { return this.firm; } /** * * @{@inheritDoc } */ @Override public MailStop getMailStop() { return this.mailStop; } /** * * @{@inheritDoc } */ @Override public PostalCode getPostalCode() { return this.postalCode; } /** * * @{@inheritDoc } */ @Override public Premise getPremise() { return this.premise; } /** * * @{@inheritDoc } */ @Override public String getType() { return this.type; } /** * * @{@inheritDoc } */ @Override public String getPremiseDependency() { return this.premiseDependency; } /** * * @{@inheritDoc } */ @Override public String getPremiseDependencyType() { return this.premiseDependencyType; } /** * * @{@inheritDoc } */ @Override public String getPremiseThoroughfareConnector() { return this.premiseThoroughfareConnector; } /** * * @{@inheritDoc } */ @Override public void setAddressLines(List<GenericTypedGrPostal> addressLines) { this.addressLines = (addressLines == null) ? EMPTY_LIST : addressLines; } /** * * @{@inheritDoc } */ @Override public void setPremiseNames(List<PremiseName> premiseNames) { this.premiseNames = (premiseNames == null) ? EMPTY_LIST : premiseNames; } /** * * @{@inheritDoc } */ @Override public void setPremiseLocation(PremiseLocation premiseLocation) { this.premiseLocation = premiseLocation; } /** * * @{@inheritDoc } */ @Override public void setPremiseNumbers(List<PremiseNumber> premiseNumbers) { this.premiseNumbers = (premiseNumbers == null) ? EMPTY_LIST : premiseNumbers; } /** * * @{@inheritDoc } */ @Override public void setPremiseNumberRange(PremiseNumberRange premiseNumberRange) { this.premiseNumberRange = premiseNumberRange; } /** * * @{@inheritDoc } */ @Override public void setPremiseNumberPrefixes(List<PremiseNumberPrefix> premiseNumberPrefixes) { this.premiseNumberPrefixes = premiseNumberPrefixes; } /** * * @{@inheritDoc } */ @Override public void setPremiseNumberSuffixes(List<PremiseNumberSuffix> premiseNumberSuffixes) { this.premiseNumberSuffixes = premiseNumberSuffixes; } /** * * @{@inheritDoc } */ @Override public void setBuildingNames(List<BuildingName> buildingNames) { this.buildingNames = buildingNames; } /** * * @{@inheritDoc } */ @Override public void setSubPremises(List<SubPremise> subPremises) { this.subPremises = subPremises; } /** * * @{@inheritDoc } */ @Override public void setFirm(Firm firm) { this.firm = firm; } /** * * @{@inheritDoc } */ @Override public void setMailStop(MailStop mailStop) { this.mailStop = mailStop; } /** * * @{@inheritDoc } */ @Override public void setPostalCode(PostalCode postalCode) { this.postalCode = postalCode; } /** * * @{@inheritDoc } */ @Override public void setPremise(Premise premise) { this.premise = premise; } /** * * @{@inheritDoc } */ @Override public void setType(String type) { this.type = type; } /** * * @{@inheritDoc } */ @Override public void setPremiseDependency(String premiseDependency) { this.premiseDependency = premiseDependency; } /** * * @{@inheritDoc } */ @Override public void setPremiseDependencyType(String premiseDependencyType) { this.premiseDependencyType = premiseDependencyType; } /** * * @{@inheritDoc } */ @Override public void setPremiseThoroughfareConnector(String premiseThoroughfareConnector) { this.premiseThoroughfareConnector = premiseThoroughfareConnector; } }