]> git.mxchange.org Git - jfinancials-war.git/blobdiff - src/java/org/mxchange/jfinancials/beans/phone/FinancialsAdminPhoneWebRequestBean.java
Updated copyright year
[jfinancials-war.git] / src / java / org / mxchange / jfinancials / beans / phone / FinancialsAdminPhoneWebRequestBean.java
index b0524e9de6f6deee979ce13592888c74092cf5c8..0fe324f1f96f0adf1aff5c7244d203bde27de0f4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2022 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
 package org.mxchange.jfinancials.beans.phone;
 
 import java.text.MessageFormat;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
-import javax.annotation.PostConstruct;
+import javax.ejb.EJB;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.event.Event;
+import javax.enterprise.event.Observes;
 import javax.enterprise.inject.Any;
-import javax.faces.view.facelets.FaceletException;
+import javax.faces.application.FacesMessage;
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import org.mxchange.jcountry.data.Country;
-import org.mxchange.jfinancials.beans.BaseFinancialsController;
-import org.mxchange.jfinancials.beans.helper.FinancialsWebRequestHelperController;
+import org.mxchange.jcountry.model.data.Country;
+import org.mxchange.jfinancials.beans.BaseFinancialsBean;
+import org.mxchange.jfinancials.beans.phone.list.FinancialsPhoneListWebViewController;
+import org.mxchange.jphone.events.fax.created.ObservableCreatedFaxNumberEvent;
 import org.mxchange.jphone.events.fax.deleted.AdminDeletedFaxNumberEvent;
 import org.mxchange.jphone.events.fax.deleted.AdminFaxNumberDeletedEvent;
 import org.mxchange.jphone.events.fax.removed.AdminFaxNumberRemovedFromListEvent;
 import org.mxchange.jphone.events.fax.removed.AdminRemoveFaxNumberFromListEvent;
 import org.mxchange.jphone.events.fax.updated.AdminFaxNumberUpdatedEvent;
 import org.mxchange.jphone.events.fax.updated.AdminUpdatedFaxNumberEvent;
+import org.mxchange.jphone.events.landline.created.ObservableCreatedLandLineNumberEvent;
 import org.mxchange.jphone.events.landline.deleted.AdminDeletedLandLineNumberEvent;
 import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent;
 import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent;
 import org.mxchange.jphone.events.landline.removed.AdminRemoveLandLineNumberFromListEvent;
 import org.mxchange.jphone.events.landline.updated.AdminLandLineNumberUpdatedEvent;
 import org.mxchange.jphone.events.landline.updated.AdminUpdatedLandLineNumberEvent;
-import org.mxchange.jphone.events.mobile.deleted.AdminDeletedMobileNumberEvent;
-import org.mxchange.jphone.events.mobile.deleted.AdminMobileNumberDeletedEvent;
-import org.mxchange.jphone.events.mobile.remove.AdminMobileNumberRemovedFromListEvent;
 import org.mxchange.jphone.events.mobile.remove.AdminRemoveMobileNumberFromListEvent;
-import org.mxchange.jphone.events.mobile.updated.AdminMobileNumberUpdatedEvent;
-import org.mxchange.jphone.events.mobile.updated.AdminUpdatedMobileNumberEvent;
-import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
-import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
-import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
-import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
-import org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote;
+import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
+import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
+import org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote;
 
 /**
  * Administrative bean (controller) for phone numbers
@@ -63,12 +59,7 @@ import org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote;
  */
 @Named ("adminPhoneController")
 @RequestScoped
