2 * Copyright (C) 2016 - 2024 Free Software Foundation
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.pizzaapplication.beans.phone;
19 import java.text.MessageFormat;
20 import java.util.Calendar;
21 import java.util.List;
22 import java.util.Objects;
24 import javax.enterprise.context.RequestScoped;
25 import javax.enterprise.event.Event;
26 import javax.enterprise.event.Observes;
27 import javax.enterprise.inject.Any;
28 import javax.inject.Inject;
29 import javax.inject.Named;
30 import org.mxchange.jcountry.model.data.Country;
31 import org.mxchange.jphone.events.fax.created.ObservableCreatedFaxNumberEvent;
32 import org.mxchange.jphone.events.fax.deleted.AdminFaxNumberDeletedEvent;
33 import org.mxchange.jphone.events.fax.deleted.ObservableAdminFaxNumberDeletedEvent;
34 import org.mxchange.jphone.events.fax.removed.AdminFaxNumberRemovedFromListEvent;
35 import org.mxchange.jphone.events.fax.removed.ObservableAdminFaxNumberRemovedFromListEvent;
36 import org.mxchange.jphone.events.fax.updated.AdminFaxNumberUpdatedEvent;
37 import org.mxchange.jphone.events.fax.updated.ObservableAdminFaxNumberUpdatedEvent;
38 import org.mxchange.jphone.events.landline.created.ObservableCreatedLandLineNumberEvent;
39 import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent;
40 import org.mxchange.jphone.events.landline.deleted.ObservableAdminLandLineNumberDeletedEvent;
41 import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent;
42 import org.mxchange.jphone.events.landline.removed.ObservableAdminLandLineNumberRemovedFromListEvent;
43 import org.mxchange.jphone.events.landline.updated.AdminLandLineNumberUpdatedEvent;
44 import org.mxchange.jphone.events.landline.updated.ObservableAdminLandLineNumberUpdatedEvent;
45 import org.mxchange.jphone.events.mobile.remove.ObservableAdminMobileNumberRemovedFromListEvent;
46 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
47 import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
48 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
49 import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
50 import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
51 import org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber;
52 import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
53 import org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote;
54 import org.mxchange.pizzaapplication.beans.BasePizzaBean;
57 * Administrative bean (controller) for phone numbers
59 * @author Roland Häder<roland@mxchange.org>
61 @Named ("adminPhoneController")
63 public class PizzaAdminPhoneWebRequestBean extends BasePizzaBean implements PizzaAdminPhoneWebRequestController {
68 private static final short THREAD_STACK = 5;
73 private static final long serialVersionUID = 184_598_175_371_269_016L;
76 * Remote EJB for phone number (administrative)
78 @EJB (lookup = "java:global/pizzaservice-ejb/adminPhone!org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote")
79 private AdminPhoneSessionBeanRemote adminPhoneBean;
84 private DialableFaxNumber faxNumber;
87 * Event being fired when an administrator has deleted fax number
91 private Event<ObservableAdminFaxNumberDeletedEvent> faxNumberDeletedEvent;
94 * Event being fired when an administrator has updated fax number
98 private Event<ObservableAdminFaxNumberUpdatedEvent> faxNumberUpdatedEvent;
103 private DialableLandLineNumber landLineNumber;
106 * Event being fired when an administrator has deleted land-line number
110 private Event<ObservableAdminLandLineNumberDeletedEvent> landLineNumberDeletedEvent;
113 * Event being fired when an administrator has updated fax number
117 private Event<ObservableAdminLandLineNumberUpdatedEvent> landLineNumberUpdatedEvent;
120 * Chosen mobile number
122 private DialableMobileNumber mobileNumber;
125 * Event being fired when an administrator has deleted mobile number
129 private Event<AdminDeletedMobileNumberEvent> mobileNumberDeletedEvent;
132 * Event being fired when an administrator has updated land-line number
136 private Event<AdminUpdatedMobileNumberEvent> mobileNumberUpdatedEvent;
139 * Mobile provider instance
141 private MobileProvider mobileProvider;
144 * Area code (city dial prefix)
146 private Integer phoneAreaCode;
149 * Generic hone controller
152 private PizzaPhoneWebRequestController phoneController;
155 * Country (for dial prefix)
157 private Country phoneCountry;
160 * When the phone entry has been created (persisted)
162 private Calendar phoneEntryCreated;
165 * When the phone entry has been updated
167 private Calendar phoneEntryUpdated;
170 * Phone id (aka primary key)
172 private Long phoneId;
177 private Long phoneNumber;
180 * Event being fired when a list of all unsed fax numbers is being created.
184 private Event<ObservableAdminFaxNumberRemovedFromListEvent> removeLinkedFaxNumbersEvent;
187 * Event being fired when a list of all unsed land-line numbers is being
192 private Event<ObservableAdminLandLineNumberRemovedFromListEvent> removeLinkedLandLineNumbersEvent;
195 * Event being fired when a list of all unsed mobile numbers is being
200 private Event<ObservableAdminMobileNumberRemovedFromListEvent> removeLinkedMobileNumbersEvent;
203 * Default constructor
205 public PizzaAdminPhoneWebRequestBean () {
206 // Call super constructor
209 // String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[3].getClassName(), Thread.currentThread().getStackTrace()[3].getMethodName());
210 // System.out.println(MessageFormat.format("{0}: Constructed, caller: {1}", this.getClass().getSimpleName(), caller));
214 * Observes events being fired when a bean helper has successfully created a
215 * fax number instance.
217 * @param event Event being fired
219 public void afterCreatedFaxNumberEvent (@Observes final ObservableCreatedFaxNumberEvent event) {
220 // The event instance must be valid
223 throw new NullPointerException("event is null"); //NOI18N
224 } else if (event.getFaxNumber() == null) {
226 throw new NullPointerException("event.faxNumber is null"); //NOI18N
227 } else if (event.getFaxNumber().getPhoneId() == null) {
228 // Throw NPE yet again
229 throw new NullPointerException("event.faxNumber.phoneId is null"); //NOI18N
230 } else if (event.getFaxNumber().getPhoneId() < 1) {
231 // Throw NPE yet again
232 throw new NullPointerException(MessageFormat.format("event.faxNumber.phoneId={0} is invalid", event.getFaxNumber().getPhoneId())); //NOI18N
235 // Get fax number from event
236 DialableFaxNumber number = event.getFaxNumber();
238 // Copy all data to this bean
239 this.setPhoneId(number.getPhoneId());
240 this.setPhoneCountry(number.getPhoneCountry());
241 this.setPhoneAreaCode(number.getPhoneAreaCode());
242 this.setPhoneNumber(number.getPhoneNumber());
243 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
244 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
248 * Observes events being fired when a bean helper has successfully created a
249 * land-line number instance.
251 * @param event Event being fired
253 public void afterCreatedLandLineNumberEvent (@Observes final ObservableCreatedLandLineNumberEvent event) {
254 // The event instance must be valid
257 throw new NullPointerException("event is null"); //NOI18N
258 } else if (event.getLandLineNumber() == null) {
260 throw new NullPointerException("event.landLineNumber is null"); //NOI18N
261 } else if (event.getLandLineNumber().getPhoneId() == null) {
262 // Throw NPE yet again
263 throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
264 } else if (event.getLandLineNumber().getPhoneId() < 1) {
265 // Throw NPE yet again
266 throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getLandLineNumber().getPhoneId())); //NOI18N
269 // Get fax number from event
270 DialableLandLineNumber number = event.getLandLineNumber();
272 // Copy all data to this bean
273 this.setPhoneId(number.getPhoneId());
274 this.setPhoneCountry(number.getPhoneCountry());
275 this.setPhoneAreaCode(number.getPhoneAreaCode());
276 this.setPhoneNumber(number.getPhoneNumber());
277 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
278 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
282 * Observes events being fired when a bean helper has successfully created a
283 * mobile number instance.
285 * @param event Event being fired
287 public void afterCreatedMobileNumberEvent (@Observes final ObservableCreatedMobileNumberEvent event) {
288 // The event instance must be valid
291 throw new NullPointerException("event is null"); //NOI18N
292 } else if (event.getMobileNumber() == null) {
294 throw new NullPointerException("event.mobileNumber is null"); //NOI18N
295 } else if (event.getMobileNumber().getPhoneId() == null) {
296 // Throw NPE yet again
297 throw new NullPointerException("event.mobileNumber.phoneId is null"); //NOI18N
298 } else if (event.getMobileNumber().getPhoneId() < 1) {
299 // Throw NPE yet again
300 throw new NullPointerException(MessageFormat.format("event.mobileNumber.phoneId={0} is invalid", event.getMobileNumber().getPhoneId())); //NOI18N
303 // Get fax number from event
304 DialableMobileNumber number = event.getMobileNumber();
306 // Copy all data to this bean
307 this.setPhoneId(number.getPhoneId());
308 this.setMobileProvider(number.getMobileProvider());
309 this.setPhoneNumber(number.getPhoneNumber());
310 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
311 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
315 * Returns a list of all unused ("non-linked") land-line numbers
317 * @return List with all unused land-line numbers
319 public List<DialableFaxNumber> allNonLinkedFaxNumbers () {
320 // Get list of all mobile numbers
321 List<DialableFaxNumber> list = this.phoneController.allFaxNumbers();
323 // Visit all controllers to reduce the list
324 this.removeLinkedFaxNumbersEvent.fire(new AdminFaxNumberRemovedFromListEvent(list));
331 * Returns a list of all unused ("non-linked") land-line numbers
333 * @return List with all unused land-line numbers
335 public List<DialableLandLineNumber> allNonLinkedLandLineNumbers () {
336 // Get list of all mobile numbers
337 List<DialableLandLineNumber> list = this.phoneController.allLandLineNumbers();
339 // Visit all controllers to reduce the list
340 this.removeLinkedLandLineNumbersEvent.fire(new AdminLandLineNumberRemovedFromListEvent(list));
347 * Returns a list of all unused ("non-linked") mobile numbers
349 * @return List with all unused mobile numbers
351 public List<DialableMobileNumber> allNonLinkedMobileNumbers () {
352 // Get list of all mobile numbers
353 List<DialableMobileNumber> list = this.phoneController.allMobileNumbers();
355 // Visit all controllers to reduce the list
356 this.removeLinkedMobileNumbersEvent.fire(new AdminMobileNumberRemovedFromListEvent(list));
363 * Deletes given fax entry data
365 * @return Redirect outcome
367 public String deleteFaxData () {
368 // Get fax number from bean helper
369 DialableFaxNumber number = this.createFaxNumber();
372 if (number == null) {
373 // Not set, throw NPE
374 throw new NullPointerException("faxNumber is null"); //NOI18N
375 } else if (number.getPhoneId() == null) {
377 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
378 } else if (number.getPhoneId() < 1) {
380 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
381 } else if (number.getPhoneCountry() == null) {
383 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
384 } else if (number.getPhoneCountry().getCountryId() == null) {
386 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
387 } else if (number.getPhoneCountry().getCountryId() < 1) {
389 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
390 } else if (number.getPhoneAreaCode() == null) {
392 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
393 } else if (number.getPhoneAreaCode() < 1) {
395 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
396 } else if (number.getPhoneNumber() == null) {
398 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
399 } else if (number.getPhoneNumber() < 1) {
401 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
405 this.adminPhoneBean.deleteFaxData(number);
408 this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(number));
410 // All fine, redirect
411 return "admin_list_fax"; //NOI18N
415 * Deletes given land-line entry data
417 * @return Redirect outcome
419 public String deleteLandLineData () {
420 // Get land-line number from helper
421 DialableLandLineNumber number = this.createLandLineNumber();
424 if (number == null) {
425 // Not set, throw NPE
426 throw new NullPointerException("landLineNumber is null"); //NOI18N
427 } else if (number.getPhoneId() == null) {
429 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
430 } else if (number.getPhoneId() < 1) {
432 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
433 } else if (number.getPhoneCountry() == null) {
435 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
436 } else if (number.getPhoneCountry().getCountryId() == null) {
438 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
439 } else if (number.getPhoneCountry().getCountryId() < 1) {
441 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
442 } else if (number.getPhoneAreaCode() == null) {
444 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
445 } else if (number.getPhoneAreaCode() < 1) {
447 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
448 } else if (number.getPhoneNumber() == null) {
450 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
451 } else if (number.getPhoneNumber() < 1) {
453 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
457 this.adminPhoneBean.deleteLandLineData(number);
460 this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(number));
462 // All fine, redirect
463 return "admin_list_landline"; //NOI18N
467 * Deletes given mobile entry data
469 * @return Redirect outcome
471 public String deleteMobileData () {
472 // Get mobile number from helper
473 DialableMobileNumber number = this.createMobileNumber();
476 if (number == null) {
477 // Not set, throw NPE
478 throw new NullPointerException("mobileNumber is null"); //NOI18N
479 } else if (number.getPhoneId() == null) {
481 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
482 } else if (number.getPhoneId() < 1) {
484 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
485 } else if (number.getMobileProvider() == null) {
487 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
488 } else if (number.getMobileProvider().getProviderId() == null) {
490 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
491 } else if (number.getMobileProvider().getProviderId() < 1) {
493 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
494 } else if (number.getPhoneNumber() == null) {
496 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
497 } else if (number.getPhoneNumber() < 1) {
499 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
503 this.adminPhoneBean.deleteMobileData(number);
506 this.mobileNumberDeletedEvent.fire(new AdminMobileNumberDeletedEvent(number));
508 // All fine, redirect
509 return "admin_list_mobile"; //NOI18N
513 * Changes fax entry data
515 * @return Redirect outcome
517 public String doChangeFaxNumber () {
518 // Get fax number from bean helper
519 DialableFaxNumber number = this.createFaxNumber();
522 if (number == null) {
523 // Not set, throw NPE
524 throw new NullPointerException("faxNumber is null"); //NOI18N
525 } else if (number.getPhoneId() == null) {
527 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
528 } else if (number.getPhoneId() < 1) {
530 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
531 } else if (number.getPhoneCountry() == null) {
533 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
534 } else if (number.getPhoneCountry().getCountryId() == null) {
536 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
537 } else if (number.getPhoneCountry().getCountryId() < 1) {
539 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
540 } else if (number.getPhoneAreaCode() == null) {
542 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
543 } else if (number.getPhoneAreaCode() < 1) {
545 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
546 } else if (number.getPhoneNumber() == null) {
548 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
549 } else if (number.getPhoneNumber() < 1) {
551 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
554 // Is the mobile provider and number the same?
555 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
557 this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
559 // No difference in both together, no need to edit
564 number.setPhoneCountry(this.getPhoneCountry());
565 number.setPhoneAreaCode(this.getPhoneAreaCode());
566 number.setPhoneNumber(this.getPhoneNumber());
569 DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(number);
572 this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber));
574 // All fine, redirect
575 return "admin_show_fax"; //NOI18N
579 * Changes land-line entry data
581 * @return Redirect outcome
583 public String doChangeLandLineNumber () {
584 // Get land-line number from helper
585 DialableLandLineNumber number = this.createLandLineNumber();
588 if (number == null) {
589 // Not set, throw NPE
590 throw new NullPointerException("landLineNumber is null"); //NOI18N
591 } else if (number.getPhoneId() == null) {
593 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
594 } else if (number.getPhoneId() < 1) {
596 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
597 } else if (number.getPhoneCountry() == null) {
599 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
600 } else if (number.getPhoneCountry().getCountryId() == null) {
602 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
603 } else if (number.getPhoneCountry().getCountryId() < 1) {
605 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
606 } else if (number.getPhoneAreaCode() == null) {
608 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
609 } else if (number.getPhoneAreaCode() < 1) {
611 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
612 } else if (number.getPhoneNumber() == null) {
614 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
615 } else if (number.getPhoneNumber() < 1) {
617 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
620 // Is the mobile provider and number the same?
621 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
623 this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
625 // No difference in both together, no need to edit
630 number.setPhoneCountry(this.getPhoneCountry());
631 number.setPhoneAreaCode(this.getPhoneAreaCode());
632 number.setPhoneNumber(this.getPhoneNumber());
635 DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(number);
638 this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber));
640 // All fine, redirect
641 return "admin_show_landline"; //NOI18N
645 * Changes mobile entry data
647 * @return Redirect outcome
649 public String doUpdateMobileNumber () {
650 // Get mobile number from helper
651 DialableMobileNumber number = this.createMobileNumber();
654 if (number == null) {
655 // Not set, throw NPE
656 throw new NullPointerException("mobileNumber is null"); //NOI18N
657 } else if (number.getPhoneId() == null) {
659 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
660 } else if (number.getPhoneId() < 1) {
662 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
663 } else if (number.getMobileProvider() == null) {
665 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
666 } else if (number.getMobileProvider().getProviderId() == null) {
668 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
669 } else if (number.getMobileProvider().getProviderId() < 1) {
671 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
672 } else if (number.getPhoneNumber() == null) {
674 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
675 } else if (number.getPhoneNumber() < 1) {
677 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
678 } else if (this.getMobileProvider() == null) {
680 this.showFacesMessage("form_edit_mobile:mobileProvider", "ERROR_ADMIN_NO_MOBILE_PROVIDER_SELECTED"); //NOI18N
682 } else if (this.getMobileProvider().getProviderId() == null) {
683 // Throw NPE again ...
684 throw new NullPointerException("this.mobileProvider.providerId is null"); //NOI18N
685 } else if (this.getMobileProvider().getProviderId() < 0) {
687 throw new IllegalArgumentException(MessageFormat.format("this.mobileProvider.providerId={0} is not valid.", this.getMobileProvider().getProviderId())); //NOI18N
688 } else if (this.getPhoneNumber() == null) {
690 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_EMPTY_MOBILE_NUMBER"); //NOI18N
694 // Is the mobile provider and number the same?
695 if ((Objects.equals(this.getMobileProvider(), number.getMobileProvider())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
697 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
699 // No difference in both together, no need to edit
704 number.setMobileProvider(this.getMobileProvider());
705 number.setPhoneNumber(this.getPhoneNumber());
708 DialableMobileNumber updatedNumber = this.adminPhoneBean.updateMobileData(number);
711 this.mobileNumberUpdatedEvent.fire(new AdminMobileNumberUpdatedEvent(updatedNumber));
713 // All fine, redirect
714 return "admin_show_mobile"; //NOI18N
718 * Getter for chosen fax number
722 public DialableFaxNumber getFaxNumber () {
723 return this.faxNumber;
727 * Setter for chosen fax number
729 * @param faxNumber fax number
731 public void setFaxNumber (final DialableFaxNumber faxNumber) {
732 this.faxNumber = faxNumber;
736 * Getter for chosen land-line number
738 * @return land-line number
740 public DialableLandLineNumber getLandLineNumber () {
741 return this.landLineNumber;
745 * Setter for chosen land-line number
747 * @param landLineNumber land-line number
749 public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
750 this.landLineNumber = landLineNumber;
754 * Getter for chosen mobile number
756 * @return mobile number
758 public DialableMobileNumber getMobileNumber () {
759 return this.mobileNumber;
763 * Setter for chosen mobile number
765 * @param mobileNumber mobile number
767 public void setMobileNumber (final DialableMobileNumber mobileNumber) {
768 this.mobileNumber = mobileNumber;
772 * Getter for mobile provider
774 * @return An instance of a MobileProvider class
776 public MobileProvider getMobileProvider () {
777 return this.mobileProvider;
781 * Setter for mobile provider
783 * @param mobileProvider An instance of a MobileProvider class
785 public void setMobileProvider (final MobileProvider mobileProvider) {
786 this.mobileProvider = mobileProvider;
790 * Getter for phone area code
792 * @return Phone area code
794 public Integer getPhoneAreaCode () {
795 return this.phoneAreaCode;
799 * Setter for phone area code
801 * @param phoneAreaCode Phone area code
803 public void setPhoneAreaCode (final Integer phoneAreaCode) {
804 this.phoneAreaCode = phoneAreaCode;
808 * Getter for phone country (for dial prefix)
810 * @return Phone country
812 public Country getPhoneCountry () {
813 return this.phoneCountry;
817 * Setter for phone country (for dial prefix)
819 * @param phoneCountry Phone country
821 public void setPhoneCountry (final Country phoneCountry) {
822 this.phoneCountry = phoneCountry;
826 * Getter for phone entry created timestamp
828 * @return Phone entry created timestamp
830 @SuppressWarnings ("ReturnOfDateField")
831 public Calendar getPhoneEntryCreated () {
832 return this.phoneEntryCreated;
836 * Setter for phone entry created timestamp
838 * @param phoneEntryCreated Phone entry created timestamp
840 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
841 public void setPhoneEntryCreated (final Calendar phoneEntryCreated) {
842 this.phoneEntryCreated = phoneEntryCreated;
846 * Getter for phone entry updated timestamp
848 * @return Phone entry updated timestamp
850 @SuppressWarnings ("ReturnOfDateField")
851 public Calendar getPhoneEntryUpdated () {
852 return this.phoneEntryUpdated;
856 * Setter for phone entry updated timestamp
858 * @param phoneEntryUpdated Phone entry updated timestamp
860 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
861 public void setPhoneEntryUpdated (final Calendar phoneEntryUpdated) {
862 this.phoneEntryUpdated = phoneEntryUpdated;
866 * Getter for phone id
870 public Long getPhoneId () {
875 * Setter for phone id
877 * @param phoneId Phone id
879 public void setPhoneId (final Long phoneId) {
880 this.phoneId = phoneId;
884 * Getter for dial number without prefix
886 * @return Dial number without prefix
888 public Long getPhoneNumber () {
889 return this.phoneNumber;
893 * Setter for dial number without prefix
895 * @param phoneNumber Dial number without prefix
897 public void setPhoneNumber (final Long phoneNumber) {
898 this.phoneNumber = phoneNumber;
902 * Returns an instance of a DialableFaxNumber from all fields stored in this
905 * @return An instance of a DialableFaxNumber class
907 private DialableFaxNumber createFaxNumber () {
909 DialableFaxNumber number = new FaxNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
911 // Add all other data
912 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
913 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
916 if (this.getPhoneId() instanceof Long) {
918 number.setPhoneId(this.getPhoneId());
926 * Returns an instance of a DialableLandLineNumber from all fields stored in
929 * @return An instance of a DialableLandLineNumber class
931 private DialableLandLineNumber createLandLineNumber () {
933 DialableLandLineNumber number = new LandLineNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
935 // Add all other data
936 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
937 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
940 if (this.getPhoneId() instanceof Long) {
942 number.setPhoneId(this.getPhoneId());
950 * Returns an instance of a DialableMobileNumber from all fields stored in
953 * @return An instance of a DialableMobileNumber class
955 private DialableMobileNumber createMobileNumber () {
957 DialableMobileNumber number = new MobileNumber(this.getMobileProvider(), this.getPhoneNumber());
959 // Add all other data
960 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
961 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
964 if (this.getPhoneId() instanceof Long) {
966 number.setPhoneId(this.getPhoneId());