/*
* 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 DefaultSubPremise implements SubPremise {
private List<GenericTypedGrPostal> addressLines;
private List<SubPremiseName> subPremiseNames;
private SubPremiseLocation subPremiseLocation;
private List<SubPremiseNumber> subPremiseNumbers;
private List<SubPremiseNumberPrefix> subPremiseNumberPrefixes;
private List<SubPremiseNumberSuffix> subPremiseNumberSuffixes;
private List<BuildingName> buildingNames;
private Firm firm;
private MailStop mailStop;
private PostalCode postalCode;
private SubPremise subPremise;
private String type;
public DefaultSubPremise() {
this.addressLines = EMPTY_LIST;
this.subPremiseNames = EMPTY_LIST;
this.subPremiseNumbers = EMPTY_LIST;
this.subPremiseNumberPrefixes = EMPTY_LIST;
this.subPremiseNumberSuffixes = EMPTY_LIST;
this.buildingNames = EMPTY_LIST;
}
/**
*
* @param addressLines
* @param subPremiseNames
* @param location
* @param subPremiseNumberPrefixes
* @param subPremiseNumberSuffixes
* @param buildingNames
* @param firm
* @param mailStop
* @param postalCode
* @param subPremise
* @param type
* @throws XalException
*/
public DefaultSubPremise(List<GenericTypedGrPostal> addressLines,
List<SubPremiseName> subPremiseNames, Object location,
List<SubPremiseNumberPrefix> subPremiseNumberPrefixes,
List<SubPremiseNumberSuffix> subPremiseNumberSuffixes,
List<BuildingName> buildingNames, Firm firm, MailStop mailStop,
PostalCode postalCode, SubPremise subPremise, String type) throws XalException {
this.addressLines = (addressLines == null) ? EMPTY_LIST : addressLines;
this.subPremiseNames = (subPremiseNames == null) ? EMPTY_LIST : subPremiseNames;
if (location instanceof SubPremiseLocation) {
this.subPremiseLocation = (SubPremiseLocation) location;
this.subPremiseNumbers = EMPTY_LIST;
} else if (location instanceof List) {
try {
this.subPremiseNumbers = (List<SubPremiseNumber>) location;
} catch (ClassCastException e) {
throw new XalException("This kind of location (" + location.getClass() + ") is not allowed here : " + this.getClass());
}
} else if (location != null) {
throw new XalException("This kind of location (" + location.getClass() + ") is not allowed here : " + this.getClass());
} else {
this.subPremiseNumbers = EMPTY_LIST;
}
this.subPremiseNumberPrefixes = (subPremiseNumberPrefixes == null) ? EMPTY_LIST : subPremiseNumberPrefixes;
this.subPremiseNumberSuffixes = (subPremiseNumberSuffixes == null) ? EMPTY_LIST : subPremiseNumberSuffixes;
this.buildingNames = (buildingNames == null) ? EMPTY_LIST : buildingNames;
this.firm = firm;
this.mailStop = mailStop;
this.postalCode = postalCode;
this.subPremise = subPremise;
this.type = type;
}
/**
*
* @{@inheritDoc }
*/
@Override
public List<GenericTypedGrPostal> getAddressLines() {
return this.addressLines;
}
/**
*
* @{@inheritDoc }
*/
@Override
public List<SubPremiseName> getSubPremiseNames() {
return this.subPremiseNames;
}
/**
*
* @{@inheritDoc }
*/
@Override
public SubPremiseLocation getSubPremiseLocation() {
return this.subPremiseLocation;
}
/**
*
* @{@inheritDoc }
*/
@Override
public List<SubPremiseNumber> getSubPremiseNumbers() {
return this.subPremiseNumbers;
}
/**
*
* @{@inheritDoc }
*/
@Override
public List<SubPremiseNumberPrefix> getSubPremiseNumberPrefixes() {
return this.subPremiseNumberPrefixes;
}
/**
*
* @{@inheritDoc }
*/
@Override
public List<SubPremiseNumberSuffix> getSubPremiseNumberSuffixes() {
return this.subPremiseNumberSuffixes;
}
/**
*
* @{@inheritDoc }
*/
@Override
public List<BuildingName> getBuildingNames() {
return this.buildingNames;
}
/**
*
* @{@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 SubPremise getSubPremise() {
return this.subPremise;
}
/**
*
* @{@inheritDoc }
*/
@Override
public String getType() {
return this.type;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setAddressLines(List<GenericTypedGrPostal> addressLines) {
this.addressLines = addressLines;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setSubPremiseNames(List<SubPremiseName> subPremiseNames) {
this.subPremiseNames = subPremiseNames;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setSubPremiseLocation(SubPremiseLocation subPremiseLocation) {
this.subPremiseLocation = subPremiseLocation;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setSubPremiseNumbers(List<SubPremiseNumber> subPremiseNumbers) {
this.subPremiseNumbers = subPremiseNumbers;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setSubPremiseNumberPrefixes(List<SubPremiseNumberPrefix> subPremiseNumberPrefixes) {
this.subPremiseNumberPrefixes = subPremiseNumberPrefixes;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setSubPremiseNumberSuffixes(List<SubPremiseNumberSuffix> subPremiseNumberSuffixes) {
this.subPremiseNumberSuffixes = subPremiseNumberSuffixes;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setBuildingNames(List<BuildingName> buildingNames) {
this.buildingNames = buildingNames;
}
/**
*
* @{@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 setSubPremise(SubPremise subPremise) {
this.subPremise = subPremise;
}
/**
*
* @{@inheritDoc }
*/
@Override
public void setType(String type) {
this.type = type;
}
}