]> git.mxchange.org Git - jcontacts-core.git/commitdiff
Continued a bit:
authorRoland Häder <roland@mxchange.org>
Fri, 23 Jun 2017 18:15:26 +0000 (20:15 +0200)
committerRoland Häder <roland@mxchange.org>
Fri, 23 Jun 2017 18:15:26 +0000 (20:15 +0200)
- moved copyAll() away from POJO to utils class

Signed-off-by: Roland Häder <roland@mxchange.org>
src/org/mxchange/jcontacts/contact/Contact.java
src/org/mxchange/jcontacts/contact/ContactUtils.java [new file with mode: 0644]
src/org/mxchange/jcontacts/contact/UserContact.java
src/org/mxchange/jcontacts/contact/utils/ContactUtils.java [deleted file]

index 649fd82085cf6358f9aae3b3f4da0779f6f73782..47381e252f056387fbb66b4dd54e77f25e4c0d7c 100644 (file)
@@ -32,13 +32,6 @@ import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
  */
 public interface Contact extends Serializable {
 
-       /**
-        * Copies all attributes from other contact object to this
-        * <p>
-        * @param contact Source instance
-        */
-       void copyAll (final Contact contact);
-
        /**
         * Birth day
         * <p>
diff --git a/src/org/mxchange/jcontacts/contact/ContactUtils.java b/src/org/mxchange/jcontacts/contact/ContactUtils.java
new file mode 100644 (file)
index 0000000..7cc6f12
--- /dev/null
@@ -0,0 +1,274 @@
+/*
+ * Copyright (C) 2016, 2017 Roland Häder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontacts.contact;
+
+import java.io.Serializable;
+import java.util.Objects;
+import org.mxchange.jcountry.data.Country;
+import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.phonenumbers.fax.FaxNumber;
+import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
+import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
+import org.mxchange.jphone.phonenumbers.mobile.MobileNumber;
+import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
+
+/**
+ * Utilities for contacts
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public class ContactUtils implements Serializable {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 26_785_734_719_670L;
+
+       /**
+        * Copies all attributes from other contact object to this
+        * <p>
+        * @param sourceContact Source instance
+        * @param targetContact Target instance
+        */
+       public static void copyAll (final Contact sourceContact, final Contact targetContact) {
+               // Contact should be valid
+               if (null == sourceContact) {
+                       // Throw NPE
+                       throw new NullPointerException("sourceContact is null"); //NOI18N
+               } else if (null == targetContact) {
+                       // Throw NPE
+                       throw new NullPointerException("targetContact is null"); //NOI18N
+               }
+
+               // Copy all:
+               // - base data
+               targetContact.setContactPersonalTitle(sourceContact.getContactPersonalTitle());
+               targetContact.setContactTitle(sourceContact.getContactTitle());
+               targetContact.setContactFirstName(sourceContact.getContactFirstName());
+               targetContact.setContactFamilyName(sourceContact.getContactFamilyName());
+               targetContact.setContactStreet(sourceContact.getContactStreet());
+               targetContact.setContactHouseNumber(sourceContact.getContactHouseNumber());
+               targetContact.setContactHouseNumberExtension(sourceContact.getContactHouseNumberExtension());
+               targetContact.setContactZipCode(sourceContact.getContactZipCode());
+               targetContact.setContactCity(sourceContact.getContactCity());
+               targetContact.setContactCountry(sourceContact.getContactCountry());
+
+               // - phone, fax, email
+               targetContact.setContactLandLineNumber(sourceContact.getContactLandLineNumber());
+               targetContact.setContactFaxNumber(sourceContact.getContactFaxNumber());
+               targetContact.setContactMobileNumber(sourceContact.getContactMobileNumber());
+
+               // - other data
+               targetContact.setContactBirthday(sourceContact.getContactBirthday());
+               targetContact.setContactComment(sourceContact.getContactComment());
+               targetContact.setContactCreated(sourceContact.getContactCreated());
+               targetContact.setContactUpdated(sourceContact.getContactUpdated());
+       }
+
+       /**
+        * Checks whether both contacts are same, but ignoring id number. If you
+        * want to include id number in comparison, better use Objects.equals() as
+        * the equal() method is implemented and checks all fields.
+        * <p>
+        * @param contact Contact one
+        * @param other   Contact two
+        * <p>
+        * @return Whether both are the same
+        */
+       public static boolean isSameContact (final Contact contact, final Contact other) {
+               // Both should not be null
+               if (null == contact) {
+                       // First contact is null
+                       throw new NullPointerException("contact is null"); //NOI18N
+               } else if (null == other) {
+                       // Secondcontact is null
+                       throw new NullPointerException("other is null"); //NOI18N
+               }
+
+               // Check all data fields, except id number
+               return ((Objects.equals(contact.getContactBirthday(), other.getContactBirthday())) &&
+                               (Objects.equals(contact.getContactCity(), other.getContactCity())) &&
+                               (Objects.equals(contact.getContactCountry(), other.getContactCountry())) &&
+                               (Objects.equals(contact.getContactEmailAddress(), other.getContactEmailAddress())) &&
+                               (Objects.equals(contact.getContactFamilyName(), other.getContactFamilyName())) &&
+                               (Objects.equals(contact.getContactFirstName(), other.getContactFirstName())) &&
+                               (Objects.equals(contact.getContactPersonalTitle(), other.getContactPersonalTitle())) &&
+                               (Objects.equals(contact.getContactHouseNumber(), other.getContactHouseNumber())) &&
+                               (Objects.equals(contact.getContactStreet(), other.getContactStreet())) &&
+                               (Objects.equals(contact.getContactTitle(), other.getContactTitle())) &&
+                               (Objects.equals(contact.getContactZipCode(), other.getContactZipCode())));
+       }
+
+       /**
+        * Updates land-line data in contact instance. This method also removes the
+        * land-line instance if no country is selected. A bean (mostly EJB) should
+        * then make sure that the land-line entry is being unlinked from contact
+        * instance or being removed, if no longer used.
+        * <p>
+        * @param contact     Contact instance being updated
+        * @param faxCountry  Updated fax number or null
+        * @param faxAreaCode Updated fax area code or null
+        * @param faxNumber   Updated fax number
+        * <p>
+        * @return Whether the fax number has been unlinked in contact object
+        */
+       public static boolean updateFaxNumber (final Contact contact, final Country faxCountry, final Integer faxAreaCode, final Long faxNumber) {
+               // At least contact must be valid
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("contact is null"); //NOI18N
+               }
+
+               // Default is not unlinked
+               boolean isUnlinked = false;
+
+               // Is there a fax instance?
+               if (contact.getContactFaxNumber() instanceof DialableFaxNumber) {
+                       // Found existing fax number, remove it?
+                       if ((null == faxCountry) || (null == faxAreaCode) || (null == faxNumber)) {
+                               // Remove existing instance
+                               contact.setContactFaxNumber(null);
+
+                               // Mark it as being removed
+                               isUnlinked = true;
+                       } else {
+                               // Set all data
+                               contact.getContactFaxNumber().setPhoneCountry(faxCountry);
+                               contact.getContactFaxNumber().setPhoneAreaCode(faxAreaCode);
+                               contact.getContactFaxNumber().setPhoneNumber(faxNumber);
+                       }
+               } else if ((faxCountry instanceof Country) && (faxAreaCode > 0) && (faxNumber > 0)) {
+                       // Set new land-line number
+                       DialableFaxNumber fax = new FaxNumber(faxCountry, faxAreaCode, faxNumber);
+
+                       // Set it in contact
+                       contact.setContactFaxNumber(fax);
+               }
+
+               // Return status
+               return isUnlinked;
+       }
+
+       /**
+        * Updates land-line data in contact instance. This method also removes the
+        * land-line instance if no country is selected. A bean (mostly EJB) should
+        * then make sure that the land-line entry is being unlinked from contact
+        * instance or being removed, if no longer used.
+        * <p>
+        * @param contact       Contact instance being updated
+        * @param phoneCountry  New phone country or old or null
+        * @param phoneAreaCode New phone's area code (or old)
+        * @param phoneNumber   New phone number (or old)
+        * <p>
+        * @return Whether the land-line number has been unlinked in contact object
+        */
+       public static boolean updateLandLineNumber (final Contact contact, final Country phoneCountry, final Integer phoneAreaCode, final Long phoneNumber) {
+               // At least contact must be valid
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("contact is null"); //NOI18N
+               }
+
+               // Default is not unlinked
+               boolean isUnlinked = false;
+
+               // Is there a land-line instance?
+               if (contact.getContactLandLineNumber() instanceof DialableLandLineNumber) {
+                       // Found existing land-line number, remove it?
+                       if ((null == phoneCountry) || (null == phoneAreaCode) || (null == phoneNumber)) {
+                               // Remove existing instance
+                               contact.setContactLandLineNumber(null);
+
+                               // Mark it as being removed
+                               isUnlinked = true;
+                       } else {
+                               // Set all data
+                               contact.getContactLandLineNumber().setPhoneCountry(phoneCountry);
+                               contact.getContactLandLineNumber().setPhoneAreaCode(phoneAreaCode);
+                               contact.getContactLandLineNumber().setPhoneNumber(phoneNumber);
+                       }
+               } else if ((phoneCountry instanceof Country) && (phoneAreaCode > 0) && (phoneNumber > 0)) {
+                       // Set new land-line number
+                       DialableLandLineNumber landLine = new LandLineNumber(phoneCountry, phoneAreaCode, phoneNumber);
+
+                       // Set it in contact
+                       contact.setContactLandLineNumber(landLine);
+               }
+
+               // Return status
+               return isUnlinked;
+       }
+
+       /**
+        * Updates mobile data in contact instance. This method also removes the
+        * mobile instance if no provider is selected. A bean (mostly EJB) should
+        * then make sure that the mobile entry is being unlinked from contact
+        * instance or being removed, if no longer used.
+        * <p>
+        * @param contact        Contact instance to update
+        * @param mobileProvider New mobile provider (or old)
+        * @param mobileNumber   New mobile number (or old)
+        * <p>
+        * @return Whether the mobile has been unlinked in contact object
+        */
+       public static boolean updateMobileNumber (final Contact contact, final MobileProvider mobileProvider, final Long mobileNumber) {
+               // At least contact must be valid
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("contact is null"); //NOI18N
+               } else if ((mobileProvider instanceof MobileProvider) && (null == mobileNumber)) {
+                       // Mobile provider given, but no number
+                       throw new NullPointerException("mobileNumber is null"); //NOI18N
+               }
+
+               // Default is not unlinked
+               boolean isUnlinked = false;
+
+               // Is there a mobile number?
+               if (contact.getContactMobileNumber() instanceof DialableMobileNumber) {
+                       // Is provider null?
+                       if ((null == mobileProvider) || (null == mobileNumber) || (mobileNumber == 0)) {
+                               // Remove instance
+                               contact.setContactMobileNumber(null);
+
+                               // Mark as unlinked
+                               isUnlinked = true;
+                       } else {
+                               // Yes, then update as well
+                               contact.getContactMobileNumber().setMobileProvider(mobileProvider);
+                               contact.getContactMobileNumber().setPhoneNumber(mobileNumber);
+                       }
+               } else if ((mobileProvider instanceof MobileProvider) && (mobileNumber > 0)) {
+                       // Create new instance
+                       DialableMobileNumber mobile = new MobileNumber(mobileProvider, mobileNumber);
+
+                       // Set it in contact
+                       contact.setContactMobileNumber(mobile);
+               }
+
+               // Return status
+               return isUnlinked;
+       }
+
+       /**
+        * Private constructor for utilities
+        */
+       private ContactUtils () {
+       }
+
+}
index 29a2c7bd4c0b55799cfb37cb44f40a2e3ddb9687..b3e0c0b9d27fd35cca675f03d9e287ca9905bbdd 100644 (file)
@@ -247,39 +247,6 @@ public class UserContact implements Contact {
                this.contactFamilyName = contactFamilyName;
        }
 
