From 9af6d56bea1c85fef48bbcdb8f92d30070b86c70 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Fri, 17 Oct 2014 22:30:13 +0000 Subject: [PATCH] Make Contact URL an url #3920 --- .../eu/etaxonomy/cdm/model/agent/AgentBase.java | 7 ++++--- .../eu/etaxonomy/cdm/model/agent/Contact.java | 15 +++++++++------ .../update/v33_34/SchemaUpdater_331_34.java | 10 ++++++++++ 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/AgentBase.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/AgentBase.java index bb7b2bc005..7103557512 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/AgentBase.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/AgentBase.java @@ -104,6 +104,7 @@ public abstract class AgentBase exte Contact newContact = Contact.NewInstance(); if (create){ contact = newContact; + this.setContact(contact); } return contact; } @@ -121,10 +122,10 @@ public abstract class AgentBase exte * @param location * @see eu.etaxonomy.cdm.model.agent.Contact#addAddress(java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.location.Country, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.location.Point) */ - public void addAddress(String street, String postcode, String locality, + public Address addAddress(String street, String postcode, String locality, Country country, String pobox, String region, Point location) { - getNewOrExistingContact(true).addAddress(street, postcode, locality, country, pobox, region, + return getNewOrExistingContact(true).addAddress(street, postcode, locality, country, pobox, region, location); } /** @@ -234,7 +235,7 @@ public abstract class AgentBase exte * @param url * @see eu.etaxonomy.cdm.model.agent.Contact#removeUrl(java.lang.String) */ - public void removeUrl(String url) { + public void removeUrl(URI url) { getNewOrExistingContact(false).removeUrl(url); } diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Contact.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Contact.java index 92039e4b0e..24012c5517 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Contact.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Contact.java @@ -79,13 +79,15 @@ public class Contact implements Serializable, Cloneable { @XmlElement(name = "URL") @XmlSchemaType(name = "anyURI") @ElementCollection(fetch = FetchType.LAZY) - @Column(name = "contact_urls_element", length=400) - private List urls; + @Column(name = "contact_urls_element", length=330) + @Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE}) + private List urls = new ArrayList(); @XmlElementWrapper(name = "PhoneNumbers", nillable = true) @XmlElement(name = "PhoneNumber") @ElementCollection(fetch = FetchType.LAZY) @Column(name = "contact_phonenumbers_element") + @Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE}) private List phoneNumbers; @XmlElementWrapper(name = "FaxNumbers", nillable = true) @@ -229,10 +231,11 @@ public class Contact implements Serializable, Cloneable { } } - public void addAddress(String street, String postcode, String locality, + public Address addAddress(String street, String postcode, String locality, Country country, String pobox, String region, Point location){ Address newAddress = Address.NewInstance(country, locality, pobox, postcode, region, street, location); getAddresses().add(newAddress); + return newAddress; } /** @@ -292,7 +295,7 @@ public class Contact implements Serializable, Cloneable { * @see #getUrls() */ public void addUrl(URI url){ - getUrls().add(url); + this.urls.add(url.toString()); } /** @@ -301,8 +304,8 @@ public class Contact implements Serializable, Cloneable { * @param url the url of this contact which should be deleted * @see #getUrls() */ - public void removeUrl(String url){ - getUrls().remove(url); + public void removeUrl(URI url){ + this.urls.remove(url.toString()); } /** diff --git a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/SchemaUpdater_331_34.java b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/SchemaUpdater_331_34.java index 9f7bcdfcf6..c0156dcb25 100644 --- a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/SchemaUpdater_331_34.java +++ b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v33_34/SchemaUpdater_331_34.java @@ -18,6 +18,7 @@ import org.apache.log4j.Logger; import eu.etaxonomy.cdm.database.update.ColumnAdder; import eu.etaxonomy.cdm.database.update.ColumnNameChanger; import eu.etaxonomy.cdm.database.update.ColumnRemover; +import eu.etaxonomy.cdm.database.update.ColumnTypeChanger; import eu.etaxonomy.cdm.database.update.ISchemaUpdater; import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep; import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase; @@ -151,6 +152,15 @@ public class SchemaUpdater_331_34 extends SchemaUpdaterBase { step = TableDroper.NewInstance(stepName, tableName, ! INCLUDE_AUDIT, ifExists); stepList.add(step); + //change size of AgentBase_contact_urls.contact_urls_element #3920 + stepName = "Change length of AgentBase_contact_urls.contact_urls_element"; + tableName = "AgentBase_contact_urls"; + columnName = "contact_urls_element"; + step = ColumnTypeChanger.NewStringSizeInstance(stepName, tableName, + columnName, 330, INCLUDE_AUDIT); + stepList.add(step); + + return stepList; -- 2.34.1