]> git.mxchange.org Git - addressbook-mailer-ejb.git/blobdiff - src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java
Fixed: (please cherry-pick)
[addressbook-mailer-ejb.git] / src / java / org / mxchange / jphone / phonenumbers / phone / AddressbookAdminPhoneSessionBean.java
index 32837737ce8a7a5543d5f8a5f676025e5276da35..c9f1ce6edaf78f3c39b8f33e8b24fe0c652d9979 100644 (file)
  */
 package org.mxchange.jphone.phonenumbers.phone;
 
-import javax.ejb.Stateless;
 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
+import java.text.MessageFormat;
+import java.util.GregorianCalendar;
+import javax.ejb.Stateless;
+import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
 
 /**
  * An EJB for administrative phone purposes
@@ -32,4 +35,100 @@ public class AddressbookAdminPhoneSessionBean extends BaseAddressbookDatabaseBea
         */
        private static final long serialVersionUID = 18_597_165_817_401_853L;
 
+       @Override
+       public void deleteCellphoneData (final DialableCellphoneNumber cellPhoneNumber) {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteCellphoneData: 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
+               }
+
+               // Merge it to get a managed entity back
+               DialableCellphoneNumber managedNumber = this.getEntityManager().getReference(cellPhoneNumber.getClass(), cellPhoneNumber.getPhoneId());
+
+               // Remove it from database
+               this.getEntityManager().remove(managedNumber);
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteCellphoneData: EXIT!", this.getClass().getSimpleName()));
+       }
+
+       @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;
+       }
+
 }