-       @Override
-       public void copyAll (final Contact contact) {
-               // Contact should be valid
-               if (null == contact) {
-                       // Throw NPE
-                       throw new NullPointerException("contact is null"); //NOI18N
-               }
-
-               // Copy all:
-               // - base data
-               this.setContactPersonalTitle(contact.getContactPersonalTitle());
-               this.setContactTitle(contact.getContactTitle());
-               this.setContactFirstName(contact.getContactFirstName());
-               this.setContactFamilyName(contact.getContactFamilyName());
-               this.setContactStreet(contact.getContactStreet());
-               this.setContactHouseNumber(contact.getContactHouseNumber());
-               this.setContactHouseNumberExtension(contact.getContactHouseNumberExtension());
-               this.setContactZipCode(contact.getContactZipCode());
-               this.setContactCity(contact.getContactCity());
-               this.setContactCountry(contact.getContactCountry());
-
-               // - phone, fax, email
-               this.setContactLandLineNumber(contact.getContactLandLineNumber());
-               this.setContactFaxNumber(contact.getContactFaxNumber());
-               this.setContactMobileNumber(contact.getContactMobileNumber());
-
-               // - other data
-               this.setContactBirthday(contact.getContactBirthday());
-               this.setContactComment(contact.getContactComment());
-               this.setContactCreated(contact.getContactCreated());
-               this.setContactUpdated(contact.getContactUpdated());
-       }
-
        @Override
        public boolean equals (final Object object) {
                if (this == object) {
diff --git a/src/org/mxchange/jcontacts/contact/utils/ContactUtils.java b/src/org/mxchange/jcontacts/contact/utils/ContactUtils.java
deleted file mode 100644 (file)
index 1f4f02e..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (C) 2016, 2017 Roland Häder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jcontacts.contact.utils;
-
-import java.io.Serializable;
-import java.util.Objects;
-import org.mxchange.jcontacts.contact.Contact;
-import org.mxchange.jcountry.data.Country;
-import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
-import org.mxchange.jphone.phonenumbers.fax.FaxNumber;
-import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
-import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
-import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
-import org.mxchange.jphone.phonenumbers.mobile.MobileNumber;
-import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
-
-/**
- * Utilities for contacts
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-public class ContactUtils implements Serializable {
-
-       /**
-        * Serial number
-        */
-       private static final long serialVersionUID = 26_785_734_719_670L;
-
-       /**
-        * Checks whether both contacts are same, but ignoring id number. If you
-        * want to include id number in comparison, better use Objects.equals() as
-        * the equal() method is implemented and checks all fields.
-        * <p>
-        * @param contact Contact one
-        * @param other   Contact two
-        * <p>
-        * @return Whether both are the same
-        */
-       public static boolean isSameContact (final Contact contact, final Contact other) {
-               // Both should not be null
-               if (null == contact) {
-                       // First contact is null
-                       throw new NullPointerException("contact is null"); //NOI18N
-               } else if (null == other) {
-                       // Secondcontact is null
-                       throw new NullPointerException("other is null"); //NOI18N
-               }
-
-               // Check all data fields, except id number
-               return ((Objects.equals(contact.getContactBirthday(), other.getContactBirthday())) &&
-                               (Objects.equals(contact.getContactCity(), other.getContactCity())) &&
-                               (Objects.equals(contact.getContactCountry(), other.getContactCountry())) &&
-                               (Objects.equals(contact.getContactEmailAddress(), other.getContactEmailAddress())) &&
-                               (Objects.equals(contact.getContactFamilyName(), other.getContactFamilyName())) &&
-                               (Objects.equals(contact.getContactFirstName(), other.getContactFirstName())) &&
-                               (Objects.equals(contact.getContactPersonalTitle(), other.getContactPersonalTitle())) &&
-                               (Objects.equals(contact.getContactHouseNumber(), other.getContactHouseNumber())) &&
-                               (Objects.equals(contact.getContactStreet(), other.getContactStreet())) &&
-                               (Objects.equals(contact.getContactTitle(), other.getContactTitle())) &&
-                               (Objects.equals(contact.getContactZipCode(), other.getContactZipCode())));
-       }
-
-       /**
-        * Updates land-line data in contact instance. This method also removes the
-        * land-line instance if no country is selected. A bean (mostly EJB) should
-        * then make sure that the land-line entry is being unlinked from contact
-        * instance or being removed, if no longer used.
-        * <p>
-        * @param contact     Contact instance being updated
-        * @param faxCountry  Updated fax number or null
-        * @param faxAreaCode Updated fax area code or null
-        * @param faxNumber   Updated fax number
-        * <p>
-        * @return Whether the fax number has been unlinked in contact object
-        */
-       public static boolean updateFaxNumber (final Contact contact, final Country faxCountry, final Integer faxAreaCode, final Long faxNumber) {
-               // At least contact must be valid
-               if (null == contact) {
-                       // Throw NPE
-                       throw new NullPointerException("contact is null"); //NOI18N
-               }
-
-               // Default is not unlinked
-               boolean isUnlinked = false;
-
-               // Is there a fax instance?
-               if (contact.getContactFaxNumber() instanceof DialableFaxNumber) {
-                       // Found existing fax number, remove it?
-                       if ((null == faxCountry) || (null == faxAreaCode) || (null == faxNumber)) {
-                               // Remove existing instance
-                               contact.setContactFaxNumber(null);
-
-                               // Mark it as being removed
-                               isUnlinked = true;
-                       } else {
-                               // Set all data
-                               contact.getContactFaxNumber().setPhoneCountry(faxCountry);
-                               contact.getContactFaxNumber().setPhoneAreaCode(faxAreaCode);
-                               contact.getContactFaxNumber().setPhoneNumber(faxNumber);
-                       }
-               } else if ((faxCountry instanceof Country) && (faxAreaCode > 0) && (faxNumber > 0)) {
-                       // Set new land-line number
-                       DialableFaxNumber fax = new FaxNumber(faxCountry, faxAreaCode, faxNumber);
-
-                       // Set it in contact
-                       contact.setContactFaxNumber(fax);
-               }
-
-               // Return status
-               return isUnlinked;
-       }
-
-       /**
-        * Updates land-line data in contact instance. This method also removes the
-        * land-line instance if no country is selected. A bean (mostly EJB) should
-        * then make sure that the land-line entry is being unlinked from contact
-        * instance or being removed, if no longer used.
-        * <p>
-        * @param contact       Contact instance being updated
-        * @param phoneCountry  New phone country or old or null
-        * @param phoneAreaCode New phone's area code (or old)
-        * @param phoneNumber   New phone number (or old)
-        * <p>
-        * @return Whether the land-line number has been unlinked in contact object
-        */
-       public static boolean updateLandLineNumber (final Contact contact, final Country phoneCountry, final Integer phoneAreaCode, final Long phoneNumber) {
-               // At least contact must be valid
-               if (null == contact) {
-                       // Throw NPE
-                       throw new NullPointerException("contact is null"); //NOI18N
-               }
-
-               // Default is not unlinked
-               boolean isUnlinked = false;
-
-               // Is there a land-line instance?
-               if (contact.getContactLandLineNumber() instanceof DialableLandLineNumber) {
-                       // Found existing land-line number, remove it?
-                       if ((null == phoneCountry) || (null == phoneAreaCode) || (null == phoneNumber)) {
-                               // Remove existing instance
-                               contact.setContactLandLineNumber(null);
-
-                               // Mark it as being removed
-                               isUnlinked = true;
-                       } else {
-                               // Set all data
-                               contact.getContactLandLineNumber().setPhoneCountry(phoneCountry);
-                               contact.getContactLandLineNumber().setPhoneAreaCode(phoneAreaCode);
-                               contact.getContactLandLineNumber().setPhoneNumber(phoneNumber);
-                       }
-               } else if ((phoneCountry instanceof Country) && (phoneAreaCode > 0) && (phoneNumber > 0)) {
-                       // Set new land-line number
-                       DialableLandLineNumber landLine = new LandLineNumber(phoneCountry, phoneAreaCode, phoneNumber);
-
-                       // Set it in contact
-                       contact.setContactLandLineNumber(landLine);
-               }
-
-               // Return status
-               return isUnlinked;
-       }
-
-       /**
-        * Updates mobile data in contact instance. This method also removes the
-        * mobile instance if no provider is selected. A bean (mostly EJB) should
-        * then make sure that the mobile entry is being unlinked from contact
-        * instance or being removed, if no longer used.
-        * <p>
-        * @param contact        Contact instance to update
-        * @param mobileProvider New mobile provider (or old)
-        * @param mobileNumber   New mobile number (or old)
-        * <p>
-        * @return Whether the mobile has been unlinked in contact object
-        */
-       public static boolean updateMobileNumber (final Contact contact, final MobileProvider mobileProvider, final Long mobileNumber) {
-               // At least contact must be valid
-               if (null == contact) {
-                       // Throw NPE
-                       throw new NullPointerException("contact is null"); //NOI18N
-               } else if ((mobileProvider instanceof MobileProvider) && (null == mobileNumber)) {
-                       // Mobile provider given, but no number
-                       throw new NullPointerException("mobileNumber is null"); //NOI18N
-               }
-
-               // Default is not unlinked
-               boolean isUnlinked = false;
-
-               // Is there a mobile number?
-               if (contact.getContactMobileNumber() instanceof DialableMobileNumber) {
-                       // Is provider null?
-                       if ((null == mobileProvider) || (null == mobileNumber) || (mobileNumber == 0)) {
-                               // Remove instance
-                               contact.setContactMobileNumber(null);
-
-                               // Mark as unlinked
-                               isUnlinked = true;
-                       } else {
-                               // Yes, then update as well
-                               contact.getContactMobileNumber().setMobileProvider(mobileProvider);
-                               contact.getContactMobileNumber().setPhoneNumber(mobileNumber);
-                       }
-               } else if ((mobileProvider instanceof MobileProvider) && (mobileNumber > 0)) {
-                       // Create new instance
-                       DialableMobileNumber mobile = new MobileNumber(mobileProvider, mobileNumber);
-
-                       // Set it in contact
-                       contact.setContactMobileNumber(mobile);
-               }
-
-               // Return status
-               return isUnlinked;
-       }
-
-       /**
-        * Private constructor for utilities
-        */
-       private ContactUtils () {
-       }
-
-}