]> 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 0473e7742d2bec503fa207b3cb99f8ed8b658ac9..c9f1ce6edaf78f3c39b8f33e8b24fe0c652d9979 100644 (file)
  */
 package org.mxchange.jphone.phonenumbers.phone;
 
+import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
 import java.text.MessageFormat;
-import java.util.List;
+import java.util.GregorianCalendar;
 import javax.ejb.Stateless;
-import javax.persistence.Query;
-import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
-import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber;
 import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
-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;
 
 /**
  * An EJB for administrative phone purposes
@@ -41,61 +35,100 @@ public class AddressbookAdminPhoneSessionBean extends BaseAddressbookDatabaseBea
         */
        private static final long serialVersionUID = 18_597_165_817_401_853L;
 
-       @SuppressWarnings ("unchecked")
-       @Override
-       public List<DialableCellphoneNumber> allCellphoneNumbers () {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allCellphoneNumbers: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get query
-               Query query = this.getEntityManager().createNamedQuery("AllCellphoneNumbers", CellphoneNumber.class); //NOI18N
-
-               // Get list from it
-               List<DialableCellphoneNumber> list = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allCellphoneNumbers: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
-
-               // Return it
-               return list;
-       }
-
-       @SuppressWarnings ("unchecked")
        @Override
-       public List<DialableFaxNumber> allFaxNumbers () {
+       public void deleteCellphoneData (final DialableCellphoneNumber cellPhoneNumber) {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allFaxNumbers: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get query
-               Query query = this.getEntityManager().createNamedQuery("AllFaxNumbers", FaxNumber.class); //NOI18N
-
-               // Get list from it
-               List<DialableFaxNumber> list = query.getResultList();
+               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}.allFaxNumbers: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
-
-               // Return it
-               return list;
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteCellphoneData: EXIT!", this.getClass().getSimpleName()));
        }
 
-       @SuppressWarnings ("unchecked")
        @Override
-       public List<DialableLandLineNumber> allLandLineNumbers () {
+       public DialableCellphoneNumber updateCellphoneData (final DialableCellphoneNumber cellPhoneNumber) {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allLandLineNumbers: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get query
-               Query query = this.getEntityManager().createNamedQuery("AllLandLineNumbers", LandLineNumber.class); //NOI18N
-
-               // Get list from it
-               List<DialableLandLineNumber> list = query.getResultList();
+               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}.allLandLineNumbers: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateCellphoneData: detachedNumber={1} - EXIT!", this.getClass().getSimpleName(), detachedNumber)); //NOI18N
 
                // Return it
-               return list;
+               return detachedNumber;
        }
 
 }