2 * Copyright (C) 2016 - 2018 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
363 * @return Redirect outcome
365 public String deleteFaxData () {
366 // Get fax number from bean helper
367 DialableFaxNumber number = this.createFaxNumber();
370 if (number == null) {
371 // Not set, throw NPE
372 throw new NullPointerException("faxNumber is null"); //NOI18N
373 } else if (number.getPhoneId() == null) {
375 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
376 } else if (number.getPhoneId() < 1) {
378 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
379 } else if (number.getPhoneCountry() == null) {
381 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
382 } else if (number.getPhoneCountry().getCountryId() == null) {
384 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
385 } else if (number.getPhoneCountry().getCountryId() < 1) {
387 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
388 } else if (number.getPhoneAreaCode() == null) {
390 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
391 } else if (number.getPhoneAreaCode() < 1) {
393 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
394 } else if (number.getPhoneNumber() == null) {
396 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
397 } else if (number.getPhoneNumber() < 1) {
399 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
403 this.adminPhoneBean.deleteFaxData(number);
406 this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(number));
408 // All fine, redirect
409 return "admin_list_fax"; //NOI18N
413 * Deletes given land-line entry data
415 * @return Redirect outcome
417 public String deleteLandLineData () {
418 // Get land-line number from helper
419 DialableLandLineNumber number = this.createLandLineNumber();
422 if (number == null) {
423 // Not set, throw NPE
424 throw new NullPointerException("landLineNumber is null"); //NOI18N
425 } else if (number.getPhoneId() == null) {
427 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
428 } else if (number.getPhoneId() < 1) {
430 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
431 } else if (number.getPhoneCountry() == null) {
433 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
434 } else if (number.getPhoneCountry().getCountryId() == null) {
436 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
437 } else if (number.getPhoneCountry().getCountryId() < 1) {
439 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
440 } else if (number.getPhoneAreaCode() == null) {
442 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
443 } else if (number.getPhoneAreaCode() < 1) {
445 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
446 } else if (number.getPhoneNumber() == null) {
448 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
449 } else if (number.getPhoneNumber() < 1) {
451 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
455 this.adminPhoneBean.deleteLandLineData(number);
458 this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(number));
460 // All fine, redirect
461 return "admin_list_landline"; //NOI18N
465 * Deletes given mobile entry data
467 * @return Redirect outcome
469 public String deleteMobileData () {
470 // Get mobile number from helper
471 DialableMobileNumber number = this.createMobileNumber();
474 if (number == null) {
475 // Not set, throw NPE
476 throw new NullPointerException("mobileNumber is null"); //NOI18N
477 } else if (number.getPhoneId() == null) {
479 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
480 } else if (number.getPhoneId() < 1) {
482 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
483 } else if (number.getMobileProvider() == null) {
485 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
486 } else if (number.getMobileProvider().getProviderId() == null) {
488 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
489 } else if (number.getMobileProvider().getProviderId() < 1) {
491 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
492 } else if (number.getPhoneNumber() == null) {
494 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
495 } else if (number.getPhoneNumber() < 1) {
497 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
501 this.adminPhoneBean.deleteMobileData(number);
504 this.mobileNumberDeletedEvent.fire(new AdminMobileNumberDeletedEvent(number));
506 // All fine, redirect
507 return "admin_list_mobile"; //NOI18N
511 * Changes fax entry data
513 * @return Redirect outcome
515 public String doChangeFaxNumber () {
516 // Get fax number from bean helper
517 DialableFaxNumber number = this.createFaxNumber();
520 if (number == null) {
521 // Not set, throw NPE
522 throw new NullPointerException("faxNumber is null"); //NOI18N
523 } else if (number.getPhoneId() == null) {
525 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
526 } else if (number.getPhoneId() < 1) {
528 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
529 } else if (number.getPhoneCountry() == null) {
531 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
532 } else if (number.getPhoneCountry().getCountryId() == null) {
534 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
535 } else if (number.getPhoneCountry().getCountryId() < 1) {
537 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
538 } else if (number.getPhoneAreaCode() == null) {
540 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
541 } else if (number.getPhoneAreaCode() < 1) {
543 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
544 } else if (number.getPhoneNumber() == null) {
546 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
547 } else if (number.getPhoneNumber() < 1) {
549 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
552 // Is the mobile provider and number the same?
553 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
555 this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
557 // No difference in both together, no need to edit
562 number.setPhoneCountry(this.getPhoneCountry());
563 number.setPhoneAreaCode(this.getPhoneAreaCode());
564 number.setPhoneNumber(this.getPhoneNumber());
567 DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(number);
570 this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber));
572 // All fine, redirect
573 return "admin_show_fax"; //NOI18N
577 * Changes land-line entry data
579 * @return Redirect outcome
581 public String doChangeLandLineNumber () {
582 // Get land-line number from helper
583 DialableLandLineNumber number = this.createLandLineNumber();
586 if (number == null) {
587 // Not set, throw NPE
588 throw new NullPointerException("landLineNumber is null"); //NOI18N
589 } else if (number.getPhoneId() == null) {
591 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
592 } else if (number.getPhoneId() < 1) {
594 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
595 } else if (number.getPhoneCountry() == null) {
597 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
598 } else if (number.getPhoneCountry().getCountryId() == null) {
600 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
601 } else if (number.getPhoneCountry().getCountryId() < 1) {
603 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
604 } else if (number.getPhoneAreaCode() == null) {
606 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
607 } else if (number.getPhoneAreaCode() < 1) {
609 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
610 } else if (number.getPhoneNumber() == null) {
612 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
613 } else if (number.getPhoneNumber() < 1) {
615 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
618 // Is the mobile provider and number the same?
619 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
621 this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
623 // No difference in both together, no need to edit
628 number.setPhoneCountry(this.getPhoneCountry());
629 number.setPhoneAreaCode(this.getPhoneAreaCode());
630 number.setPhoneNumber(this.getPhoneNumber());
633 DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(number);
636 this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber));
638 // All fine, redirect
639 return "admin_show_landline"; //NOI18N
643 * Changes mobile entry data
645 * @return Redirect outcome
647 public String doUpdateMobileNumber () {
648 // Get mobile number from helper
649 DialableMobileNumber number = this.createMobileNumber();
652 if (number == null) {
653 // Not set, throw NPE
654 throw new NullPointerException("mobileNumber is null"); //NOI18N
655 } else if (number.getPhoneId() == null) {
657 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
658 } else if (number.getPhoneId() < 1) {
660 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
661 } else if (number.getMobileProvider() == null) {
663 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
664 } else if (number.getMobileProvider().getProviderId() == null) {
666 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
667 } else if (number.getMobileProvider().getProviderId() < 1) {
669 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
670 } else if (number.getPhoneNumber() == null) {
672 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
673 } else if (number.getPhoneNumber() < 1) {
675 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
676 } else if (this.getMobileProvider() == null) {
678 this.showFacesMessage("form_edit_mobile:mobileProvider", "ERROR_ADMIN_NO_MOBILE_PROVIDER_SELECTED"); //NOI18N
680 } else if (this.getMobileProvider().getProviderId() == null) {
681 // Throw NPE again ...
682 throw new NullPointerException("this.mobileProvider.providerId is null"); //NOI18N
683 } else if (this.getMobileProvider().getProviderId() < 0) {
685 throw new IllegalArgumentException(MessageFormat.format("this.mobileProvider.providerId={0} is not valid.", this.getMobileProvider().getProviderId())); //NOI18N
686 } else if (this.getPhoneNumber() == null) {
688 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_EMPTY_MOBILE_NUMBER"); //NOI18N
692 // Is the mobile provider and number the same?
693 if ((Objects.equals(this.getMobileProvider(), number.getMobileProvider())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
695 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
697 // No difference in both together, no need to edit
702 number.setMobileProvider(this.getMobileProvider());
703 number.setPhoneNumber(this.getPhoneNumber());
706 DialableMobileNumber updatedNumber = this.adminPhoneBean.updateMobileData(number);
709 this.mobileNumberUpdatedEvent.fire(new AdminMobileNumberUpdatedEvent(updatedNumber));
711 // All fine, redirect
712 return "admin_show_mobile"; //NOI18N
716 * Getter for chosen fax number
720 public DialableFaxNumber getFaxNumber () {
721 return this.faxNumber;
725 * Setter for chosen fax number
727 * @param faxNumber fax number
729 public void setFaxNumber (final DialableFaxNumber faxNumber) {
730 this.faxNumber = faxNumber;
734 * Getter for chosen land-line number
736 * @return land-line number
738 public DialableLandLineNumber getLandLineNumber () {
739 return this.landLineNumber;
743 * Setter for chosen land-line number
745 * @param landLineNumber land-line number
747 public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
748 this.landLineNumber = landLineNumber;
752 * Getter for chosen mobile number
754 * @return mobile number
756 public DialableMobileNumber getMobileNumber () {
757 return this.mobileNumber;
761 * Setter for chosen mobile number
763 * @param mobileNumber mobile number
765 public void setMobileNumber (final DialableMobileNumber mobileNumber) {
766 this.mobileNumber = mobileNumber;
770 * Getter for mobile provider
772 * @return Mobile provider
774 public MobileProvider getMobileProvider () {
775 return this.mobileProvider;
779 * Setter for mobile provider
781 * @param mobileProvider Mobile provider
783 public void setMobileProvider (final MobileProvider mobileProvider) {
784 this.mobileProvider = mobileProvider;
788 * Getter for phone area code
790 * @return Phone area code
792 public Integer getPhoneAreaCode () {
793 return this.phoneAreaCode;
797 * Setter for phone area code
799 * @param phoneAreaCode Phone area code
801 public void setPhoneAreaCode (final Integer phoneAreaCode) {
802 this.phoneAreaCode = phoneAreaCode;
806 * Getter for phone country (for dial prefix)
808 * @return Phone country
810 public Country getPhoneCountry () {
811 return this.phoneCountry;
815 * Setter for phone country (for dial prefix)
817 * @param phoneCountry Phone country
819 public void setPhoneCountry (final Country phoneCountry) {
820 this.phoneCountry = phoneCountry;
824 * Getter for phone entry created timestamp
826 * @return Phone entry created timestamp
828 @SuppressWarnings ("ReturnOfDateField")
829 public Date getPhoneEntryCreated () {
830 return this.phoneEntryCreated;
834 * Setter for phone entry created timestamp
836 * @param phoneEntryCreated Phone entry created timestamp
838 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
839 public void setPhoneEntryCreated (final Date phoneEntryCreated) {
840 this.phoneEntryCreated = phoneEntryCreated;
844 * Getter for phone entry updated timestamp
846 * @return Phone entry updated timestamp
848 @SuppressWarnings ("ReturnOfDateField")
849 public Date getPhoneEntryUpdated () {
850 return this.phoneEntryUpdated;
854 * Setter for phone entry updated timestamp
856 * @param phoneEntryUpdated Phone entry updated timestamp
858 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
859 public void setPhoneEntryUpdated (final Date phoneEntryUpdated) {
860 this.phoneEntryUpdated = phoneEntryUpdated;
864 * Getter for phone id
868 public Long getPhoneId () {
873 * Setter for phone id
875 * @param phoneId Phone id
877 public void setPhoneId (final Long phoneId) {
878 this.phoneId = phoneId;
882 * Getter for dial number without prefix
884 * @return Dial number without prefix
886 public Long getPhoneNumber () {
887 return this.phoneNumber;
891 * Setter for dial number without prefix
893 * @param phoneNumber Dial number without prefix
895 public void setPhoneNumber (final Long phoneNumber) {
896 this.phoneNumber = phoneNumber;
900 * Returns an instance of a DialableFaxNumber from all fields stored in this
903 * @return An instance of a DialableFaxNumber class
905 private DialableFaxNumber createFaxNumber () {
907 DialableFaxNumber number = new FaxNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
909 // Add all other data
910 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
911 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
914 if (this.getPhoneId() instanceof Long) {
916 number.setPhoneId(this.getPhoneId());
924 * Returns an instance of a DialableLandLineNumber from all fields stored in
927 * @return An instance of a DialableLandLineNumber class
929 private DialableLandLineNumber createLandLineNumber () {
931 DialableLandLineNumber number = new LandLineNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
933 // Add all other data
934 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
935 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
938 if (this.getPhoneId() instanceof Long) {
940 number.setPhoneId(this.getPhoneId());
948 * Returns an instance of a DialableMobileNumber from all fields stored in
951 * @return An instance of a DialableMobileNumber class
953 private DialableMobileNumber createMobileNumber () {
955 DialableMobileNumber number = new MobileNumber(this.getMobileProvider(), this.getPhoneNumber());
957 // Add all other data
958 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
959 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
962 if (this.getPhoneId() instanceof Long) {
964 number.setPhoneId(this.getPhoneId());