2 * Copyright (C) 2016, 2017 Roland Häder
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as
6 * published by the Free Software Foundation, either version 3 of the
7 * License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Affero General Public License for more details.
14 * You should have received a copy of the GNU Affero General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jphone.phonenumbers.phone;
19 import java.text.MessageFormat;
20 import java.util.GregorianCalendar;
21 import javax.ejb.Stateless;
22 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
23 import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
24 import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
25 import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
28 * An EJB for administrative phone purposes
30 * @author Roland Häder<roland@mxchange.org>
32 @Stateless (name = "adminPhone", description = "An administrative bean handling phone data")
33 public class AddressbookAdminPhoneSessionBean extends BaseAddressbookDatabaseBean implements AdminPhoneSessionBeanRemote {
38 private static final long serialVersionUID = 18_597_165_817_401_853L;
41 public void deleteFaxData (final DialableFaxNumber faxNumber) {
43 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: faxNumber={1} - CALLED!", this.getClass().getSimpleName(), faxNumber));
46 if (null == faxNumber) {
48 throw new NullPointerException("faxNumber is null"); //NOI18N
49 } else if (faxNumber.getPhoneId() == null) {
51 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
52 } else if (faxNumber.getPhoneId() < 1) {
54 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N
55 } else if (faxNumber.getPhoneCountry()== null) {
57 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
58 } else if (faxNumber.getPhoneCountry().getCountryId()== null) {
60 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
61 } else if (faxNumber.getPhoneCountry().getCountryId() < 1) {
63 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid.", faxNumber.getPhoneCountry().getCountryId())); //NOI18N
64 } else if (faxNumber.getPhoneNumber() == null) {
66 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
67 } else if (faxNumber.getPhoneNumber() < 1) {
69 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N
72 // Merge it to get a managed entity back
73 DialableFaxNumber managedNumber = this.getEntityManager().getReference(faxNumber.getClass(), faxNumber.getPhoneId());
75 // Remove it from database
76 this.getEntityManager().remove(managedNumber);
79 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: EXIT!", this.getClass().getSimpleName()));
83 public void deleteLandLineData (final DialableLandLineNumber landLineNumber) {
85 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: landLineNumber={1} - CALLED!", this.getClass().getSimpleName(), landLineNumber));
88 if (null == landLineNumber) {
90 throw new NullPointerException("landLineNumber is null"); //NOI18N
91 } else if (landLineNumber.getPhoneId() == null) {
93 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
94 } else if (landLineNumber.getPhoneId() < 1) {
96 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N
97 } else if (landLineNumber.getPhoneCountry()== null) {
99 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
100 } else if (landLineNumber.getPhoneCountry().getCountryId()== null) {
102 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
103 } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) {
105 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid.", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N
106 } else if (landLineNumber.getPhoneNumber() == null) {
108 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
109 } else if (landLineNumber.getPhoneNumber() < 1) {
111 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N
114 // Merge it to get a managed entity back
115 DialableLandLineNumber managedNumber = this.getEntityManager().getReference(landLineNumber.getClass(), landLineNumber.getPhoneId());
117 // Remove it from database
118 this.getEntityManager().remove(managedNumber);
121 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: EXIT!", this.getClass().getSimpleName()));
125 public void deleteMobileData (final DialableMobileNumber mobileNumber) {
127 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: mobileNumber={1} - CALLED!", this.getClass().getSimpleName(), mobileNumber));
130 if (null == mobileNumber) {
131 // Not set, throw NPE
132 throw new NullPointerException("mobileNumber is null"); //NOI18N
133 } else if (mobileNumber.getPhoneId() == null) {
135 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
136 } else if (mobileNumber.getPhoneId() < 1) {
138 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", mobileNumber.getPhoneId())); //NOI18N
139 } else if (mobileNumber.getMobileProvider() == null) {
141 throw new NullPointerException("mobileNumber.cellphoneProvider is null"); //NOI18N
142 } else if (mobileNumber.getMobileProvider().getProviderId() == null) {
144 throw new NullPointerException("mobileNumber.cellphoneProvider.providerId is null"); //NOI18N
145 } else if (mobileNumber.getMobileProvider().getProviderId() < 1) {
147 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.cellphoneProvider.providerId={0} is not valid.", mobileNumber.getMobileProvider().getProviderId())); //NOI18N
148 } else if (mobileNumber.getPhoneNumber() == null) {
150 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
151 } else if (mobileNumber.getPhoneNumber() < 1) {
153 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", mobileNumber.getPhoneNumber())); //NOI18N
156 // Merge it to get a managed entity back
157 DialableMobileNumber managedNumber = this.getEntityManager().getReference(mobileNumber.getClass(), mobileNumber.getPhoneId());
159 // Remove it from database
160 this.getEntityManager().remove(managedNumber);
163 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: EXIT!", this.getClass().getSimpleName()));
167 public DialableFaxNumber updateFaxData (DialableFaxNumber faxNumber) {
168 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
172 public DialableLandLineNumber updateLandLineData (DialableLandLineNumber landLineNumber) {
173 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
177 public DialableMobileNumber updateMobileData (final DialableMobileNumber mobileNumber) {
179 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateMobileData: mobileNumber={1} - CALLED!", this.getClass().getSimpleName(), mobileNumber));
182 if (null == mobileNumber) {
183 // Not set, throw NPE
184 throw new NullPointerException("mobileNumber is null"); //NOI18N
185 } else if (mobileNumber.getPhoneId() == null) {
187 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
188 } else if (mobileNumber.getPhoneId() < 1) {
190 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", mobileNumber.getPhoneId())); //NOI18N
191 } else if (mobileNumber.getMobileProvider() == null) {
193 throw new NullPointerException("mobileNumber.cellphoneProvider is null"); //NOI18N
194 } else if (mobileNumber.getMobileProvider().getProviderId() == null) {
196 throw new NullPointerException("mobileNumber.cellphoneProvider.providerId is null"); //NOI18N
197 } else if (mobileNumber.getMobileProvider().getProviderId() < 1) {
199 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.cellphoneProvider.providerId={0} is not valid.", mobileNumber.getMobileProvider().getProviderId())); //NOI18N
200 } else if (mobileNumber.getPhoneNumber() == null) {
202 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
203 } else if (mobileNumber.getPhoneNumber() < 1) {
205 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", mobileNumber.getPhoneNumber())); //NOI18N
208 // Set updated timestamp
209 mobileNumber.setPhoneEntryUpdated(new GregorianCalendar());
211 // Get contact from it and find it
212 DialableMobileNumber foundNumber = this.getEntityManager().getReference(mobileNumber.getClass(), mobileNumber.getPhoneId());
215 assert (foundNumber instanceof DialableMobileNumber) : MessageFormat.format("Cell phone number with id {0} not found, but should be.", mobileNumber.getPhoneId()); //NOI18N
218 this.getLoggerBeanLocal().logDebug(MessageFormat.format("updateMobileData: foundNumber.phoneId={0}", foundNumber.getPhoneId())); //NOI18N
220 // Merge contact instance
221 DialableMobileNumber detachedNumber = this.getEntityManager().merge(foundNumber);
224 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateMobileData: detachedNumber={1} - EXIT!", this.getClass().getSimpleName(), detachedNumber)); //NOI18N
227 return detachedNumber;