-public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController implements FinancialsAdminPhoneWebRequestController {
-
-       /**
-        * Call-stack position
-        */
-       private static final short THREAD_STACK = 5;
+public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsBean implements FinancialsAdminPhoneWebRequestController {
 
        /**
         * Serial number
@@ -78,28 +69,13 @@ public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController
        /**
         * Remote EJB for phone number (administrative)
         */
+       @EJB (lookup = "java:global/jfinancials-ejb/adminPhone!org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote")
        private AdminPhoneSessionBeanRemote adminPhoneBean;
 
        /**
-        * Bean helper
-        */
-       @Inject
-       private FinancialsWebRequestHelperController beanHelper;
-
-       /**
-        *  fax number
-        */
-       private DialableFaxNumber choosenFaxNumber;
-
-       /**
-        *  land-line number
-        */
-       private DialableLandLineNumber choosenLandLineNumber;
-
-       /**
-        *  mobile number
+        * fax number
         */
-       private DialableMobileNumber choosenMobileNumber;
+       private DialableFaxNumber faxNumber;
 
        /**
         * Event being fired when an administrator has deleted fax number
@@ -115,6 +91,11 @@ public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController
        @Any
        private Event<AdminUpdatedFaxNumberEvent> faxNumberUpdatedEvent;
 
+       /**
+        * land-line number
+        */
+       private DialableLandLineNumber landLineNumber;
+
        /**
         * Event being fired when an administrator has deleted land-line number
         */
@@ -130,39 +111,35 @@ public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController
        private Event<AdminUpdatedLandLineNumberEvent> landLineNumberUpdatedEvent;
 
        /**
-        * Event being fired when an administrator has deleted mobile number
+        * Area code (city dial prefix)
         */
-       @Inject
-       @Any
-       private Event<AdminDeletedMobileNumberEvent> mobileNumberDeletedEvent;
+       private Integer phoneAreaCode;
 
        /**
-        * Event being fired when an administrator has updated land-line number
+        * Country (for dial prefix)
         */
-       @Inject
-       @Any
-       private Event<AdminUpdatedMobileNumberEvent> mobileNumberUpdatedEvent;
+       private Country phoneCountry;
 
        /**
-        * Mobile provider
+        * When the phone entry has been created (persisted)
         */
-       private MobileProvider mobileProvider;
+       private Date phoneEntryCreated;
 
        /**
-        * Area code (city dial prefix)
+        * When the phone entry has been updated
         */
-       private Integer phoneAreaCode;
+       private Date phoneEntryUpdated;
 
        /**
-        * Generic hone controller
+        * Phone id (aka primary key)
         */
-       @Inject
-       private FinancialsPhoneWebApplicationController phoneController;
+       private Long phoneId;
 
        /**
-        * Country (for dial prefix)
+        * Generic hone controller
         */
-       private Country phoneCountry;
+       @Inject
+       private FinancialsPhoneListWebViewController phoneListController;
 
        /**
         * Phone number
@@ -198,227 +175,261 @@ public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController
        public FinancialsAdminPhoneWebRequestBean () {
                // Call super constructor
                super();
+       }
 
-               // String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[3].getClassName(), Thread.currentThread().getStackTrace()[3].getMethodName());
-               // System.out.println(MessageFormat.format("{0}: Constructed, caller: {1}", this.getClass().getSimpleName(), caller));
+       /**
+        * Observes events being fired when a bean helper has successfully created a
+        * land-line number instance.
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterCreatedFaxNumberEvent (@Observes final ObservableCreatedFaxNumberEvent event) {
+               // The event instance must be valid
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getFaxNumber() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.landLineNumber is null"); //NOI18N
+               } else if (event.getFaxNumber().getPhoneId() == null) {
+                       // Throw NPE yet again
+                       throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
+               } else if (event.getFaxNumber().getPhoneId() < 1) {
+                       // Throw NPE yet again
+                       throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getFaxNumber().getPhoneId())); //NOI18N
+               }
+
+               // Get fax number from event
+               final DialableFaxNumber number = event.getFaxNumber();
+
+               // Copy all data to this bean
+               this.setPhoneId(number.getPhoneId());
+               this.setPhoneCountry(number.getPhoneCountry());
+               this.setPhoneAreaCode(number.getPhoneAreaCode());
+               this.setPhoneNumber(number.getPhoneNumber());
+               this.setPhoneEntryCreated(number.getPhoneEntryCreated());
+               this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
        }
 
-       @Override
-       public List<DialableFaxNumber> allNonLinkedFaxNumbers () {
-               // Get list of all mobile numbers
-               List<DialableFaxNumber> list = this.phoneController.allFaxNumbers();
+       /**
+        * Observes events being fired when a bean helper has successfully created a
+        * land-line number instance.
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterCreatedLandLineNumberEvent (@Observes final ObservableCreatedLandLineNumberEvent event) {
+               // The event instance must be valid
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getLandLineNumber() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.landLineNumber is null"); //NOI18N
+               } else if (event.getLandLineNumber().getPhoneId() == null) {
+                       // Throw NPE yet again
+                       throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
+               } else if (event.getLandLineNumber().getPhoneId() < 1) {
+                       // Throw NPE yet again
+                       throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getLandLineNumber().getPhoneId())); //NOI18N
+               }
 
-               // Visit all controllers to reduce the list
-               this.removeLinkedFaxNumbersEvent.fire(new AdminFaxNumberRemovedFromListEvent(list));
+               // Get fax number from event
+               final DialableLandLineNumber number = event.getLandLineNumber();
 
-               // Return it
-               return list;
+               // Copy all data to this bean
+               this.setPhoneId(number.getPhoneId());
+               this.setPhoneCountry(number.getPhoneCountry());
+               this.setPhoneAreaCode(number.getPhoneAreaCode());
+               this.setPhoneNumber(number.getPhoneNumber());
+               this.setPhoneEntryCreated(number.getPhoneEntryCreated());
+               this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
        }
 
-       @Override
-       public List<DialableLandLineNumber> allNonLinkedLandLineNumbers () {
+       /**
+        * Returns a list of all unused ("non-linked") land-line numbers
+        * <p>
+        * @return List with all unused land-line numbers
+        */
+       public List<DialableFaxNumber> allNonLinkedFaxNumbers () {
                // Get list of all mobile numbers
-               List<DialableLandLineNumber> list = this.phoneController.allLandLineNumbers();
+               final List<DialableFaxNumber> numbers = this.phoneListController.getAllFaxNumbers();
 
                // Visit all controllers to reduce the list
-               this.removeLinkedLandLineNumbersEvent.fire(new AdminLandLineNumberRemovedFromListEvent(list));
+               this.removeLinkedFaxNumbersEvent.fire(new AdminFaxNumberRemovedFromListEvent(numbers));
 
                // Return it
-               return list;
+               return numbers;
        }
 
-       @Override
-       public List<DialableMobileNumber> allNonLinkedMobileNumbers () {
+       /**
+        * Returns a list of all unused ("non-linked") land-line numbers
+        * <p>
+        * @return List with all unused land-line numbers
+        */
+       public List<DialableLandLineNumber> allNonLinkedLandLineNumbers () {
                // Get list of all mobile numbers
-               List<DialableMobileNumber> list = this.phoneController.allMobileNumbers();
+               final List<DialableLandLineNumber> numbers = this.phoneListController.getAllLandLineNumbers();
 
                // Visit all controllers to reduce the list
-               this.removeLinkedMobileNumbersEvent.fire(new AdminMobileNumberRemovedFromListEvent(list));
+               this.removeLinkedLandLineNumbersEvent.fire(new AdminLandLineNumberRemovedFromListEvent(numbers));
 
                // Return it
-               return list;
+               return numbers;
        }
 
-       @Override
-       public String deleteFaxData (final DialableFaxNumber faxNumber) {
+       /**
+        * Deletes given fax entry data
+        * <p>
+        */
+       public void deleteFaxData () {
+               // Get fax number from bean helper
+               final DialableFaxNumber number = this.createFaxNumber();
+
                // Is all data set
-               if (faxNumber == null) {
+               if (number == null) {
                        // Not set, throw NPE
                        throw new NullPointerException("faxNumber is null"); //NOI18N
-               } else if (faxNumber.getPhoneId() == null) {
+               } else if (number.getPhoneId() == null) {
                        // Throw NPE again
                        throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
-               } else if (faxNumber.getPhoneId() < 1) {
+               } else if (number.getPhoneId() < 1) {
                        // Invalid number
-                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N
-               } else if (faxNumber.getPhoneCountry() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
+               } else if (number.getPhoneCountry() == null) {
                        // Throw NPE
                        throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
-               } else if (faxNumber.getPhoneCountry().getCountryId() == null) {
+               } else if (number.getPhoneCountry().getCountryId() == null) {
                        // Throw NPE
                        throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
-               } else if (faxNumber.getPhoneCountry().getCountryId() < 1) {
+               } else if (number.getPhoneCountry().getCountryId() < 1) {
                        // Throw NPE
-                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", faxNumber.getPhoneCountry().getCountryId())); //NOI18N
-               } else if (faxNumber.getPhoneAreaCode() == null) {
+                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
+               } else if (number.getPhoneAreaCode() == null) {
                        // ... throw again
                        throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
-               } else if (faxNumber.getPhoneAreaCode() < 1) {
+               } else if (number.getPhoneAreaCode() < 1) {
                        // Id not valid
-                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", faxNumber.getPhoneAreaCode())); //NOI18N
-               } else if (faxNumber.getPhoneNumber() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
+               } else if (number.getPhoneNumber() == null) {
                        // Throw NPE again
                        throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
-               } else if (faxNumber.getPhoneNumber() < 1) {
+               } else if (number.getPhoneNumber() < 1) {
                        // Throw NPE again
-                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N
+                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
                }
 
                // Call EJB
-               this.adminPhoneBean.deleteFaxData(faxNumber);
+               this.adminPhoneBean.deleteFaxData(number);
 
                // Fire event
-               this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(faxNumber));
-
-               // All fine, redirect
-               return "admin_list_fax"; //NOI18N
+               this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(number));
        }
 
-       @Override
-       public String deleteLandLineData (final DialableLandLineNumber landLineNumber) {
+       /**
+        * Deletes given land-line entry data
+        */
+       public void deleteLandLineData () {
+               // Get land-line number from helper
+               final DialableLandLineNumber number = this.createLandLineNumber();
+
                // Is all data set
-               if (landLineNumber == null) {
+               if (number == null) {
                        // Not set, throw NPE
                        throw new NullPointerException("landLineNumber is null"); //NOI18N
-               } else if (landLineNumber.getPhoneId() == null) {
+               } else if (number.getPhoneId() == null) {
                        // Throw NPE again
                        throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
-               } else if (landLineNumber.getPhoneId() < 1) {
+               } else if (number.getPhoneId() < 1) {
                        // Invalid number
-                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N
-               } else if (landLineNumber.getPhoneCountry() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
+               } else if (number.getPhoneCountry() == null) {
                        // Throw NPE
                        throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
-               } else if (landLineNumber.getPhoneCountry().getCountryId() == null) {
+               } else if (number.getPhoneCountry().getCountryId() == null) {
                        // Throw NPE
                        throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
-               } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) {
+               } else if (number.getPhoneCountry().getCountryId() < 1) {
                        // Throw NPE
-                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N
-               } else if (landLineNumber.getPhoneAreaCode() == null) {
+                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
+               } else if (number.getPhoneAreaCode() == null) {
                        // ... throw again
                        throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
-               } else if (landLineNumber.getPhoneAreaCode() < 1) {
+               } else if (number.getPhoneAreaCode() < 1) {
                        // Id not valid
-                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", landLineNumber.getPhoneAreaCode())); //NOI18N
-               } else if (landLineNumber.getPhoneNumber() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
+               } else if (number.getPhoneNumber() == null) {
                        // Throw NPE again
                        throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
-               } else if (landLineNumber.getPhoneNumber() < 1) {
+               } else if (number.getPhoneNumber() < 1) {
                        // Throw NPE again
-                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N
+                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
                }
 
                // Call EJB
-               this.adminPhoneBean.deleteLandLineData(landLineNumber);
+               this.adminPhoneBean.deleteLandLineData(number);
 
                // Fire event
-               this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(landLineNumber));
-
-               // All fine, redirect
-               return "admin_list_landline"; //NOI18N
+               this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(number));
        }
 
-       @Override
-       public String deleteMobileData (final DialableMobileNumber mobileNumber) {
-               // Is all data set
-               if (mobileNumber == null) {
-                       // Not set, throw NPE
-                       throw new NullPointerException("mobileNumber is null"); //NOI18N
-               } else if (mobileNumber.getPhoneId() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
-               } else if (mobileNumber.getPhoneId() < 1) {
-                       // Invalid number
-                       throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", mobileNumber.getPhoneId())); //NOI18N
-               } else if (mobileNumber.getMobileProvider() == null) {
-                       // Throw NPE
-                       throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
-               } else if (mobileNumber.getMobileProvider().getProviderId() == null) {
-                       // ... throw again
-                       throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
-               } else if (mobileNumber.getMobileProvider().getProviderId() < 1) {
-                       // Id not valid
-                       throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", mobileNumber.getMobileProvider().getProviderId())); //NOI18N
-               } else if (mobileNumber.getPhoneNumber() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
-               } else if (mobileNumber.getPhoneNumber() < 1) {
-                       // Throw NPE again
-                       throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", mobileNumber.getPhoneNumber())); //NOI18N
-               }
-
-               // Call EJB
-               this.adminPhoneBean.deleteMobileData(mobileNumber);
-
-               // Fire event
-               this.mobileNumberDeletedEvent.fire(new AdminMobileNumberDeletedEvent(mobileNumber));
-
-               // All fine, redirect
-               return "admin_list_mobile"; //NOI18N
-       }
+       /**
+        * Changes fax entry data
+        * <p>
+        * @return Redirect outcome
+        */
+       public String doChangeFaxNumber () {
+               // Get fax number from bean helper
+               final DialableFaxNumber number = this.createFaxNumber();
 
-       @Override
-       public String editFaxData (final DialableFaxNumber faxNumber) {
                // Is all data set
-               if (faxNumber == null) {
+               if (number == null) {
                        // Not set, throw NPE
                        throw new NullPointerException("faxNumber is null"); //NOI18N
-               } else if (faxNumber.getPhoneId() == null) {
+               } else if (number.getPhoneId() == null) {
                        // Throw NPE again
                        throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
-               } else if (faxNumber.getPhoneId() < 1) {
+               } else if (number.getPhoneId() < 1) {
                        // Invalid number
-                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N
-               } else if (faxNumber.getPhoneCountry() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
+               } else if (number.getPhoneCountry() == null) {
                        // Throw NPE
                        throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
-               } else if (faxNumber.getPhoneCountry().getCountryId() == null) {
+               } else if (number.getPhoneCountry().getCountryId() == null) {
                        // Throw NPE
                        throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
-               } else if (faxNumber.getPhoneCountry().getCountryId() < 1) {
+               } else if (number.getPhoneCountry().getCountryId() < 1) {
                        // Throw NPE
-                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", faxNumber.getPhoneCountry().getCountryId())); //NOI18N
-               } else if (faxNumber.getPhoneAreaCode() == null) {
+                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
+               } else if (number.getPhoneAreaCode() == null) {
                        // ... throw again
                        throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
-               } else if (faxNumber.getPhoneAreaCode() < 1) {
+               } else if (number.getPhoneAreaCode() < 1) {
                        // Id not valid
-                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", faxNumber.getPhoneAreaCode())); //NOI18N
-               } else if (faxNumber.getPhoneNumber() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
+               } else if (number.getPhoneNumber() == null) {
                        // Throw NPE again
                        throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
-               } else if (faxNumber.getPhoneNumber() < 1) {
+               } else if (number.getPhoneNumber() < 1) {
                        // Throw NPE again
-                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N
+                       throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
                }
 
                // Is the mobile provider and number the same?
-               if ((Objects.equals(this.getPhoneCountry(), faxNumber.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), faxNumber.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), faxNumber.getPhoneNumber()))) {
+               if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
                        // Show message
-                       this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
+                       this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
 
                        // No difference in both together, no need to edit
                        return ""; //NOI18N
                }
 
                // Set all data
-               faxNumber.setPhoneCountry(this.getPhoneCountry());
-               faxNumber.setPhoneAreaCode(this.getPhoneAreaCode());
-               faxNumber.setPhoneNumber(this.getPhoneNumber());
+               number.setPhoneCountry(this.getPhoneCountry());
+               number.setPhoneAreaCode(this.getPhoneAreaCode());
+               number.setPhoneNumber(this.getPhoneNumber());
 
                // Send to bean
-               DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(faxNumber);
+               final DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(number);
 
                // Fire event
                this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber));
@@ -427,57 +438,64 @@ public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController
                return "admin_show_fax"; //NOI18N
        }
 
