From: Roland Häder Date: Tue, 9 Aug 2016 13:44:15 +0000 (+0200) Subject: Continued: (please cherry-pick) X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=d7322d63ac67ed667433fbd938af43a2731c805c;p=addressbook-mailer-ejb.git Continued: (please cherry-pick) - implemented updateCellphoneData() Signed-off-by: Roland Häder --- 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; + } + }