package nl.ipo.cds.etl.theme.protectedSite;
import java.sql.Date;
import java.util.Arrays;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import nl.ipo.cds.etl.PersistableFeature;
import nl.ipo.cds.etl.db.annotation.Column;
import nl.ipo.cds.etl.db.annotation.Table;
import nl.ipo.cds.etl.theme.annotation.MappableAttribute;
import nl.ipo.cds.etl.xml.bind.GmlElement;
import org.deegree.geometry.Geometry;
@Table(name="protected_site", schema="bron")
@XmlRootElement(name="protectedSite")
public class ProtectedSite extends PersistableFeature {
@Column
@GmlElement
private Geometry geometry;
@Column(name="legal_foundation_date")
@XmlElement
private Date legalFoundationDate;
@Column(name="legal_foundation_document")
@XmlElement
private String legalFoundationDocument;
@Column(name="inspire_id")
@XmlElement
private String inspireID;
@Column(name="site_name")
@XmlElement
private String siteName;
@Column(name="site_designation")
@XmlElement
private String[] siteDesignation;
@Column(name="site_protection_classification")
@XmlElement
private String[] siteProtectionClassification;
@MappableAttribute
public Geometry getGeometry() {
return geometry;
}
@MappableAttribute
public Date getLegalFoundationDate() {
return legalFoundationDate == null ? null : new Date (legalFoundationDate.getTime ());
}
@MappableAttribute
public String getLegalFoundationDocument() {
return legalFoundationDocument;
}
@MappableAttribute
public String getInspireID() {
return inspireID;
}
@MappableAttribute
public String getSiteName() {
return siteName;
}
@MappableAttribute
public String[] getSiteDesignation() {
if (siteDesignation == null) {
return null;
}
return Arrays.copyOf (siteDesignation, siteDesignation.length);
}
@MappableAttribute
public String[] getSiteProtectionClassification() {
if (siteProtectionClassification == null) {
return null;
}
return Arrays.copyOf (siteProtectionClassification, siteProtectionClassification.length);
}
@MappableAttribute
public void setGeometry(Geometry geometry) {
this.geometry = geometry;
}
@MappableAttribute
public void setLegalFoundationDate(Date legalFoundationDate) {
this.legalFoundationDate = legalFoundationDate == null ? null : new Date (legalFoundationDate.getTime ());
}
@MappableAttribute
public void setLegalFoundationDocument(String legalFoundationDocument) {
this.legalFoundationDocument = legalFoundationDocument;
}
@MappableAttribute
public void setInspireID(String inspireID) {
this.inspireID = inspireID;
}
@MappableAttribute
public void setSiteName(String siteName) {
this.siteName = siteName;
}
@MappableAttribute
public void setSiteDesignation(String[] siteDesignation) {
if (siteDesignation == null) {
this.siteDesignation = null;
} else {
this.siteDesignation = Arrays.copyOf (siteDesignation, siteDesignation.length);
}
}
@MappableAttribute
public void setSiteProtectionClassification(String[] siteProtectionClassification) {
if (siteProtectionClassification == null) {
this.siteProtectionClassification = null;
} else {
this.siteProtectionClassification = Arrays.copyOf (siteProtectionClassification, siteProtectionClassification.length);
}
}
}