-       @Override
-       public String editLandLineData (final DialableLandLineNumber landLineNumber) {
+       /**
+        * Changes land-line entry data
+        * <p>
+        * @return Redirect outcome
+        */
+       public String doChangeLandLineNumber () {
+               // Get land-line number from helper
+               final DialableLandLineNumber number = this.createLandLineNumber();
+
                // Is all data set
-               if (landLineNumber == null) {
+               if (number == null) {
                        // Not set, throw NPE
                        throw new NullPointerException("landLineNumber is null"); //NOI18N
-               } else if (landLineNumber.getPhoneId() == null) {
+               } else if (number.getPhoneId() == null) {
                        // Throw NPE again
                        throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
-               } else if (landLineNumber.getPhoneId() < 1) {
+               } else if (number.getPhoneId() < 1) {
                        // Invalid number
-                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N
-               } else if (landLineNumber.getPhoneCountry() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
+               } else if (number.getPhoneCountry() == null) {
                        // Throw NPE
                        throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
-               } else if (landLineNumber.getPhoneCountry().getCountryId() == null) {
+               } else if (number.getPhoneCountry().getCountryId() == null) {
                        // Throw NPE
                        throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
-               } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) {
+               } else if (number.getPhoneCountry().getCountryId() < 1) {
                        // Throw NPE
-                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N
-               } else if (landLineNumber.getPhoneAreaCode() == null) {
+                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
+               } else if (number.getPhoneAreaCode() == null) {
                        // ... throw again
                        throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
-               } else if (landLineNumber.getPhoneAreaCode() < 1) {
+               } else if (number.getPhoneAreaCode() < 1) {
                        // Id not valid
-                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", landLineNumber.getPhoneAreaCode())); //NOI18N
-               } else if (landLineNumber.getPhoneNumber() == null) {
+                       throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
+               } else if (number.getPhoneNumber() == null) {
                        // Throw NPE again
                        throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
-               } else if (landLineNumber.getPhoneNumber() < 1) {
+               } else if (number.getPhoneNumber() < 1) {
                        // Throw NPE again
-                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N
+                       throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
                }
 
                // Is the mobile provider and number the same?
-               if ((Objects.equals(this.getPhoneCountry(), landLineNumber.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), landLineNumber.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), landLineNumber.getPhoneNumber()))) {
+               if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
                        // Show message
-                       this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
+                       this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
 
                        // No difference in both together, no need to edit
                        return ""; //NOI18N
                }
 
                // Set all data
