2 * Copyright (C) 2016 - 2020 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.jjobs.beans.phone;
19 import java.text.MessageFormat;
20 import java.util.Date;
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.jjobs.beans.BaseJobsBean;
32 import org.mxchange.jphone.events.fax.created.ObservableCreatedFaxNumberEvent;
33 import org.mxchange.jphone.events.fax.deleted.AdminDeletedFaxNumberEvent;
34 import org.mxchange.jphone.events.fax.deleted.AdminFaxNumberDeletedEvent;
35 import org.mxchange.jphone.events.fax.removed.AdminFaxNumberRemovedFromListEvent;
36 import org.mxchange.jphone.events.fax.removed.AdminRemoveFaxNumberFromListEvent;
37 import org.mxchange.jphone.events.fax.updated.AdminFaxNumberUpdatedEvent;
38 import org.mxchange.jphone.events.fax.updated.AdminUpdatedFaxNumberEvent;
39 import org.mxchange.jphone.events.landline.created.ObservableCreatedLandLineNumberEvent;
40 import org.mxchange.jphone.events.landline.deleted.AdminDeletedLandLineNumberEvent;
41 import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent;
42 import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent;
43 import org.mxchange.jphone.events.landline.removed.AdminRemoveLandLineNumberFromListEvent;
44 import org.mxchange.jphone.events.landline.updated.AdminLandLineNumberUpdatedEvent;
45 import org.mxchange.jphone.events.landline.updated.AdminUpdatedLandLineNumberEvent;
46 import org.mxchange.jphone.events.mobile.created.ObservableCreatedMobileNumberEvent;
47 import org.mxchange.jphone.events.mobile.deleted.AdminDeletedMobileNumberEvent;
48 import org.mxchange.jphone.events.mobile.deleted.AdminMobileNumberDeletedEvent;
49 import org.mxchange.jphone.events.mobile.remove.AdminMobileNumberRemovedFromListEvent;
50 import org.mxchange.jphone.events.mobile.remove.AdminRemoveMobileNumberFromListEvent;
51 import org.mxchange.jphone.events.mobile.updated.AdminMobileNumberUpdatedEvent;
52 import org.mxchange.jphone.events.mobile.updated.AdminUpdatedMobileNumberEvent;
53 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
54 import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
55 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
56 import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
57 import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
58 import org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber;
59 import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
60 import org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote;
63 * Administrative controller (bean) for phone numbers
65 * @author Roland Häder<roland@mxchange.org>
67 @Named ("adminPhoneController")
69 public class JobsAdminPhoneWebRequestBean extends BaseJobsBean implements JobsAdminPhoneWebRequestController {
74 private static final long serialVersionUID = 184_598_175_371_269_016L;
77 * Remote EJB for phone number (administrative)
79 @EJB (lookup = "java:global/jjobs-ejb/adminPhone!org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote")
80 private AdminPhoneSessionBeanRemote adminPhoneBean;
85 private DialableFaxNumber faxNumber;
88 * Event being fired when an administrator has deleted fax number
92 private Event<AdminDeletedFaxNumberEvent> faxNumberDeletedEvent;
95 * Event being fired when an administrator has updated fax number
99 private Event<AdminUpdatedFaxNumberEvent> faxNumberUpdatedEvent;
104 private DialableLandLineNumber landLineNumber;
107 * Event being fired when an administrator has deleted land-line number
111 private Event<AdminDeletedLandLineNumberEvent> landLineNumberDeletedEvent;
114 * Event being fired when an administrator has updated fax number
118 private Event<AdminUpdatedLandLineNumberEvent> landLineNumberUpdatedEvent;
121 * Chosen mobile number
123 private DialableMobileNumber mobileNumber;
126 * Event being fired when an administrator has deleted mobile number
130 private Event<AdminDeletedMobileNumberEvent> mobileNumberDeletedEvent;
133 * Event being fired when an administrator has updated land-line number
137 private Event<AdminUpdatedMobileNumberEvent> mobileNumberUpdatedEvent;
142 private MobileProvider mobileProvider;
145 * Area code (city dial prefix)
147 private Integer phoneAreaCode;
150 * Generic hone controller
153 private JobsPhoneWebRequestController phoneController;
156 * Country (for dial prefix)
158 private Country phoneCountry;
161 * When the phone entry has been created (persisted)
163 private Date phoneEntryCreated;
166 * When the phone entry has been updated
168 private Date phoneEntryUpdated;
171 * Phone id (aka primary key)
173 private Long phoneId;
178 private Long phoneNumber;
181 * Event being fired when a list of all unsed fax numbers is being created.
185 private Event<AdminRemoveFaxNumberFromListEvent> removeLinkedFaxNumbersEvent;
188 * Event being fired when a list of all unsed land-line numbers is being
193 private Event<AdminRemoveLandLineNumberFromListEvent> removeLinkedLandLineNumbersEvent;
196 * Event being fired when a list of all unsed mobile numbers is being
201 private Event<AdminRemoveMobileNumberFromListEvent> removeLinkedMobileNumbersEvent;
204 * Default constructor
206 public JobsAdminPhoneWebRequestBean () {
207 // Call super constructor
212 * Observes events being fired when a bean helper has successfully created a
213 * fax number instance.
215 * @param event Event being fired
217 public void afterCreatedFaxNumberEvent (@Observes final ObservableCreatedFaxNumberEvent event) {
218 // The event instance must be valid
221 throw new NullPointerException("event is null"); //NOI18N
222 } else if (event.getFaxNumber() == null) {
224 throw new NullPointerException("event.faxNumber is null"); //NOI18N
225 } else if (event.getFaxNumber().getPhoneId() == null) {
226 // Throw NPE yet again
227 throw new NullPointerException("event.faxNumber.phoneId is null"); //NOI18N
228 } else if (event.getFaxNumber().getPhoneId() < 1) {
229 // Throw NPE yet again
230 throw new NullPointerException(MessageFormat.format("event.faxNumber.phoneId={0} is invalid", event.getFaxNumber().getPhoneId())); //NOI18N
233 // Get fax number from event
234 DialableFaxNumber number = event.getFaxNumber();
236 // Copy all data to this bean
237 this.setPhoneId(number.getPhoneId());
238 this.setPhoneCountry(number.getPhoneCountry());
239 this.setPhoneAreaCode(number.getPhoneAreaCode());
240 this.setPhoneNumber(number.getPhoneNumber());
241 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
242 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
246 * Observes events being fired when a bean helper has successfully created a
247 * land-line number instance.
249 * @param event Event being fired
251 public void afterCreatedLandLineNumberEvent (@Observes final ObservableCreatedLandLineNumberEvent event) {
252 // The event instance must be valid
255 throw new NullPointerException("event is null"); //NOI18N
256 } else if (event.getLandLineNumber() == null) {
258 throw new NullPointerException("event.landLineNumber is null"); //NOI18N
259 } else if (event.getLandLineNumber().getPhoneId() == null) {
260 // Throw NPE yet again
261 throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
262 } else if (event.getLandLineNumber().getPhoneId() < 1) {
263 // Throw NPE yet again
264 throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getLandLineNumber().getPhoneId())); //NOI18N
267 // Get fax number from event
268 DialableLandLineNumber number = event.getLandLineNumber();
270 // Copy all data to this bean
271 this.setPhoneId(number.getPhoneId());
272 this.setPhoneCountry(number.getPhoneCountry());
273 this.setPhoneAreaCode(number.getPhoneAreaCode());
274 this.setPhoneNumber(number.getPhoneNumber());
275 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
276 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
280 * Observes events being fired when a bean helper has successfully created a
281 * mobile number instance.
283 * @param event Event being fired
285 public void afterCreatedMobileNumberEvent (@Observes final ObservableCreatedMobileNumberEvent event) {
286 // The event instance must be valid
289 throw new NullPointerException("event is null"); //NOI18N
290 } else if (event.getMobileNumber() == null) {
292 throw new NullPointerException("event.mobileNumber is null"); //NOI18N
293 } else if (event.getMobileNumber().getPhoneId() == null) {
294 // Throw NPE yet again
295 throw new NullPointerException("event.mobileNumber.phoneId is null"); //NOI18N
296 } else if (event.getMobileNumber().getPhoneId() < 1) {
297 // Throw NPE yet again
298 throw new NullPointerException(MessageFormat.format("event.mobileNumber.phoneId={0} is invalid", event.getMobileNumber().getPhoneId())); //NOI18N
301 // Get fax number from event
302 DialableMobileNumber number = event.getMobileNumber();
304 // Copy all data to this bean
305 this.setPhoneId(number.getPhoneId());
306 this.setMobileProvider(number.getMobileProvider());
307 this.setPhoneNumber(number.getPhoneNumber());
308 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
309 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
313 * Returns a list of all unused ("non-linked") land-line numbers
315 * @return List with all unused land-line numbers
317 public List<DialableFaxNumber> allNonLinkedFaxNumbers () {
318 // Get list of all mobile numbers
319 List<DialableFaxNumber> list = this.phoneController.allFaxNumbers();
321 // Visit all controllers to reduce the list
322 this.removeLinkedFaxNumbersEvent.fire(new AdminFaxNumberRemovedFromListEvent(list));
329 * Returns a list of all unused ("non-linked") land-line numbers
331 * @return List with all unused land-line numbers
333 public List<DialableLandLineNumber> allNonLinkedLandLineNumbers () {
334 // Get list of all mobile numbers
335 List<DialableLandLineNumber> list = this.phoneController.allLandLineNumbers();
337 // Visit all controllers to reduce the list
338 this.removeLinkedLandLineNumbersEvent.fire(new AdminLandLineNumberRemovedFromListEvent(list));
345 * Returns a list of all unused ("non-linked") mobile numbers
347 * @return List with all unused mobile numbers
349 public List<DialableMobileNumber> allNonLinkedMobileNumbers () {
350 // Get list of all mobile numbers
351 List<DialableMobileNumber> list = this.phoneController.allMobileNumbers();
353 // Visit all controllers to reduce the list
354 this.removeLinkedMobileNumbersEvent.fire(new AdminMobileNumberRemovedFromListEvent(list));
361 * Deletes given fax entry data
364 public void deleteFaxData () {
365 // Get fax number from bean helper
366 DialableFaxNumber number = this.createFaxNumber();
369 if (number == null) {
370 // Not set, throw NPE
371 throw new NullPointerException("faxNumber is null"); //NOI18N
372 } else if (number.getPhoneId() == null) {
374 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
375 } else if (number.getPhoneId() < 1) {
377 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
378 } else if (number.getPhoneCountry() == null) {
380 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
381 } else if (number.getPhoneCountry().getCountryId() == null) {
383 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
384 } else if (number.getPhoneCountry().getCountryId() < 1) {
386 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
387 } else if (number.getPhoneAreaCode() == null) {
389 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
390 } else if (number.getPhoneAreaCode() < 1) {
392 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
393 } else if (number.getPhoneNumber() == null) {
395 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
396 } else if (number.getPhoneNumber() < 1) {
398 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
402 this.adminPhoneBean.deleteFaxData(number);
405 this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(number));
409 * Deletes given land-line entry data
411 public void deleteLandLineData () {
412 // Get land-line number from helper
413 DialableLandLineNumber number = this.createLandLineNumber();
416 if (number == null) {
417 // Not set, throw NPE
418 throw new NullPointerException("landLineNumber is null"); //NOI18N
419 } else if (number.getPhoneId() == null) {
421 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
422 } else if (number.getPhoneId() < 1) {
424 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
425 } else if (number.getPhoneCountry() == null) {
427 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
428 } else if (number.getPhoneCountry().getCountryId() == null) {
430 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
431 } else if (number.getPhoneCountry().getCountryId() < 1) {
433 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
434 } else if (number.getPhoneAreaCode() == null) {
436 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
437 } else if (number.getPhoneAreaCode() < 1) {
439 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
440 } else if (number.getPhoneNumber() == null) {
442 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
443 } else if (number.getPhoneNumber() < 1) {
445 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
449 this.adminPhoneBean.deleteLandLineData(number);
452 this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(number));
456 * Deletes given mobile entry data
458 public void deleteMobileData () {
459 // Get mobile number from helper
460 DialableMobileNumber number = this.createMobileNumber();
463 if (number == null) {
464 // Not set, throw NPE
465 throw new NullPointerException("mobileNumber is null"); //NOI18N
466 } else if (number.getPhoneId() == null) {
468 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
469 } else if (number.getPhoneId() < 1) {
471 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
472 } else if (number.getMobileProvider() == null) {
474 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
475 } else if (number.getMobileProvider().getProviderId() == null) {
477 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
478 } else if (number.getMobileProvider().getProviderId() < 1) {
480 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
481 } else if (number.getPhoneNumber() == null) {
483 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
484 } else if (number.getPhoneNumber() < 1) {
486 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
490 this.adminPhoneBean.deleteMobileData(number);
493 this.mobileNumberDeletedEvent.fire(new AdminMobileNumberDeletedEvent(number));
497 * Changes fax entry data
499 * @return Redirect outcome
501 public String doChangeFaxNumber () {
502 // Get fax number from bean helper
503 DialableFaxNumber number = this.createFaxNumber();
506 if (number == null) {
507 // Not set, throw NPE
508 throw new NullPointerException("faxNumber is null"); //NOI18N
509 } else if (number.getPhoneId() == null) {
511 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
512 } else if (number.getPhoneId() < 1) {
514 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
515 } else if (number.getPhoneCountry() == null) {
517 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
518 } else if (number.getPhoneCountry().getCountryId() == null) {
520 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
521 } else if (number.getPhoneCountry().getCountryId() < 1) {
523 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
524 } else if (number.getPhoneAreaCode() == null) {
526 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
527 } else if (number.getPhoneAreaCode() < 1) {
529 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
530 } else if (number.getPhoneNumber() == null) {
532 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
533 } else if (number.getPhoneNumber() < 1) {
535 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
538 // Is the mobile provider and number the same?
539 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
541 this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
543 // No difference in both together, no need to edit
548 number.setPhoneCountry(this.getPhoneCountry());
549 number.setPhoneAreaCode(this.getPhoneAreaCode());
550 number.setPhoneNumber(this.getPhoneNumber());
553 DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(number);
556 this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber));
558 // All fine, redirect
559 return "admin_show_fax"; //NOI18N
563 * Changes land-line entry data
565 * @return Redirect outcome
567 public String doChangeLandLineNumber () {
568 // Get land-line number from helper
569 DialableLandLineNumber number = this.createLandLineNumber();
572 if (number == null) {
573 // Not set, throw NPE
574 throw new NullPointerException("landLineNumber is null"); //NOI18N
575 } else if (number.getPhoneId() == null) {
577 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
578 } else if (number.getPhoneId() < 1) {
580 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
581 } else if (number.getPhoneCountry() == null) {
583 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
584 } else if (number.getPhoneCountry().getCountryId() == null) {
586 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
587 } else if (number.getPhoneCountry().getCountryId() < 1) {
589 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
590 } else if (number.getPhoneAreaCode() == null) {
592 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
593 } else if (number.getPhoneAreaCode() < 1) {
595 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
596 } else if (number.getPhoneNumber() == null) {
598 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
599 } else if (number.getPhoneNumber() < 1) {
601 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
604 // Is the mobile provider and number the same?
605 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
607 this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
609 // No difference in both together, no need to edit
614 number.setPhoneCountry(this.getPhoneCountry());
615 number.setPhoneAreaCode(this.getPhoneAreaCode());
616 number.setPhoneNumber(this.getPhoneNumber());
619 DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(number);
622 this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber));
624 // All fine, redirect
625 return "admin_show_landline"; //NOI18N
629 * Changes mobile entry data
631 * @return Redirect outcome
633 public String doUpdateMobileNumber () {
634 // Get mobile number from helper
635 DialableMobileNumber number = this.createMobileNumber();
638 if (number == null) {
639 // Not set, throw NPE
640 throw new NullPointerException("mobileNumber is null"); //NOI18N
641 } else if (number.getPhoneId() == null) {
643 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
644 } else if (number.getPhoneId() < 1) {
646 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
647 } else if (number.getMobileProvider() == null) {
649 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
650 } else if (number.getMobileProvider().getProviderId() == null) {
652 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
653 } else if (number.getMobileProvider().getProviderId() < 1) {
655 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
656 } else if (number.getPhoneNumber() == null) {
658 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
659 } else if (number.getPhoneNumber() < 1) {
661 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
662 } else if (this.getMobileProvider() == null) {
664 this.showFacesMessage("form_edit_mobile:mobileProvider", "ERROR_ADMIN_NO_MOBILE_PROVIDER_SELECTED"); //NOI18N
666 } else if (this.getMobileProvider().getProviderId() == null) {
667 // Throw NPE again ...
668 throw new NullPointerException("this.mobileProvider.providerId is null"); //NOI18N
669 } else if (this.getMobileProvider().getProviderId() < 0) {
671 throw new IllegalArgumentException(MessageFormat.format("this.mobileProvider.providerId={0} is not valid.", this.getMobileProvider().getProviderId())); //NOI18N
672 } else if (this.getPhoneNumber() == null) {
674 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_EMPTY_MOBILE_NUMBER"); //NOI18N
678 // Is the mobile provider and number the same?
679 if ((Objects.equals(this.getMobileProvider(), number.getMobileProvider())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
681 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
683 // No difference in both together, no need to edit
688 number.setMobileProvider(this.getMobileProvider());
689 number.setPhoneNumber(this.getPhoneNumber());
692 DialableMobileNumber updatedNumber = this.adminPhoneBean.updateMobileData(number);
695 this.mobileNumberUpdatedEvent.fire(new AdminMobileNumberUpdatedEvent(updatedNumber));
697 // All fine, redirect
698 return "admin_show_mobile"; //NOI18N
702 * Getter for chosen fax number
706 public DialableFaxNumber getFaxNumber () {
707 return this.faxNumber;
711 * Setter for chosen fax number
713 * @param faxNumber fax number
715 public void setFaxNumber (final DialableFaxNumber faxNumber) {
716 this.faxNumber = faxNumber;
720 * Getter for chosen land-line number
722 * @return land-line number
724 public DialableLandLineNumber getLandLineNumber () {
725 return this.landLineNumber;
729 * Setter for chosen land-line number
731 * @param landLineNumber land-line number
733 public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
734 this.landLineNumber = landLineNumber;
738 * Getter for chosen mobile number
740 * @return mobile number
742 public DialableMobileNumber getMobileNumber () {
743 return this.mobileNumber;
747 * Setter for chosen mobile number
749 * @param mobileNumber mobile number
751 public void setMobileNumber (final DialableMobileNumber mobileNumber) {
752 this.mobileNumber = mobileNumber;
756 * Getter for mobile provider
758 * @return Mobile provider
760 public MobileProvider getMobileProvider () {
761 return this.mobileProvider;
765 * Setter for mobile provider
767 * @param mobileProvider Mobile provider
769 public void setMobileProvider (final MobileProvider mobileProvider) {
770 this.mobileProvider = mobileProvider;
774 * Getter for phone area code
776 * @return Phone area code
778 public Integer getPhoneAreaCode () {
779 return this.phoneAreaCode;
783 * Setter for phone area code
785 * @param phoneAreaCode Phone area code
787 public void setPhoneAreaCode (final Integer phoneAreaCode) {
788 this.phoneAreaCode = phoneAreaCode;
792 * Getter for phone country (for dial prefix)
794 * @return Phone country
796 public Country getPhoneCountry () {
797 return this.phoneCountry;
801 * Setter for phone country (for dial prefix)
803 * @param phoneCountry Phone country
805 public void setPhoneCountry (final Country phoneCountry) {
806 this.phoneCountry = phoneCountry;
810 * Getter for phone entry created timestamp
812 * @return Phone entry created timestamp
814 @SuppressWarnings ("ReturnOfDateField")
815 public Date getPhoneEntryCreated () {
816 return this.phoneEntryCreated;
820 * Setter for phone entry created timestamp
822 * @param phoneEntryCreated Phone entry created timestamp
824 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
825 public void setPhoneEntryCreated (final Date phoneEntryCreated) {
826 this.phoneEntryCreated = phoneEntryCreated;
830 * Getter for phone entry updated timestamp
832 * @return Phone entry updated timestamp
834 @SuppressWarnings ("ReturnOfDateField")
835 public Date getPhoneEntryUpdated () {
836 return this.phoneEntryUpdated;
840 * Setter for phone entry updated timestamp
842 * @param phoneEntryUpdated Phone entry updated timestamp
844 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
845 public void setPhoneEntryUpdated (final Date phoneEntryUpdated) {
846 this.phoneEntryUpdated = phoneEntryUpdated;
850 * Getter for phone id
854 public Long getPhoneId () {
859 * Setter for phone id
861 * @param phoneId Phone id
863 public void setPhoneId (final Long phoneId) {
864 this.phoneId = phoneId;
868 * Getter for dial number without prefix
870 * @return Dial number without prefix
872 public Long getPhoneNumber () {
873 return this.phoneNumber;
877 * Setter for dial number without prefix
879 * @param phoneNumber Dial number without prefix
881 public void setPhoneNumber (final Long phoneNumber) {
882 this.phoneNumber = phoneNumber;
886 * Returns an instance of a DialableFaxNumber from all fields stored in this
889 * @return An instance of a DialableFaxNumber class
891 private DialableFaxNumber createFaxNumber () {
893 DialableFaxNumber number = new FaxNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
895 // Add all other data
896 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
897 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
900 if (this.getPhoneId() instanceof Long) {
902 number.setPhoneId(this.getPhoneId());
910 * Returns an instance of a DialableLandLineNumber from all fields stored in
913 * @return An instance of a DialableLandLineNumber class
915 private DialableLandLineNumber createLandLineNumber () {
917 DialableLandLineNumber number = new LandLineNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
919 // Add all other data
920 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
921 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
924 if (this.getPhoneId() instanceof Long) {
926 number.setPhoneId(this.getPhoneId());
934 * Returns an instance of a DialableMobileNumber from all fields stored in
937 * @return An instance of a DialableMobileNumber class
939 private DialableMobileNumber createMobileNumber () {
941 DialableMobileNumber number = new MobileNumber(this.getMobileProvider(), this.getPhoneNumber());
943 // Add all other data
944 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
945 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
948 if (this.getPhoneId() instanceof Long) {
950 number.setPhoneId(this.getPhoneId());