From d7322d63ac67ed667433fbd938af43a2731c805c Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Tue, 9 Aug 2016 15:44:15 +0200
Subject: [PATCH] Continued: (please cherry-pick) - implemented
 updateCellphoneData()
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Roland Häder <roland@mxchange.org>
---
 ...dressbookAdminContactPhoneSessionBean.java | 57 +++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java b/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java
index bb50f62..c4d37f0 100644
--- a/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java
+++ b/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java
@@ -16,8 +16,11 @@
  */
 package org.mxchange.jcontacts.phone;
 
+import java.text.MessageFormat;
+import java.util.GregorianCalendar;
 import javax.ejb.Stateless;
 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
+import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
 
 /**
  * A session EJB for administrative contact's phone number purposes
@@ -32,4 +35,58 @@ public class AddressbookAdminContactPhoneSessionBean extends BaseAddressbookData
 	 */
 	private static final long serialVersionUID = 189_217_561_460_237_108L;
 
+	@Override
+	public DialableCellphoneNumber updateCellphoneData (final DialableCellphoneNumber cellPhoneNumber) {
+		// Trace message
+		this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateCellphoneData: cellPhoneNumber={1} - CALLED!", this.getClass().getSimpleName(), cellPhoneNumber));
+
+		// Is all data set
+		if (null == cellPhoneNumber) {
+			// Not set, throw NPE
+			throw new NullPointerException("cellphoneNumber is null"); //NOI18N
+		} else if (cellPhoneNumber.getPhoneId() == null) {
+			// Throw NPE again
+			throw new NullPointerException("cellphoneNumber.phoneId is null"); //NOI18N
+		} else if (cellPhoneNumber.getPhoneId() < 1) {
+			// Invalid number
+			throw new IllegalArgumentException(MessageFormat.format("cellphoneNumber.phoneId={0} is not valid", cellPhoneNumber.getPhoneId())); //NOI18N
+		} else if (cellPhoneNumber.getCellphoneProvider() == null) {
+			// Throw NPE
+			throw new NullPointerException("cellphoneNumber.cellphoneProvider is null"); //NOI18N
+		} else if (cellPhoneNumber.getCellphoneProvider().getProviderId() == null) {
+			// ... throw again
+			throw new NullPointerException("cellphoneNumber.cellphoneProvider.providerId is null"); //NOI18N
+		} else if (cellPhoneNumber.getCellphoneProvider().getProviderId() < 1) {
+			// Id not valid
+			throw new IllegalArgumentException(MessageFormat.format("cellphoneNumber.cellphoneProvider.providerId={0} is not valid.", cellPhoneNumber.getCellphoneProvider().getProviderId())); //NOI18N
+		} else if (cellPhoneNumber.getPhoneNumber() == null) {
+			// Throw NPE again
+			throw new NullPointerException("cellphoneNumber.phoneNumber is null"); //NOI18N
+		} else if (cellPhoneNumber.getPhoneNumber() < 1) {
+			// Throw NPE again
+			throw new NullPointerException(MessageFormat.format("cellphoneNumber.phoneNumber={0} is not valid.", cellPhoneNumber.getPhoneNumber())); //NOI18N
+		}
+
+		// Set updated timestamp
+		cellPhoneNumber.setPhoneEntryUpdated(new GregorianCalendar());
+
+		// Get contact from it and find it
+		DialableCellphoneNumber foundNumber = this.getEntityManager().find(cellPhoneNumber.getClass(), cellPhoneNumber.getPhoneId());
+
+		// Should be found
+		assert (foundNumber instanceof DialableCellphoneNumber) : MessageFormat.format("Cell phone number with id {0} not found, but should be.", cellPhoneNumber.getPhoneId()); //NOI18N
+
+		// Debug message
+		this.getLoggerBeanLocal().logDebug(MessageFormat.format("updateCellphoneData: foundNumber.phoneId={0}", foundNumber.getPhoneId())); //NOI18N
+
+		// Merge contact instance
+		DialableCellphoneNumber detachedNumber = this.getEntityManager().merge(foundNumber);
+
+		// Trace message
+		this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateCellphoneData: detachedNumber={1} - EXIT!", this.getClass().getSimpleName(), detachedNumber)); //NOI18N
+
+		// Return it
+		return detachedNumber;
+	}
+
 }
-- 
2.39.5