-               landLineNumber.setPhoneCountry(this.getPhoneCountry());
-               landLineNumber.setPhoneAreaCode(this.getPhoneAreaCode());
-               landLineNumber.setPhoneNumber(this.getPhoneNumber());
+               number.setPhoneCountry(this.getPhoneCountry());
+               number.setPhoneAreaCode(this.getPhoneAreaCode());
+               number.setPhoneNumber(this.getPhoneNumber());
 
                // Send to bean
-               DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(landLineNumber);
+               final DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(number);
 
                // Fire event
                this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber));
@@ -486,162 +504,208 @@ public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsController
                return "admin_show_landline"; //NOI18N
        }
 
-       @Override
-       public String editMobileData (final DialableMobileNumber mobileNumber) {
-               // Is all data set
-               if (mobileNumber == null) {
-                       // Not set, throw NPE
-                       throw new NullPointerException("mobileNumber is null"); //NOI18N
-               } else if (mobileNumber.getPhoneId() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("mobileNumber.phoneId is null"); //NOI18N
-               } else if (mobileNumber.getPhoneId() < 1) {
-                       // Invalid number
-                       throw new IllegalArgumentException(MessageFormat.format("mobileNumber.phoneId={0} is not valid", mobileNumber.getPhoneId())); //NOI18N
-               } else if (mobileNumber.getMobileProvider() == null) {
-                       // Throw NPE
-                       throw new NullPointerException("mobileNumber.mobileProvider is null"); //NOI18N
-               } else if (mobileNumber.getMobileProvider().getProviderId() == null) {
-                       // ... throw again
-                       throw new NullPointerException("mobileNumber.mobileProvider.providerId is null"); //NOI18N
-               } else if (mobileNumber.getMobileProvider().getProviderId() < 1) {
-                       // Id not valid
-                       throw new IllegalArgumentException(MessageFormat.format("mobileNumber.mobileProvider.providerId={0} is not valid.", mobileNumber.getMobileProvider().getProviderId())); //NOI18N
-               } else if (mobileNumber.getPhoneNumber() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("mobileNumber.phoneNumber is null"); //NOI18N
-               } else if (mobileNumber.getPhoneNumber() < 1) {
-                       // Throw NPE again
-                       throw new NullPointerException(MessageFormat.format("mobileNumber.phoneNumber={0} is not valid.", mobileNumber.getPhoneNumber())); //NOI18N
-               } else if (this.getMobileProvider() == null) {
-                       // Not provided
-                       this.showFacesMessage("form_edit_mobile:mobileProvider", "ERROR_ADMIN_NO_MOBILE_PROVIDER_SELECTED"); //NOI18N
-                       return ""; //NOI18N
-               } else if (this.getMobileProvider().getProviderId() == null) {
-                       // Throw NPE again ...
-                       throw new NullPointerException("this.mobileProvider.providerId is null"); //NOI18N
-               } else if (this.getMobileProvider().getProviderId() < 0) {
-                       // Invalid id number
-                       throw new IllegalArgumentException(MessageFormat.format("this.mobileProvider.providerId={0} is not valid.", this.getMobileProvider().getProviderId())); //NOI18N
-               } else if (this.getPhoneNumber() == null) {
-                       // Not provided
-                       this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_EMPTY_MOBILE_NUMBER"); //NOI18N
-                       return ""; //NOI18N
-               }
-
-               // Is the mobile provider and number the same?
-               if ((Objects.equals(this.getMobileProvider(), mobileNumber.getMobileProvider())) && (Objects.equals(this.getPhoneNumber(), mobileNumber.getPhoneNumber()))) {
-                       // Show message
-                       this.showFacesMessage("form_edit_mobile:mobileNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N
-
-                       // No difference in both together, no need to edit
-                       return ""; //NOI18N
-               }
-
-               // Set all data
-               mobileNumber.setMobileProvider(this.getMobileProvider());
-               mobileNumber.setPhoneNumber(this.getPhoneNumber());
-
-               // Send to bean
-               DialableMobileNumber updatedNumber = this.adminPhoneBean.updateMobileData(mobileNumber);
-
-               // Fire event
-               this.mobileNumberUpdatedEvent.fire(new AdminMobileNumberUpdatedEvent(updatedNumber));
+       /**
+        * Getter for chosen fax number
+        * <p>
+        * @return fax number
+        */
+       public DialableFaxNumber getFaxNumber () {
+               return this.faxNumber;
+       }
 
-               // All fine, redirect
-               return "admin_show_mobile"; //NOI18N
+       /**
+        * Setter for chosen fax number
+        * <p>
+        * @param faxNumber fax number
+        */
+       public void setFaxNumber (final DialableFaxNumber faxNumber) {
+               this.faxNumber = faxNumber;
        }
 
-       @Override
-       public DialableFaxNumber getFaxNumber () {
-               // String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
-               // System.out.println(MessageFormat.format("{0}: Returning this.choosenFaxNumber={1}, caller: {2}", this.getClass().getSimpleName(), this.choosenFaxNumber, caller));
-               return this.choosenFaxNumber;
+       /**
+        * Getter for chosen land-line number
+        * <p>
+        * @return land-line number
+        */
+       public DialableLandLineNumber getLandLineNumber () {
+               return this.landLineNumber;
        }
 
-       @Override
-       public void setFaxNumber (final DialableFaxNumber choosenFaxNumber) {
-               // String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
-               // System.out.println(MessageFormat.format("{0}: Settin choosenFaxNumber={1}, previous: this.choosenFaxNumber={2}, caller: {3}", this.getClass().getSimpleName(), choosenFaxNumber, this.choosenFaxNumber, caller));
-               this.choosenFaxNumber = choosenFaxNumber;
+       /**
+        * Setter for chosen land-line number
+        * <p>
+        * @param landLineNumber land-line number
+        */
+       public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
+               this.landLineNumber = landLineNumber;
        }
 
-       @Override
-       public DialableLandLineNumber getLandLineNumber () {
-               return this.choosenLandLineNumber;
+       /**
+        * Getter for phone area code
+        * <p>
+        * @return Phone area code
+        */
+       public Integer getPhoneAreaCode () {
+               return this.phoneAreaCode;
        }
 
-       @Override
-       public void setLandLineNumber (final DialableLandLineNumber choosenLandLineNumber) {
-               this.choosenLandLineNumber = choosenLandLineNumber;
+       /**
+        * Setter for phone area code
+        * <p>
+        * @param phoneAreaCode Phone area code
+        */
+       public void setPhoneAreaCode (final Integer phoneAreaCode) {
+               this.phoneAreaCode = phoneAreaCode;
        }
 
-       @Override
-       public DialableMobileNumber getMobileNumber () {
-               return this.choosenMobileNumber;
+       /**
+        * Getter for phone country (for dial prefix)
+        * <p>
+        * @return Phone country
+        */
+       public Country getPhoneCountry () {
+               return this.phoneCountry;
        }
 
-       @Override
-       public void setMobileNumber (final DialableMobileNumber choosenMobileNumber) {
-               this.choosenMobileNumber = choosenMobileNumber;
+       /**
+        * Setter for phone country (for dial prefix)
+        * <p>
+        * @param phoneCountry Phone country
+        */
+       public void setPhoneCountry (final Country phoneCountry) {
+               this.phoneCountry = phoneCountry;
        }
 
-       @Override
-       public MobileProvider getMobileProvider () {
-               return this.mobileProvider;
+       /**
+        * Getter for phone entry created timestamp
+        * <p>
+        * @return Phone entry created timestamp
+        */
+       @SuppressWarnings ("ReturnOfDateField")
+       public Date getPhoneEntryCreated () {
+               return this.phoneEntryCreated;
        }
 
-       @Override
-       public void setMobileProvider (final MobileProvider mobileProvider) {
-               this.mobileProvider = mobileProvider;
+       /**
+        * Setter for phone entry created timestamp
+        * <p>
+        * @param phoneEntryCreated Phone entry created timestamp
+        */
+       @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+       public void setPhoneEntryCreated (final Date phoneEntryCreated) {
+               this.phoneEntryCreated = phoneEntryCreated;
        }
 
-       @Override
-       public Integer getPhoneAreaCode () {
-               return this.phoneAreaCode;
+       /**
+        * Getter for phone entry updated timestamp
+        * <p>
+        * @return Phone entry updated timestamp
+        */
+       @SuppressWarnings ("ReturnOfDateField")
+       public Date getPhoneEntryUpdated () {
+               return this.phoneEntryUpdated;
        }
 
-       @Override
-       public void setPhoneAreaCode (final Integer phoneAreaCode) {
-               this.phoneAreaCode = phoneAreaCode;
+       /**
+        * Setter for phone entry updated timestamp
+        * <p>
+        * @param phoneEntryUpdated Phone entry updated timestamp
+        */
+       @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+       public void setPhoneEntryUpdated (final Date phoneEntryUpdated) {
+               this.phoneEntryUpdated = phoneEntryUpdated;
        }
 
-       @Override
-       public Country getPhoneCountry () {
-               return this.phoneCountry;
+       /**
+        * Getter for phone id
+        * <p>
+        * @return Phone id
+        */
+       public Long getPhoneId () {
+               return this.phoneId;
        }
 
-       @Override
-       public void setPhoneCountry (final Country phoneCountry) {
-               this.phoneCountry = phoneCountry;
+       /**
+        * Setter for phone id
+        * <p>
+        * @param phoneId Phone id
+        */
+       public void setPhoneId (final Long phoneId) {
+               this.phoneId = phoneId;
        }
 
-       @Override
+       /**
+        * Getter for dial number without prefix
+        * <p>
+        * @return Dial number without prefix
+        */
        public Long getPhoneNumber () {
                return this.phoneNumber;
        }
 
-       @Override
+       /**
+        * Setter for dial number without prefix
+        * <p>
+        * @param phoneNumber Dial number without prefix
+        */
        public void setPhoneNumber (final Long phoneNumber) {
                this.phoneNumber = phoneNumber;
        }
 
        /**
-        * Post-construction method
+        * Returns an instance of a DialableFaxNumber from all fields stored in this
+        * bean.
+        * <p>
+        * @return An instance of a DialableFaxNumber class
         */
-       @PostConstruct
-       public void init () {
-               // Try it
-               try {
-                       // Get initial context
-                       Context context = new InitialContext();
+       private DialableFaxNumber createFaxNumber () {
+               // Initialize it
+               final DialableFaxNumber number = new FaxNumber(
+                                                               this.getPhoneCountry(),
+                                                               this.getPhoneAreaCode(),
+                                                               this.getPhoneNumber()
+                                               );
+
+               // Add all other data
+               number.setPhoneEntryCreated(this.getPhoneEntryCreated());
+               number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
+
+               // Is id number set?
+               if (this.getPhoneId() instanceof Long) {
+                       // Set it
+                       number.setPhoneId(this.getPhoneId());
+               }
+
+               // Return it
+               return number;
+       }
 
-                       // Try to lookup the beans
-                       this.adminPhoneBean = (AdminPhoneSessionBeanRemote) context.lookup("java:global/jfinancials-ejb/adminPhone!org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote"); //NOI18N
-               } catch (final NamingException e) {
-                       // Throw it again
-                       throw new FaceletException(e);
+       /**
+        * Returns an instance of a DialableLandLineNumber from all fields stored in
+        * this bean.
+        * <p>
+        * @return An instance of a DialableLandLineNumber class
+        */
+       private DialableLandLineNumber createLandLineNumber () {
+               // Initialize it
+               final DialableLandLineNumber number = new LandLineNumber(
+                                                                        this.getPhoneCountry(),
+                                                                        this.getPhoneAreaCode(),
+                                                                        this.getPhoneNumber()
+                                                        );
+
+               // Add all other data
+               number.setPhoneEntryCreated(this.getPhoneEntryCreated());
+               number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
+
+               // Is id number set?
+               if (this.getPhoneId() instanceof Long) {
+                       // Set it
+                       number.setPhoneId(this.getPhoneId());
                }
+
+               // Return it
+               return number;
        }
 
 }