X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/a28eb18d2b534ebb3ccc0cef160c4e5dd2f3e4c2..1ea1c08701d5c30c22578366ce7fb9ac3ea3da69:/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Address.java diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Address.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Address.java index f38b6a68e1..64ee919e2d 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Address.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Address.java @@ -9,152 +9,192 @@ package eu.etaxonomy.cdm.model.agent; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlIDREF; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlTransient; +import javax.xml.bind.annotation.XmlType; -import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry; -import eu.etaxonomy.cdm.model.location.Point; -import eu.etaxonomy.cdm.model.common.VersionableEntity; import org.apache.log4j.Logger; -import java.util.*; -import javax.persistence.*; +import org.hibernate.envers.Audited; + +import eu.etaxonomy.cdm.model.common.VersionableEntity; +import eu.etaxonomy.cdm.model.location.Point; +import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry; /** - * Representation of an atomized postal address. - *

- * See also the TDWG Ontology + * This class represents atomized postal addresses. + *

+ * This class corresponds to:

* * @author m.doering * @version 1.0 * @created 08-Nov-2007 13:06:09 */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Address", propOrder = { + "pobox", + "street", + "postcode", + "locality", + "region", + "country", + "location" +}) +@XmlRootElement(name = "Address") @Entity +@Audited public class Address extends VersionableEntity { - static Logger logger = Logger.getLogger(Address.class); + private static final long serialVersionUID = 682106303069088972L; + @SuppressWarnings("unused") + private static final Logger logger = Logger.getLogger(Address.class); + + @XmlElement(name = "POBox") private String pobox; + + @XmlElement(name = "Street") private String street; + + @XmlElement(name = "Postcode") private String postcode; + + @XmlElement(name = "Locality", required = true) private String locality; + + @XmlElement(name = "Region") private String region; + + @XmlElement(name = "Country") + @XmlIDREF + @XmlSchemaType(name = "IDREF") + @ManyToOne(fetch = FetchType.LAZY) private WaterbodyOrCountry country; + + @XmlElement(name = "Location") private Point location; - //Bidirectional only private - private Contact contact; - - @ManyToOne - public Contact getContact() { - return contact; - } - /** - * Assigns this postal address to a new contact. - * This method also updates the sets of postal addresses - * which belong to the two contacts (the new one and the substituted one). - * - * @param newContact the new contact to which this postal address should belong - * @see Contact#addAddress(Address) - * @see Contact#removeAddress(Address) + /** + * Returns the {@link WaterbodyOrCountry country} involved in this postal address. + * + * @return the country */ - protected void setContact(Contact newContact) { - // Hibernate bidirectional cascade hack: - // http://opensource.atlassian.com/projects/hibernate/browse/HHH-1054 - if(this.contact == newContact) return; - if (contact != null) { - contact.addresses.remove(this); - } - if (newContact!= null) { - newContact.addresses.add(this); - } - this.contact = newContact; - } - - - @ManyToOne public WaterbodyOrCountry getCountry(){ return this.country; } /** - * Assigns a country to this postal address. - * - * @param country the (waterbody or) country + * @see #getCountry() */ public void setCountry(WaterbodyOrCountry country){ this.country = country; } + /** + * Returns the geophysical {@link Point location} (coordinates) of this postal address. + * The location can be useful for instance to visualize the address on a map. + * + * @return the point corresponding to this address + * @see eu.etaxonomy.cdm.model.location.Point + */ + @XmlTransient public Point getLocation(){ return this.location; } /** - * Assigns a geophysical location to this postal address. - * - * @param location the point corresponding to this address - * @see location.Point + * @see #getLocation() */ public void setLocation(Point location){ this.location = location; } + /** + * Returns a string corresponding to the post office box + * involved in this postal address. + * + * @return the post office box string + */ public String getPobox(){ return this.pobox; } /** - * Assigns a post office box to this postal address. - * - * @param pobox string describing a post office box + * @see #getPobox() */ public void setPobox(String pobox){ this.pobox = pobox; } + /** + * Returns the street name and number involved in this postal address. + * Street numbers are part of the street string. + * + * @return the string composed of street name and number + */ public String getStreet(){ return this.street; } /** - * Assigns a street name and number to this postal address. - * - * @param street string containing a street name and a street number + * @see #getStreet() */ public void setStreet(String street){ this.street = street; } + /** + * Returns the post code number involved in this postal address. + * + * @return the post code number string + */ public String getPostcode(){ return this.postcode; } /** - * Assigns a post code number to this postal address. - * - * @param postcode string representing a post code + * @see #getPostcode() */ public void setPostcode(String postcode){ this.postcode = postcode; } + /** + * Returns the town (possibly with locality or suburb) involved in this postal address. + * + * @return the string representing a town + */ public String getLocality(){ return this.locality; } /** - * Assigns a town (possibly with locality or suburb) to this postal address. - * - * @param locality string representing a town (may include locality or suburb) + * @see #getLocality() */ public void setLocality(String locality){ this.locality = locality; } + /** + * Returns the region or state involved in this postal address. + * + * @return the string representing a region or a state + */ public String getRegion(){ return this.region; } /** - * Assigns a region or state to this postal address. - * - * @param region string representing a region or a state + * @see #getRegion() */ public void setRegion(String region){ this.region = region;