X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjphone%2Fphonenumbers%2Fphone%2FAddressbookAdminPhoneSessionBean.java;h=c9f1ce6edaf78f3c39b8f33e8b24fe0c652d9979;hb=eb8c78dcd0b15d041f911cf308be65cd1f504391;hp=32837737ce8a7a5543d5f8a5f676025e5276da35;hpb=2346998e40a6628e08b14521cb862f6636dc32ec;p=addressbook-mailer-ejb.git diff --git a/src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java b/src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java index 3283773..c9f1ce6 100644 --- a/src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java +++ b/src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java @@ -16,8 +16,11 @@ */ 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; + } + }