]> git.mxchange.org Git - addressbook-mailer-ejb.git/blob - src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java
Please cherry-pick:
[addressbook-mailer-ejb.git] / src / java / org / mxchange / jphone / phonenumbers / phone / AddressbookAdminPhoneSessionBean.java
1 /*
2  * Copyright (C) 2016, 2017 Roland Häder
3  *
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.
8  *
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.
13  *
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/>.
16  */
17 package org.mxchange.jphone.phonenumbers.phone;
18
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.fax.FaxNumbers;
25 import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
26 import org.mxchange.jphone.phonenumbers.landline.LandLineNumbers;
27 import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
28 import org.mxchange.jphone.phonenumbers.mobile.MobileNumbers;
29
30 /**
31  * An EJB for administrative phone purposes
32  * <p>
33  * @author Roland Häder<roland@mxchange.org>
34  */
35 @Stateless (name = "adminPhone", description = "An administrative bean handling phone data")
36 public class AddressbookAdminPhoneSessionBean extends BaseAddressbookDatabaseBean implements AdminPhoneSessionBeanRemote {
37
38         /**
39          * Serial number
40          */
41         private static final long serialVersionUID = 18_597_165_817_401_853L;
42
43         /**
44          * Default constructor
45          */
46         public AddressbookAdminPhoneSessionBean () {
47                 // Call super constructor
48                 super();
49         }
50
51         @Override
52         public void deleteFaxData (final DialableFaxNumber faxNumber) {
53                 // Trace message
54                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteFaxData: faxNumber={1} - CALLED!", this.getClass().getSimpleName(), faxNumber));
55
56                 // Is all data set
57                 if (faxNumber == null) {
58                         // Not set, throw NPE
59                         throw new NullPointerException("faxNumber is null"); //NOI18N
60                 } else if (faxNumber.getPhoneId() == null) {
61                         // Throw NPE again
62                         throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
63                 } else if (faxNumber.getPhoneId() < 1) {
64                         // Invalid number
65                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N
66                 } else if (faxNumber.getPhoneCountry() == null) {
67                         // Throw NPE
68                         throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
69                 } else if (faxNumber.getPhoneCountry().getCountryId() == null) {
70                         // Throw NPE
71                         throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
72                 } else if (faxNumber.getPhoneCountry().getCountryId() < 1) {
73                         // Throw NPE
74                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", faxNumber.getPhoneCountry().getCountryId())); //NOI18N
75                 } else if (faxNumber.getPhoneAreaCode() == null) {
76                         // ... throw again
77                         throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
78                 } else if (faxNumber.getPhoneAreaCode() < 1) {
79                         // Id not valid
80                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", faxNumber.getPhoneAreaCode())); //NOI18N
81                 } else if (faxNumber.getPhoneNumber() == null) {
82                         // Throw NPE again
83                         throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
84                 } else if (faxNumber.getPhoneNumber() < 1) {
85                         // Throw NPE again
86                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N
87                 }
88
89                 // Get a managed instance
90                 DialableFaxNumber managedNumber = this.getEntityManager().getReference(faxNumber.getClass(), faxNumber.getPhoneId());
91
92                 // Remove it from database
93                 this.getEntityManager().remove(managedNumber);
94
95                 // Trace message
96                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: EXIT!", this.getClass().getSimpleName()));
97         }
98
99         @Override
100         public void deleteLandLineData (final DialableLandLineNumber landLineNumber) {
101                 // Trace message
102                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteLandLineData: landLineNumber={1} - CALLED!", this.getClass().getSimpleName(), landLineNumber));
103
104                 // Is all data set
105                 if (landLineNumber == null) {
106                         // Not set, throw NPE
107                         throw new NullPointerException("landLineNumber is null"); //NOI18N
108                 } else if (landLineNumber.getPhoneId() == null) {
109                         // Throw NPE again
110                         throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
111                 } else if (landLineNumber.getPhoneId() < 1) {
112                         // Invalid number
113                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N
114                 } else if (landLineNumber.getPhoneCountry() == null) {
115                         // Throw NPE
116                         throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
117                 } else if (landLineNumber.getPhoneCountry().getCountryId() == null) {
118                         // Throw NPE
119                         throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
120                 } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) {
121                         // Throw NPE
122                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N
123                 } else if (landLineNumber.getPhoneAreaCode() == null) {
124                         // ... throw again
125                         throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
126                 } else if (landLineNumber.getPhoneAreaCode() < 1) {
127                         // Id not valid
128                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", landLineNumber.getPhoneAreaCode())); //NOI18N
129                 } else if (landLineNumber.getPhoneNumber() == null) {
130                         // Throw NPE again
131                         throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
132                 } else if (landLineNumber.getPhoneNumber() < 1) {
133                         // Throw NPE again
134                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N
135                 }
136
137                 // Get a managed instance
138                 DialableLandLineNumber managedNumber = this.getEntityManager().getReference(landLineNumber.getClass(), landLineNumber.getPhoneId());
139
140                 // Remove it from database
141                 this.getEntityManager().remove(managedNumber);
142
143                 // Trace message
144                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: EXIT!", this.getClass().getSimpleName()));
145         }
146
147         @Override
148         public void deleteMobileData (final DialableMobileNumber mobileNumber) {
149                 // Trace message
150                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: mobileNumber={1} - CALLED!", this.getClass().getSimpleName(), mobileNumber));
151
152                 // Is all data set
153                 if (null == mobileNumber) {
154                         // Not set, throw NPE
155                         throw new NullPointerException("mobileNumber is null"); //NOI18N
156                 } else if (mobileNumber.getPhoneId() == null) {
157                         // Throw NPE again
158                         throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
159                 } else if (mobileNumber.getPhoneId() < 1) {
160                         // Invalid number
161                         throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", mobileNumber.getPhoneId())); //NOI18N
162                 } else if (mobileNumber.getMobileProvider() == null) {
163                         // Throw NPE
164                         throw new NullPointerException("mobileNumber.cellphoneProvider is null"); //NOI18N
165                 } else if (mobileNumber.getMobileProvider().getProviderId() == null) {
166                         // ... throw again
167                         throw new NullPointerException("mobileNumber.cellphoneProvider.providerId is null"); //NOI18N
168                 } else if (mobileNumber.getMobileProvider().getProviderId() < 1) {
169                         // Id not valid
170                         throw new IllegalArgumentException(MessageFormat.format("mobileNumber.cellphoneProvider.providerId={0} is not valid.", mobileNumber.getMobileProvider().getProviderId())); //NOI18N
171                 } else if (mobileNumber.getPhoneNumber() == null) {
172                         // Throw NPE again
173                         throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
174                 } else if (mobileNumber.getPhoneNumber() < 1) {
175                         // Throw NPE again
176                         throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", mobileNumber.getPhoneNumber())); //NOI18N
177                 }
178
179                 // Get a managed instance
180                 DialableMobileNumber managedNumber = this.getEntityManager().getReference(mobileNumber.getClass(), mobileNumber.getPhoneId());
181
182                 // Remove it from database
183                 this.getEntityManager().remove(managedNumber);
184
185                 // Trace message
186                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteMobileData: EXIT!", this.getClass().getSimpleName()));
187         }
188
189         @Override
190         public DialableFaxNumber updateFaxData (final DialableFaxNumber faxNumber) {
191                 // Trace message
192                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateFaxData: faxNumber={1} - CALLED!", this.getClass().getSimpleName(), faxNumber));
193
194                 // Is all data set
195                 if (faxNumber == null) {
196                         // Not set, throw NPE
197                         throw new NullPointerException("faxNumber is null"); //NOI18N
198                 } else if (faxNumber.getPhoneId() == null) {
199                         // Throw NPE again
200                         throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
201                 } else if (faxNumber.getPhoneId() < 1) {
202                         // Invalid number
203                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N
204                 } else if (faxNumber.getPhoneCountry() == null) {
205                         // Throw NPE
206                         throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
207                 } else if (faxNumber.getPhoneCountry().getCountryId() == null) {
208                         // Throw NPE
209                         throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
210                 } else if (faxNumber.getPhoneCountry().getCountryId() < 1) {
211                         // Throw NPE
212                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", faxNumber.getPhoneCountry().getCountryId())); //NOI18N
213                 } else if (faxNumber.getPhoneAreaCode() == null) {
214                         // ... throw again
215                         throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
216                 } else if (faxNumber.getPhoneAreaCode() < 1) {
217                         // Id not valid
218                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", faxNumber.getPhoneAreaCode())); //NOI18N
219                 } else if (faxNumber.getPhoneNumber() == null) {
220                         // Throw NPE again
221                         throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
222                 } else if (faxNumber.getPhoneNumber() < 1) {
223                         // Throw NPE again
224                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N
225                 }
226
227                 // Get contact from it and find it
228                 DialableFaxNumber managedNumber = this.getEntityManager().find(faxNumber.getClass(), faxNumber.getPhoneId());
229
230                 // Should be found
231                 assert (managedNumber instanceof DialableFaxNumber) : MessageFormat.format("Cell phone number with id {0} not found, but should be.", faxNumber.getPhoneId()); //NOI18N
232
233                 // Debug message
234                 this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.updateFaxData: managedNumber.phoneId={1}", this.getClass().getSimpleName(), managedNumber.getPhoneId())); //NOI18N
235
236                 // Set updated timestamp
237                 FaxNumbers.copyAll(faxNumber, managedNumber);
238                 managedNumber.setPhoneEntryUpdated(new GregorianCalendar());
239
240                 // Trace message
241                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateFaxData: managedNumber={1} - EXIT!", this.getClass().getSimpleName(), managedNumber)); //NOI18N
242
243                 // Return it
244                 return managedNumber;
245         }
246
247         @Override
248         public DialableLandLineNumber updateLandLineData (final DialableLandLineNumber landLineNumber) {
249                 // Trace message
250                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateLandLineData: landLineNumber={1} - CALLED!", this.getClass().getSimpleName(), landLineNumber));
251
252                 // Is all data set
253                 if (landLineNumber == null) {
254                         // Not set, throw NPE
255                         throw new NullPointerException("landLineNumber is null"); //NOI18N
256                 } else if (landLineNumber.getPhoneId() == null) {
257                         // Throw NPE again
258                         throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
259                 } else if (landLineNumber.getPhoneId() < 1) {
260                         // Invalid number
261                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N
262                 } else if (landLineNumber.getPhoneCountry() == null) {
263                         // Throw NPE
264                         throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
265                 } else if (landLineNumber.getPhoneCountry().getCountryId() == null) {
266                         // Throw NPE
267                         throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
268                 } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) {
269                         // Throw NPE
270                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N
271                 } else if (landLineNumber.getPhoneAreaCode() == null) {
272                         // ... throw again
273                         throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
274                 } else if (landLineNumber.getPhoneAreaCode() < 1) {
275                         // Id not valid
276                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", landLineNumber.getPhoneAreaCode())); //NOI18N
277                 } else if (landLineNumber.getPhoneNumber() == null) {
278                         // Throw NPE again
279                         throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
280                 } else if (landLineNumber.getPhoneNumber() < 1) {
281                         // Throw NPE again
282                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N
283                 }
284
285                 // Get contact from it and find it
286                 DialableLandLineNumber managedNumber = this.getEntityManager().find(landLineNumber.getClass(), landLineNumber.getPhoneId());
287
288                 // Should be found
289                 assert (managedNumber instanceof DialableLandLineNumber) : MessageFormat.format("Cell phone number with id {0} not found, but should be.", landLineNumber.getPhoneId()); //NOI18N
290
291                 // Debug message
292                 this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.updateLandLineData: managedNumber.phoneId={1}", this.getClass().getSimpleName(), managedNumber.getPhoneId())); //NOI18N
293
294                 // Set updated timestamp
295                 LandLineNumbers.copyAll(landLineNumber, managedNumber);
296                 managedNumber.setPhoneEntryUpdated(new GregorianCalendar());
297
298                 // Trace message
299                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateLandLineData: managedNumber={1} - EXIT!", this.getClass().getSimpleName(), managedNumber)); //NOI18N
300
301                 // Return it
302                 return managedNumber;
303         }
304
305         @Override
306         public DialableMobileNumber updateMobileData (final DialableMobileNumber mobileNumber) {
307                 // Trace message
308                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateMobileData: mobileNumber={1} - CALLED!", this.getClass().getSimpleName(), mobileNumber));
309
310                 // Is all data set
311                 if (null == mobileNumber) {
312                         // Not set, throw NPE
313                         throw new NullPointerException("mobileNumber is null"); //NOI18N
314                 } else if (mobileNumber.getPhoneId() == null) {
315                         // Throw NPE again
316                         throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
317                 } else if (mobileNumber.getPhoneId() < 1) {
318                         // Invalid number
319                         throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", mobileNumber.getPhoneId())); //NOI18N
320                 } else if (mobileNumber.getMobileProvider() == null) {
321                         // Throw NPE
322                         throw new NullPointerException("mobileNumber.cellphoneProvider is null"); //NOI18N
323                 } else if (mobileNumber.getMobileProvider().getProviderId() == null) {
324                         // ... throw again
325                         throw new NullPointerException("mobileNumber.cellphoneProvider.providerId is null"); //NOI18N
326                 } else if (mobileNumber.getMobileProvider().getProviderId() < 1) {
327                         // Id not valid
328                         throw new IllegalArgumentException(MessageFormat.format("mobileNumber.cellphoneProvider.providerId={0} is not valid.", mobileNumber.getMobileProvider().getProviderId())); //NOI18N
329                 } else if (mobileNumber.getPhoneNumber() == null) {
330                         // Throw NPE again
331                         throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
332                 } else if (mobileNumber.getPhoneNumber() < 1) {
333                         // Throw NPE again
334                         throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", mobileNumber.getPhoneNumber())); //NOI18N
335                 }
336
337                 // Get contact from it and find it
338                 DialableMobileNumber managedNumber = this.getEntityManager().find(mobileNumber.getClass(), mobileNumber.getPhoneId());
339
340                 // Should be found
341                 assert (managedNumber instanceof DialableMobileNumber) : MessageFormat.format("Cell phone number with id {0} not found, but should be.", mobileNumber.getPhoneId()); //NOI18N
342
343                 // Debug message
344                 this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.updateMobileData: managedNumber.phoneId={1}", this.getClass().getSimpleName(), managedNumber.getPhoneId())); //NOI18N
345
346                 // Set updated timestamp
347                 MobileNumbers.copyAll(mobileNumber, managedNumber);
348                 managedNumber.setPhoneEntryUpdated(new GregorianCalendar());
349
350                 // Trace message
351                 this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateMobileData: managedNumber={1} - EXIT!", this.getClass().getSimpleName(), managedNumber)); //NOI18N
352
353                 // Return it
354                 return managedNumber;
355         }
356
357 }