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.faces.application.FacesMessage;
29 import javax.inject.Inject;
30 import javax.inject.Named;
31 import org.mxchange.jcountry.model.data.Country;
32 import org.mxchange.jjobs.beans.BaseJobsBean;
33 import org.mxchange.jphone.events.fax.created.ObservableCreatedFaxNumberEvent;
34 import org.mxchange.jphone.events.fax.deleted.AdminDeletedFaxNumberEvent;
35 import org.mxchange.jphone.events.fax.deleted.AdminFaxNumberDeletedEvent;
36 import org.mxchange.jphone.events.fax.removed.AdminFaxNumberRemovedFromListEvent;
37 import org.mxchange.jphone.events.fax.removed.AdminRemoveFaxNumberFromListEvent;
38 import org.mxchange.jphone.events.fax.updated.AdminFaxNumberUpdatedEvent;
39 import org.mxchange.jphone.events.fax.updated.AdminUpdatedFaxNumberEvent;
40 import org.mxchange.jphone.events.landline.created.ObservableCreatedLandLineNumberEvent;
41 import org.mxchange.jphone.events.landline.deleted.AdminDeletedLandLineNumberEvent;
42 import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent;
43 import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent;
44 import org.mxchange.jphone.events.landline.removed.AdminRemoveLandLineNumberFromListEvent;
45 import org.mxchange.jphone.events.landline.updated.AdminLandLineNumberUpdatedEvent;
46 import org.mxchange.jphone.events.landline.updated.AdminUpdatedLandLineNumberEvent;
47 import org.mxchange.jphone.events.mobile.created.ObservableCreatedMobileNumberEvent;
48 import org.mxchange.jphone.events.mobile.deleted.AdminDeletedMobileNumberEvent;
49 import org.mxchange.jphone.events.mobile.deleted.AdminMobileNumberDeletedEvent;
50 import org.mxchange.jphone.events.mobile.remove.AdminMobileNumberRemovedFromListEvent;
51 import org.mxchange.jphone.events.mobile.remove.AdminRemoveMobileNumberFromListEvent;
52 import org.mxchange.jphone.events.mobile.updated.AdminMobileNumberUpdatedEvent;
53 import org.mxchange.jphone.events.mobile.updated.AdminUpdatedMobileNumberEvent;
54 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
55 import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
56 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
57 import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
58 import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
59 import org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber;
60 import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
61 import org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote;
64 * Administrative controller (bean) for phone numbers
66 * @author Roland Häder<roland@mxchange.org>
68 @Named ("adminPhoneController")
70 public class JobsAdminPhoneWebRequestBean extends BaseJobsBean implements JobsAdminPhoneWebRequestController {
75 private static final long serialVersionUID = 184_598_175_371_269_016L;
78 * Remote EJB for phone number (administrative)
80 @EJB (lookup = "java:global/jjobs-ejb/adminPhone!org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote")
81 private AdminPhoneSessionBeanRemote adminPhoneBean;
86 private DialableFaxNumber faxNumber;
89 * Event being fired when an administrator has deleted fax number
93 private Event<AdminDeletedFaxNumberEvent> faxNumberDeletedEvent;
96 * Event being fired when an administrator has updated fax number
100 private Event<AdminUpdatedFaxNumberEvent> faxNumberUpdatedEvent;
105 private DialableLandLineNumber landLineNumber;
108 * Event being fired when an administrator has deleted land-line number
112 private Event<AdminDeletedLandLineNumberEvent> landLineNumberDeletedEvent;
115 * Event being fired when an administrator has updated fax number
119 private Event<AdminUpdatedLandLineNumberEvent> landLineNumberUpdatedEvent;
122 * Chosen mobile number
124 private DialableMobileNumber mobileNumber;
127 * Event being fired when an administrator has deleted mobile number
131 private Event<AdminDeletedMobileNumberEvent> mobileNumberDeletedEvent;
134 * Event being fired when an administrator has updated land-line number
138 private Event<AdminUpdatedMobileNumberEvent> mobileNumberUpdatedEvent;
143 private MobileProvider mobileProvider;
146 * Area code (city dial prefix)
148 private Integer phoneAreaCode;
151 * Generic hone controller
154 private JobsPhoneWebRequestController phoneController;
157 * Country (for dial prefix)
159 private Country phoneCountry;
162 * When the phone entry has been created (persisted)
164 private Date phoneEntryCreated;
167 * When the phone entry has been updated
169 private Date phoneEntryUpdated;
172 * Phone id (aka primary key)
174 private Long phoneId;
179 private Long phoneNumber;
182 * Event being fired when a list of all unsed fax numbers is being created.
186 private Event<AdminRemoveFaxNumberFromListEvent> removeLinkedFaxNumbersEvent;
189 * Event being fired when a list of all unsed land-line numbers is being
194 private Event<AdminRemoveLandLineNumberFromListEvent> removeLinkedLandLineNumbersEvent;
197 * Event being fired when a list of all unsed mobile numbers is being
202 private Event<AdminRemoveMobileNumberFromListEvent> removeLinkedMobileNumbersEvent;
205 * Default constructor
207 public JobsAdminPhoneWebRequestBean () {
208 // Call super constructor
213 * Observes events being fired when a bean helper has successfully created a
214 * fax number instance.
216 * @param event Event being fired
218 public void afterCreatedFaxNumberEvent (@Observes final ObservableCreatedFaxNumberEvent event) {
219 // The event instance must be valid
222 throw new NullPointerException("event is null"); //NOI18N
223 } else if (event.getFaxNumber() == null) {
225 throw new NullPointerException("event.faxNumber is null"); //NOI18N
226 } else if (event.getFaxNumber().getPhoneId() == null) {
227 // Throw NPE yet again
228 throw new NullPointerException("event.faxNumber.phoneId is null"); //NOI18N
229 } else if (event.getFaxNumber().getPhoneId() < 1) {
230 // Throw NPE yet again
231 throw new NullPointerException(MessageFormat.format("event.faxNumber.phoneId={0} is invalid", event.getFaxNumber().getPhoneId())); //NOI18N
234 // Get fax number from event
235 DialableFaxNumber number = event.getFaxNumber();
237 // Copy all data to this bean
238 this.setPhoneId(number.getPhoneId());
239 this.setPhoneCountry(number.getPhoneCountry());
240 this.setPhoneAreaCode(number.getPhoneAreaCode());
241 this.setPhoneNumber(number.getPhoneNumber());
242 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
243 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
247 * Observes events being fired when a bean helper has successfully created a
248 * land-line number instance.
250 * @param event Event being fired
252 public void afterCreatedLandLineNumberEvent (@Observes final ObservableCreatedLandLineNumberEvent event) {
253 // The event instance must be valid
256 throw new NullPointerException("event is null"); //NOI18N
257 } else if (event.getLandLineNumber() == null) {
259 throw new NullPointerException("event.landLineNumber is null"); //NOI18N
260 } else if (event.getLandLineNumber().getPhoneId() == null) {
261 // Throw NPE yet again
262 throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
263 } else if (event.getLandLineNumber().getPhoneId() < 1) {
264 // Throw NPE yet again
265 throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getLandLineNumber().getPhoneId())); //NOI18N
268 // Get fax number from event
269 DialableLandLineNumber number = event.getLandLineNumber();
271 // Copy all data to this bean
272 this.setPhoneId(number.getPhoneId());
273 this.setPhoneCountry(number.getPhoneCountry());
274 this.setPhoneAreaCode(number.getPhoneAreaCode());
275 this.setPhoneNumber(number.getPhoneNumber());
276 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
277 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
281 * Observes events being fired when a bean helper has successfully created a
282 * mobile number instance.
284 * @param event Event being fired
286 public void afterCreatedMobileNumberEvent (@Observes final ObservableCreatedMobileNumberEvent event) {
287 // The event instance must be valid
290 throw new NullPointerException("event is null"); //NOI18N
291 } else if (event.getMobileNumber() == null) {
293 throw new NullPointerException("event.mobileNumber is null"); //NOI18N
294 } else if (event.getMobileNumber().getPhoneId() == null) {
295 // Throw NPE yet again
296 throw new NullPointerException("event.mobileNumber.phoneId is null"); //NOI18N
297 } else if (event.getMobileNumber().getPhoneId() < 1) {
298 // Throw NPE yet again
299 throw new NullPointerException(MessageFormat.format("event.mobileNumber.phoneId={0} is invalid", event.getMobileNumber().getPhoneId())); //NOI18N
302 // Get fax number from event
303 DialableMobileNumber number = event.getMobileNumber();
305 // Copy all data to this bean
306 this.setPhoneId(number.getPhoneId());
307 this.setMobileProvider(number.getMobileProvider());
308 this.setPhoneNumber(number.getPhoneNumber());
309 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
310 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
314 * Returns a list of all unused ("non-linked") land-line numbers
316 * @return List with all unused land-line numbers
318 public List<DialableFaxNumber> allNonLinkedFaxNumbers () {
319 // Get list of all mobile numbers
320 List<DialableFaxNumber> list = this.phoneController.allFaxNumbers();
322 // Visit all controllers to reduce the list
323 this.removeLinkedFaxNumbersEvent.fire(new AdminFaxNumberRemovedFromListEvent(list));
330 * Returns a list of all unused ("non-linked") land-line numbers
332 * @return List with all unused land-line numbers
334 public List<DialableLandLineNumber> allNonLinkedLandLineNumbers () {
335 // Get list of all mobile numbers
336 List<DialableLandLineNumber> list = this.phoneController.allLandLineNumbers();
338 // Visit all controllers to reduce the list
339 this.removeLinkedLandLineNumbersEvent.fire(new AdminLandLineNumberRemovedFromListEvent(list));
346 * Returns a list of all unused ("non-linked") mobile numbers
348 * @return List with all unused mobile numbers
350 public List<DialableMobileNumber> allNonLinkedMobileNumbers () {
351 // Get list of all mobile numbers
352 List<DialableMobileNumber> list = this.phoneController.allMobileNumbers();
354 // Visit all controllers to reduce the list
355 this.removeLinkedMobileNumbersEvent.fire(new AdminMobileNumberRemovedFromListEvent(list));
362 * Deletes given fax entry data
365 public void 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));
410 * Deletes given land-line entry data
412 public void deleteLandLineData () {
413 // Get land-line number from helper
414 DialableLandLineNumber number = this.createLandLineNumber();
417 if (number == null) {
418 // Not set, throw NPE
419 throw new NullPointerException("landLineNumber is null"); //NOI18N
420 } else if (number.getPhoneId() == null) {
422 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
423 } else if (number.getPhoneId() < 1) {
425 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
426 } else if (number.getPhoneCountry() == null) {
428 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
429 } else if (number.getPhoneCountry().getCountryId() == null) {
431 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
432 } else if (number.getPhoneCountry().getCountryId() < 1) {
434 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
435 } else if (number.getPhoneAreaCode() == null) {
437 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
438 } else if (number.getPhoneAreaCode() < 1) {
440 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
441 } else if (number.getPhoneNumber() == null) {
443 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
444 } else if (number.getPhoneNumber() < 1) {
446 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
450 this.adminPhoneBean.deleteLandLineData(number);
453 this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(number));
457 * Deletes given mobile entry data
459 public void deleteMobileData () {
460 // Get mobile number from helper
461 DialableMobileNumber number = this.createMobileNumber();
464 if (number == null) {
465 // Not set, throw NPE
466 throw new NullPointerException("mobileNumber is null"); //NOI18N
467 } else if (number.getPhoneId() == null) {
469 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
470 } else if (number.getPhoneId() < 1) {
472 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
473 } else if (number.getMobileProvider() == null) {
475 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
476 } else if (number.getMobileProvider().getProviderId() == null) {
478 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
479 } else if (number.getMobileProvider().getProviderId() < 1) {
481 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
482 } else if (number.getPhoneNumber() == null) {
484 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
485 } else if (number.getPhoneNumber() < 1) {
487 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
491 this.adminPhoneBean.deleteMobileData(number);
494 this.mobileNumberDeletedEvent.fire(new AdminMobileNumberDeletedEvent(number));
498 * Changes fax entry data
500 * @return Redirect outcome
502 public String doChangeFaxNumber () {
503 // Get fax number from bean helper
504 DialableFaxNumber number = this.createFaxNumber();
507 if (number == null) {
508 // Not set, throw NPE
509 throw new NullPointerException("faxNumber is null"); //NOI18N
510 } else if (number.getPhoneId() == null) {
512 throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
513 } else if (number.getPhoneId() < 1) {
515 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
516 } else if (number.getPhoneCountry() == null) {
518 throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
519 } else if (number.getPhoneCountry().getCountryId() == null) {
521 throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
522 } else if (number.getPhoneCountry().getCountryId() < 1) {
524 throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
525 } else if (number.getPhoneAreaCode() == null) {
527 throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
528 } else if (number.getPhoneAreaCode() < 1) {
530 throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
531 } else if (number.getPhoneNumber() == null) {
533 throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
534 } else if (number.getPhoneNumber() < 1) {
536 throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
539 // Is the mobile provider and number the same?
540 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
542 this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
544 // No difference in both together, no need to edit
549 number.setPhoneCountry(this.getPhoneCountry());
550 number.setPhoneAreaCode(this.getPhoneAreaCode());
551 number.setPhoneNumber(this.getPhoneNumber());
554 DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(number);
557 this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber));
559 // All fine, redirect
560 return "admin_show_fax"; //NOI18N
564 * Changes land-line entry data
566 * @return Redirect outcome
568 public String doChangeLandLineNumber () {
569 // Get land-line number from helper
570 DialableLandLineNumber number = this.createLandLineNumber();
573 if (number == null) {
574 // Not set, throw NPE
575 throw new NullPointerException("landLineNumber is null"); //NOI18N
576 } else if (number.getPhoneId() == null) {
578 throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
579 } else if (number.getPhoneId() < 1) {
581 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
582 } else if (number.getPhoneCountry() == null) {
584 throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
585 } else if (number.getPhoneCountry().getCountryId() == null) {
587 throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
588 } else if (number.getPhoneCountry().getCountryId() < 1) {
590 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
591 } else if (number.getPhoneAreaCode() == null) {
593 throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
594 } else if (number.getPhoneAreaCode() < 1) {
596 throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
597 } else if (number.getPhoneNumber() == null) {
599 throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
600 } else if (number.getPhoneNumber() < 1) {
602 throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
605 // Is the mobile provider and number the same?
606 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
608 this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
610 // No difference in both together, no need to edit
615 number.setPhoneCountry(this.getPhoneCountry());
616 number.setPhoneAreaCode(this.getPhoneAreaCode());
617 number.setPhoneNumber(this.getPhoneNumber());
620 DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(number);
623 this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber));
625 // All fine, redirect
626 return "admin_show_landline"; //NOI18N
630 * Changes mobile entry data
632 * @return Redirect outcome
634 public String doUpdateMobileNumber () {
635 // Get mobile number from helper
636 DialableMobileNumber number = this.createMobileNumber();
639 if (number == null) {
640 // Not set, throw NPE
641 throw new NullPointerException("mobileNumber is null"); //NOI18N
642 } else if (number.getPhoneId() == null) {
644 throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
645 } else if (number.getPhoneId() < 1) {
647 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
648 } else if (number.getMobileProvider() == null) {
650 throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
651 } else if (number.getMobileProvider().getProviderId() == null) {
653 throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
654 } else if (number.getMobileProvider().getProviderId() < 1) {
656 throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", number.getMobileProvider().getProviderId())); //NOI18N
657 } else if (number.getPhoneNumber() == null) {
659 throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
660 } else if (number.getPhoneNumber() < 1) {
662 throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
663 } else if (this.getMobileProvider() == null) {
665 throw new NullPointerException("this.mobileProvider is null"); //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 throw new NullPointerException("this.phoneNumber is null"); //NOI18N
677 // Is the mobile provider and number the same?
678 if ((Objects.equals(this.getMobileProvider(), number.getMobileProvider())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
680 this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
682 // No difference in both together, no need to edit
687 number.setMobileProvider(this.getMobileProvider());
688 number.setPhoneNumber(this.getPhoneNumber());
691 DialableMobileNumber updatedNumber = this.adminPhoneBean.updateMobileData(number);
694 this.mobileNumberUpdatedEvent.fire(new AdminMobileNumberUpdatedEvent(updatedNumber));
696 // All fine, redirect
697 return "admin_show_mobile"; //NOI18N
701 * Getter for chosen fax number
705 public DialableFaxNumber getFaxNumber () {
706 return this.faxNumber;
710 * Setter for chosen fax number
712 * @param faxNumber fax number
714 public void setFaxNumber (final DialableFaxNumber faxNumber) {
715 this.faxNumber = faxNumber;
719 * Getter for chosen land-line number
721 * @return land-line number
723 public DialableLandLineNumber getLandLineNumber () {
724 return this.landLineNumber;
728 * Setter for chosen land-line number
730 * @param landLineNumber land-line number
732 public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
733 this.landLineNumber = landLineNumber;
737 * Getter for chosen mobile number
739 * @return mobile number
741 public DialableMobileNumber getMobileNumber () {
742 return this.mobileNumber;
746 * Setter for chosen mobile number
748 * @param mobileNumber mobile number
750 public void setMobileNumber (final DialableMobileNumber mobileNumber) {
751 this.mobileNumber = mobileNumber;
755 * Getter for mobile provider
757 * @return Mobile provider
759 public MobileProvider getMobileProvider () {
760 return this.mobileProvider;
764 * Setter for mobile provider
766 * @param mobileProvider Mobile provider
768 public void setMobileProvider (final MobileProvider mobileProvider) {
769 this.mobileProvider = mobileProvider;
773 * Getter for phone area code
775 * @return Phone area code
777 public Integer getPhoneAreaCode () {
778 return this.phoneAreaCode;
782 * Setter for phone area code
784 * @param phoneAreaCode Phone area code
786 public void setPhoneAreaCode (final Integer phoneAreaCode) {
787 this.phoneAreaCode = phoneAreaCode;
791 * Getter for phone country (for dial prefix)
793 * @return Phone country
795 public Country getPhoneCountry () {
796 return this.phoneCountry;
800 * Setter for phone country (for dial prefix)
802 * @param phoneCountry Phone country
804 public void setPhoneCountry (final Country phoneCountry) {
805 this.phoneCountry = phoneCountry;
809 * Getter for phone entry created timestamp
811 * @return Phone entry created timestamp
813 @SuppressWarnings ("ReturnOfDateField")
814 public Date getPhoneEntryCreated () {
815 return this.phoneEntryCreated;
819 * Setter for phone entry created timestamp
821 * @param phoneEntryCreated Phone entry created timestamp
823 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
824 public void setPhoneEntryCreated (final Date phoneEntryCreated) {
825 this.phoneEntryCreated = phoneEntryCreated;
829 * Getter for phone entry updated timestamp
831 * @return Phone entry updated timestamp
833 @SuppressWarnings ("ReturnOfDateField")
834 public Date getPhoneEntryUpdated () {
835 return this.phoneEntryUpdated;
839 * Setter for phone entry updated timestamp
841 * @param phoneEntryUpdated Phone entry updated timestamp
843 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
844 public void setPhoneEntryUpdated (final Date phoneEntryUpdated) {
845 this.phoneEntryUpdated = phoneEntryUpdated;
849 * Getter for phone id
853 public Long getPhoneId () {
858 * Setter for phone id
860 * @param phoneId Phone id
862 public void setPhoneId (final Long phoneId) {
863 this.phoneId = phoneId;
867 * Getter for dial number without prefix
869 * @return Dial number without prefix
871 public Long getPhoneNumber () {
872 return this.phoneNumber;
876 * Setter for dial number without prefix
878 * @param phoneNumber Dial number without prefix
880 public void setPhoneNumber (final Long phoneNumber) {
881 this.phoneNumber = phoneNumber;
885 * Returns an instance of a DialableFaxNumber from all fields stored in this
888 * @return An instance of a DialableFaxNumber class
890 private DialableFaxNumber createFaxNumber () {
892 DialableFaxNumber number = new FaxNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
894 // Add all other data
895 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
896 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
899 if (this.getPhoneId() instanceof Long) {
901 number.setPhoneId(this.getPhoneId());
909 * Returns an instance of a DialableLandLineNumber from all fields stored in
912 * @return An instance of a DialableLandLineNumber class
914 private DialableLandLineNumber createLandLineNumber () {
916 DialableLandLineNumber number = new LandLineNumber(this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
918 // Add all other data
919 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
920 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
923 if (this.getPhoneId() instanceof Long) {
925 number.setPhoneId(this.getPhoneId());
933 * Returns an instance of a DialableMobileNumber from all fields stored in
936 * @return An instance of a DialableMobileNumber class
938 private DialableMobileNumber createMobileNumber () {
940 DialableMobileNumber number = new MobileNumber(this.getMobileProvider(), this.getPhoneNumber());
942 // Add all other data
943 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
944 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
947 if (this.getPhoneId() instanceof Long) {
949 number.setPhoneId(this.getPhoneId());