X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjcontacts%2Fphone%2FAddressbookAdminContactPhoneSessionBean.java;h=bd159b623e611c0632bfd9cc17ca3d668c831047;hb=e68a17a065db056aa11cfab06200358089fccfd0;hp=487c7102ec6efcb9a3cbb8ee6c036587555d8e5b;hpb=c6478efc42641c0bed37f9801e675c540eed497d;p=pizzaservice-mailer-ejb.git diff --git a/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java b/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java index 487c710..bd159b6 100644 --- a/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java +++ b/src/java/org/mxchange/jcontacts/phone/AddressbookAdminContactPhoneSessionBean.java @@ -16,13 +16,16 @@ */ 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 *

- * @author Roland Haeder + * @author Roland Haeder */ @Stateless (name = "admincontactphone", description = "An administrative bean handling contact's phone data") public class AddressbookAdminContactPhoneSessionBean extends BaseAddressbookDatabaseBean implements AdminContactsPhoneSessionBeanRemote { @@ -32,4 +35,97 @@ public class AddressbookAdminContactPhoneSessionBean extends BaseAddressbookData */ private static final long serialVersionUID = 189_217_561_460_237_108L; + @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 + } + + // Remove it from database + this.getEntityManager().remove(cellPhoneNumber); + + // 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; + } + }