]> git.mxchange.org Git - addressbook-war.git/commitdiff
WIP: Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Thu, 3 Aug 2017 19:43:01 +0000 (21:43 +0200)
committerRoland Häder <roland@mxchange.org>
Sat, 5 Aug 2017 19:23:04 +0000 (21:23 +0200)
- renamed methods to make them more clear (current fax/land-line/mobile number)
- these methods and also getter/setter in bean helper are for JSF views only and
  should not be callable by other beans
- so this change breaks a lot again and I again need to rewrite it
- so more controller interfaces are now empty, maybe one day some methods will
  come back, but ...
- anyway, doing a lot CDI calls (in some methods +10 calls each) is really not
  good as CDI does take some time
- better reimplement it in CDI events which are more flexible as more beans can
  be reached than only those which are hard-coded in
- sorted members again

Signed-off-by: Roland Häder <roland@mxchange.org>
12 files changed:
src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java
src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestController.java
src/java/org/mxchange/addressbook/beans/contact/phone/AddressbookContactPhoneWebSessionBean.java
src/java/org/mxchange/addressbook/beans/contact/phone/AddressbookContactPhoneWebSessionController.java
src/java/org/mxchange/addressbook/beans/helper/AddressbookWebRequestHelperBean.java
src/java/org/mxchange/addressbook/beans/helper/AddressbookWebRequestHelperController.java
src/java/org/mxchange/addressbook/beans/phone/AddressbookAdminPhoneWebRequestBean.java
src/java/org/mxchange/addressbook/beans/user/AddressbookUserWebSessionBean.java
src/java/org/mxchange/addressbook/beans/user/confirmlink/AddressbookConfirmationLinkWebRequestBean.java
web/admin/fax/admin_fax_show.xhtml
web/admin/landline/admin_landline_show.xhtml
web/admin/mobile/admin_mobile_show.xhtml

index a05174d05fe0b335a756b75833aa4df462aeef1e..b13c38cc8a0c9bd5f3becf4c6091e2c6413770c0 100644 (file)
@@ -22,6 +22,7 @@ import java.util.Iterator;
 import javax.annotation.PostConstruct;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.event.Event;
+import javax.enterprise.event.Observes;
 import javax.enterprise.inject.Any;
 import javax.faces.context.FacesContext;
 import javax.faces.view.facelets.FaceletException;
@@ -40,6 +41,7 @@ import org.mxchange.jcontacts.contact.UserContact;
 import org.mxchange.jcontacts.contact.title.PersonalTitle;
 import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent;
 import org.mxchange.jcontacts.events.contact.add.ObservableAdminAddedContactEvent;
+import org.mxchange.jcontacts.events.contact.helper.created.ObservableHelperCreatedContactEvent;
 import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
 import org.mxchange.jcontacts.events.contact.update.ObservableAdminUpdatedContactEvent;
 import org.mxchange.jcontacts.exceptions.ContactAlreadyAddedException;
@@ -117,14 +119,14 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
        private AddressbookContactWebSessionController contactController;
 
        /**
-        * Contact id
+        * Country instance
         */
-       private Long contactId;
+       private Country contactCountry;
 
        /**
-        * Country instance
+        * Contact id
         */
-       private Country contactCountry;
+       private Long contactId;
 
        /**
         * Email address
@@ -307,23 +309,34 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
                return "admin_list_contact"; //NOI18N
        }
 
-       @Override
-       public void copyContactToController (final Contact contact) {
+       /**
+        * Observer for events being fired when a bean helper has successfully
+        * created a contact instance.
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterHelperCreatedContactEvent (@Observes final ObservableHelperCreatedContactEvent event) {
                // Log message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("AdminContactController::copyContactToController(): contact={0} - CALLED!", contact)); //NOI18N
+               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("AdminContactController::afterHelperCreatedContactEvent(): contact={0} - CALLED!", contact)); //NOI18N
 
-               // The contact instance must be valid
-               if (null == contact) {
+               // The event instance must be valid
+               if (null == event) {
                        // Throw NPE again
-                       throw new NullPointerException("contact is null"); //NOI18N
-               } else if (contact.getContactId() == null) {
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getCreatedContact() == null) {
                        // Throw NPE again
-                       throw new NullPointerException("contact.contactId is null"); //NOI18N //NOI18N
-               } else if (contact.getContactId() < 1) {
+                       throw new NullPointerException("event.createdContact is null"); //NOI18N //NOI18N
+               } else if (event.getCreatedContact().getContactId() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.createdContact.contactId is null"); //NOI18N //NOI18N
+               } else if (event.getCreatedContact().getContactId() < 1) {
                        // Not valid
-                       throw new IllegalStateException(MessageFormat.format("contact.contactId={0} is not valid.", contact.getContactId())); //NOI18N
+                       throw new IllegalStateException(MessageFormat.format("event.createdContact.contactId={0} is not valid.", event.getCreatedContact().getContactId())); //NOI18N
                }
 
+               // Get contact instance from event
+               Contact contact = event.getCreatedContact();
+
                // Set all fields: contact
                this.setContactId(contact.getContactId());
                this.setAcademicTitle(contact.getContactTitle());
@@ -367,7 +380,7 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
                }
 
                // Log message
-               //* NOISY-DEBUG: */ System.out.println("AdminContactController::copyContactToController(): EXIT!"); //NOI18N
+               //* NOISY-DEBUG: */ System.out.println("AdminContactController::afterHelperCreatedContactEvent(): EXIT!"); //NOI18N
        }
 
        @Override
@@ -398,6 +411,12 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
                // Create new instance
                Contact contact = new UserContact(this.getPersonalTitle(), this.getFirstName(), this.getFamilyName());
 
+               // Is contact id set?
+               if (this.getContactId() instanceof Long) {
+                       // Set it, too
+                       contact.setContactId(this.getContactId());
+               }
+
                // Add all others
                contact.setContactTitle(this.getAcademicTitle());
                contact.setContactBirthday(this.getBirthday());
@@ -481,7 +500,7 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
         */
        public String editContactData () {
                // Get contact instance
-               Contact contact = this.beanHelper.getContact();
+               Contact contact = this.createContactInstance();
 
                // Check if contact instance is in helper and valid
                if (null == contact) {
@@ -638,6 +657,24 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
                this.comment = comment;
        }
 
+       /**
+        * Getter for contactCountry instance
+        * <p>
+        * @return Country instance
+        */
+       public Country getContactCountry () {
+               return this.contactCountry;
+       }
+
+       /**
+        * Setter for contactCountry instance
+        * <p>
+        * @param contactCountry Country instance
+        */
+       public void setContactCountry (final Country contactCountry) {
+               this.contactCountry = contactCountry;
+       }
+
        /**
         * Getter for contact id
         * <p>
@@ -667,24 +704,6 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookContro
                throw new UnsupportedOperationException("Setting controller type is not supported."); //NOI18N
        }
 
-       /**
-        * Getter for contactCountry instance
-        * <p>
-        * @return Country instance
-        */
-       public Country getContactCountry () {
-               return this.contactCountry;
-       }
-
-       /**
-        * Setter for contactCountry instance
-        * <p>
-        * @param contactCountry Country instance
-        */
-       public void setContactCountry (final Country contactCountry) {
-               this.contactCountry = contactCountry;
-       }
-
        /**
         * Getter for email address
         * <p>
index ace32bab2e07d37f9b2c86887b2333b75a015d67..1a2b1e4267a1ccfaea734d18d59ad900b4c30c67 100644 (file)
@@ -38,13 +38,6 @@ public interface AddressbookAdminContactWebRequestController extends Serializabl
         */
        Contact createContactInstance ();
 
-       /**
-        * Copies given contact's data to this controller
-        * <p>
-        * @param contact Contact instance
-        */
-       void copyContactToController (final Contact contact);
-
        /**
         * Getter for controller type
         * <p>
index b297c6f114da8d2c8f4b48c04a069d2d96d460a4..4eca4c491e5176197cd07a8014283b4598a74439 100644 (file)
@@ -245,8 +245,12 @@ public class AddressbookContactPhoneWebSessionBean extends BaseAddressbookContro
                this.clear();
        }
 
-       @Override
-       public List<Contact> allFaxNumberContacts () {
+       /**
+        * Getter for all contacts having current fax number linked
+        * <p>
+        * @return List of all linked contacts
+        */
+       public List<Contact> allCurrentFaxNumberContacts () {
                // Get id
                DialableFaxNumber faxNumber = this.beanHelper.getFaxNumber();
 
@@ -261,7 +265,7 @@ public class AddressbookContactPhoneWebSessionBean extends BaseAddressbookContro
                        // "Walk" through all contacts
                        for (final Contact contact : this.contactController.allContacts()) {
                                // Is mobile instance the same?
-                               if (Objects.equals(contact.getContactFaxNumber(), this.beanHelper.getFaxNumber())) {
+                               if (Objects.equals(contact.getContactFaxNumber(), faxNumber)) {
                                        // Found one
                                        list.add(contact);
                                }
@@ -275,8 +279,12 @@ public class AddressbookContactPhoneWebSessionBean extends BaseAddressbookContro
                }
        }
 
-       @Override
-       public List<Contact> allLandLineNumberContacts () {
+       /**
+        * Getter for all contacts having current land-line number linked
+        * <p>
+        * @return List of all linked contacts
+        */
+       public List<Contact> allCurrentLandLineNumberContacts () {
                // Get id
                DialableLandLineNumber landLineNumber = this.beanHelper.getLandLineNumber();
 
@@ -291,7 +299,7 @@ public class AddressbookContactPhoneWebSessionBean extends BaseAddressbookContro
                        // "Walk" through all contacts
                        for (final Contact contact : this.contactController.allContacts()) {
                                // Is mobile instance the same?
-                               if (Objects.equals(contact.getContactLandLineNumber(), this.beanHelper.getLandLineNumber())) {
+                               if (Objects.equals(contact.getContactLandLineNumber(), landLineNumber)) {
                                        // Found one
                                        list.add(contact);
                                }
@@ -305,8 +313,12 @@ public class AddressbookContactPhoneWebSessionBean extends BaseAddressbookContro
                }
        }
 
-       @Override
-       public List<Contact> allMobileNumberContacts () {
+       /**
+        * Getter for all contacts having current mobile number linked
+        * <p>
+        * @return List of all linked contacts
+        */
+       public List<Contact> allCurrentMobileNumberContacts () {
                // Get id
                DialableMobileNumber mobileNumber = this.beanHelper.getMobileNumber();
 
@@ -321,7 +333,7 @@ public class AddressbookContactPhoneWebSessionBean extends BaseAddressbookContro
                        // "Walk" through all contacts
                        for (final Contact contact : this.contactController.allContacts()) {
                                // Is mobile instance the same?
-                               if (Objects.equals(contact.getContactMobileNumber(), this.beanHelper.getMobileNumber())) {
+                               if (Objects.equals(contact.getContactMobileNumber(), mobileNumber)) {
                                        // Found one
                                        list.add(contact);
                                }
index f9226cc31041e8f1e228f4517f866306628903fb..586156c04d1e64ed9328dc51563c01cdf20ebfc3 100644 (file)
@@ -17,8 +17,6 @@
 package org.mxchange.addressbook.beans.contact.phone;
 
 import java.io.Serializable;
-import java.util.List;
-import org.mxchange.jcontacts.contact.Contact;
 
 /**
  * An interface for user beans
@@ -27,25 +25,4 @@ import org.mxchange.jcontacts.contact.Contact;
  */
 public interface AddressbookContactPhoneWebSessionController extends Serializable {
 
-       /**
-        * Getter for all contacts having current fax number linked
-        * <p>
-        * @return List of all linked contacts
-        */
-       List<Contact> allFaxNumberContacts ();
-
-       /**
-        * Getter for all contacts having current land-line number linked
-        * <p>
-        * @return List of all linked contacts
-        */
-       List<Contact> allLandLineNumberContacts ();
-
-       /**
-        * Getter for all contacts having current mobile number linked
-        * <p>
-        * @return List of all linked contacts
-        */
-       List<Contact> allMobileNumberContacts ();
-
 }
index ecac941a9a4c695634a442277aed424009dba85f..f7f203f115e401ef4be6754ee43b0492a6ab2449 100644 (file)
@@ -27,6 +27,8 @@ import org.mxchange.addressbook.beans.phone.AddressbookAdminPhoneWebRequestContr
 import org.mxchange.addressbook.beans.user.AddressbookAdminUserWebRequestController;
 import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController;
 import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jcontacts.events.contact.helper.created.HelperCreatedContactEvent;
+import org.mxchange.jcontacts.events.contact.helper.created.ObservableHelperCreatedContactEvent;
 import org.mxchange.jphone.events.helper.fax.created.HelperCreatedFaxNumberEvent;
 import org.mxchange.jphone.events.helper.fax.created.ObservableHelperCreatedFaxNumberEvent;
 import org.mxchange.jphone.events.helper.landline.created.HelperCreatedLandLineNumberEvent;
@@ -82,59 +84,66 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
         */
        private Contact contact;
 
+       /**
+        * Event for when a contact instance was created
+        */
+       @Any
+       @Inject
+       private Event<ObservableHelperCreatedContactEvent> contactCreatedEvent;
+
        /**
         * Fax number
         */
        private DialableFaxNumber faxNumber;
 
        /**
-        * Land-line number
+        * Event for when a fax number instance was created
         */
-       private DialableLandLineNumber landLineNumber;
+       @Any
+       @Inject
+       private Event<ObservableHelperCreatedFaxNumberEvent> faxNumberCreatedEvent;
 
        /**
-        * Mobile number
+        * Land-line number
         */
-       private DialableMobileNumber mobileNumber;
+       private DialableLandLineNumber landLineNumber;
 
        /**
-        * User instance
+        * Event for when a land-line number instance was created
         */
-       private User user;
+       @Any
+       @Inject
+       private Event<ObservableHelperCreatedLandLineNumberEvent> landLineNumberCreatedEvent;
 
        /**
-        * Regular user controller
+        * Mobile number
         */
-       @Inject
-       private AddressbookUserWebSessionController userController;
+       private DialableMobileNumber mobileNumber;
 
        /**
-        * Event for when a user instance was created
+        * Event for when a mobile number instance was created
         */
        @Any
        @Inject
-       private Event<ObservableHelperCreatedUserEvent> userCreatedEvent;
+       private Event<ObservableHelperCreatedMobileNumberEvent> mobileNumberCreatedEvent;
 
        /**
-        * Event for when a fax number instance was created
+        * User instance
         */
-       @Any
-       @Inject
-       private Event<ObservableHelperCreatedFaxNumberEvent> faxNumberCreatedEvent;
+       private User user;
 
        /**
-        * Event for when a land-line number instance was created
+        * Regular user controller
         */
-       @Any
        @Inject
-       private Event<ObservableHelperCreatedLandLineNumberEvent> landLineNumberCreatedEvent;
+       private AddressbookUserWebSessionController userController;
 
        /**
-        * Event for when a mobile number instance was created
+        * Event for when a user instance was created
         */
        @Any
        @Inject
-       private Event<ObservableHelperCreatedMobileNumberEvent> mobileNumberCreatedEvent;
+       private Event<ObservableHelperCreatedUserEvent> userCreatedEvent;
 
        /**
         * Default constructor
@@ -147,7 +156,9 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                // System.out.println(MessageFormat.format("{0}: Constructed, caller: {1}", this.getClass().getSimpleName(), caller));
        }
 
-       @Override
+       /**
+        * Copies currently set contact instances data to adminContactController
+        */
        public void copyContactToController () {
                // String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
                // System.out.println(MessageFormat.format("{0}.copyContactToController: CALLED, caller: {2}", this.getClass().getSimpleName(), this.contact, caller));
@@ -168,10 +179,12 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                this.setPhoneInstances(this.getContact());
 
                // Set all fields: user
-               this.adminContactController.copyContactToController(this.getContact());
+               this.contactCreatedEvent.fire(new HelperCreatedContactEvent(this.getContact()));
        }
 
-       @Override
+       /**
+        * Copies currently set fax number's data to admin phone controller
+        */
        public void copyFaxNumberToController () {
                // Validate fax instance
                if (this.getFaxNumber() == null) {
@@ -210,7 +223,9 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                this.faxNumberCreatedEvent.fire(new HelperCreatedFaxNumberEvent(this.getFaxNumber()));
        }
 
-       @Override
+       /**
+        * Copies currently set land-line number's data to admin phone controller
+        */
        public void copyLandLineNumberToController () {
                // Validate land-line instance
                if (this.getLandLineNumber() == null) {
@@ -249,7 +264,9 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                this.landLineNumberCreatedEvent.fire(new HelperCreatedLandLineNumberEvent(this.getLandLineNumber()));
        }
 
-       @Override
+       /**
+        * Copies currently set mobile number's data to admin phone controller
+        */
        public void copyMobileNumberToController () {
                // Validate mobile instance
                if (this.getMobileNumber() == null) {
@@ -282,7 +299,9 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                this.mobileNumberCreatedEvent.fire(new HelperCreatedMobileNumberEvent(this.getMobileNumber()));
        }
 
-       @Override
+       /**
+        * Copies currently set user instances data to adminUserController
+        */
        public void copyUserToController () {
                // Log message
                //* NOISY-DEBUG: */ System.out.println("AdminHelper::copyUserToController - CALLED!"); //NOI18N
@@ -312,21 +331,34 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                this.userCreatedEvent.fire(new HelperCreatedUserEvent(this.getUser()));
        }
 
-       @Override
+       /**
+        * Getter for contact instance
+        * <p>
+        * @return Contact instance
+        */
        public Contact getContact () {
-               // 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.contact={1}, caller: {2}", this.getClass().getSimpleName(), this.contact, caller));
                return this.contact;
        }
 
-       @Override
+       /**
+        * Setter for contact instance
+        * <p>
+        * @param contact Contact instance
+        */
        public void setContact (final Contact contact) {
                // String caller = MessageFormat.format("{0}.{1}", Thread.currentThread().getStackTrace()[THREAD_STACK].getClassName(), Thread.currentThread().getStackTrace()[THREAD_STACK].getMethodName());
                // System.out.println(MessageFormat.format("{0}: Setting contact={1}, previous: {2}, caller: {3}", this.getClass().getSimpleName(), contact, this.contact, caller));
                this.contact = contact;
        }
 
-       @Override
+       /**
+        * Returns a message key depending on if this contact is a user and/or a
+        * contact. If this contact is unused, a default key is returned.
+        * <p>
+        * @param contact Contact instance to check
+        * <p>
+        * @return Message key
+        */
        public String getContactUsageMessageKey (final Contact contact) {
                // The contact must be valid
                if (null == contact) {
@@ -356,42 +388,74 @@ public class AddressbookWebRequestHelperBean implements AddressbookWebRequestHel
                return messageKey;
        }
 
-       @Override
+       /**
+        * Getter for dialable fax number
+        * <p>
+        * @return Dialable fax number
+        */
        public DialableFaxNumber getFaxNumber () {
                return this.faxNumber;
        }
 
-       @Override
+       /**
+        * Setter for dialable fax number
+        * <p>
+        * @param faxNumber Dialable fax number
+        */
        public void setFaxNumber (final DialableFaxNumber faxNumber) {
                this.faxNumber = faxNumber;
        }
 
-       @Override
+       /**
+        * Getter for dialable land-line number
+        * <p>
+        * @return Dialable land-line number
+        */
        public DialableLandLineNumber getLandLineNumber () {
                return this.landLineNumber;
        }
 
-       @Override
+       /**
+        * Setter for dialable land-line number
+        * <p>
+        * @param landLineNumber Dialable land-line number
+        */
        public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
                this.landLineNumber = landLineNumber;
        }
 
-       @Override
+       /**
+        * Getter for dialable mobile number
+        * <p>
+        * @return Dialable mobile number
+        */
        public DialableMobileNumber getMobileNumber () {
                return this.mobileNumber;
        }
 
-       @Override
+       /**
+        * Setter for dialable mobile number
+        * <p>
+        * @param mobileNumber Dialable mobile number
+        */
        public void setMobileNumber (final DialableMobileNumber mobileNumber) {
                this.mobileNumber = mobileNumber;
        }
 
-       @Override
+       /**
+        * Getter for user instance
+        * <p>
+        * @return User instance
+        */
        public User getUser () {
                return this.user;
        }
 
-       @Override
+       /**
+        * Setter for user instance
+        * <p>
+        * @param user User instance
+        */
        public void setUser (final User user) {
                this.user = user;
        }
index 77b1f50ecdfe067b13a5b555573b13cfc1f570cd..96c2b0705e2a8514b8eb070a068254d881dfbca6 100644 (file)
 package org.mxchange.addressbook.beans.helper;
 
 import java.io.Serializable;
-import org.mxchange.jcontacts.contact.Contact;
-import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
-import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
-import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
-import org.mxchange.jusercore.model.user.User;
 
 /**
  * An interface for general bean helper
@@ -30,109 +25,4 @@ import org.mxchange.jusercore.model.user.User;
  */
 public interface AddressbookWebRequestHelperController extends Serializable {
 
-       /**
-        * Copies currently set fax number's data to admin phone controller
-        */
-       void copyFaxNumberToController ();
-
-       /**
-        * Copies currently set land-line number's data to admin phone controller
-        */
-       void copyLandLineNumberToController ();
-
-       /**
-        * Copies currently set mobile number's data to admin phone controller
-        */
-       void copyMobileNumberToController ();
-
-       /**
-        * Copies currently set contact instance's data to adminContactController
-        */
-       void copyContactToController ();
-
-       /**
-        * Copies currently set user instance's data to adminUserController
-        */
-       void copyUserToController ();
-
-       /**
-        * Returns a message key depending on if this contact is a user and/or a
-        * contact. If this contact is unused, a default key is returned.
-        * <p>
-        * @param contact Contact instance to check
-        * <p>
-        * @return Message key
-        */
-       String getContactUsageMessageKey (final Contact contact);
-
-       /**
-        * Getter for contact instance
-        * <p>
-        * @return Contact instance
-        */
-       Contact getContact ();
-
-       /**
-        * Setter for contact instance
-        * <p>
-        * @param contact Contact instance
-        */
-       void setContact (final Contact contact);
-
-       /**
-        * Getter for user instance
-        * <p>
-        * @return User instance
-        */
-       User getUser ();
-
-       /**
-        * Setter for user instance
-        * <p>
-        * @param user User instance
-        */
-       void setUser (final User user);
-
-       /**
-        * Getter for dialable mobile number
-        * <p>
-        * @return Dialable mobile number
-        */
-       DialableMobileNumber getMobileNumber ();
-
-       /**
-        * Setter for dialable mobile number
-        * <p>
-        * @param mobileNumber Dialable mobile number
-        */
-       void setMobileNumber (final DialableMobileNumber mobileNumber);
-
-       /**
-        * Getter for dialable land-line number
-        * <p>
-        * @return Dialable land-line number
-        */
-       DialableLandLineNumber getLandLineNumber ();
-
-       /**
-        * Setter for dialable land-line number
-        * <p>
-        * @param landLine Dialable land-line number
-        */
-       void setLandLineNumber (final DialableLandLineNumber landLine);
-
-       /**
-        * Getter for dialable fax number
-        * <p>
-        * @return Dialable fax number
-        */
-       DialableFaxNumber getFaxNumber ();
-
-       /**
-        * Setter for dialable fax number
-        * <p>
-        * @param faxNumber Dialable fax number
-        */
-       void setFaxNumber (final DialableFaxNumber faxNumber);
-
 }
index b7863b3a499b55e057fd043dc279ed4c3ecd1dab..64c561081732d5ddca108fa9b53ad24eab17dc3f 100644 (file)
 package org.mxchange.addressbook.beans.phone;
 
 import java.text.MessageFormat;
+import java.util.Calendar;
 import java.util.List;
 import java.util.Objects;
 import javax.annotation.PostConstruct;
 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.inject.Inject;
@@ -38,6 +40,9 @@ 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.helper.fax.created.ObservableHelperCreatedFaxNumberEvent;
+import org.mxchange.jphone.events.helper.landline.created.ObservableHelperCreatedLandLineNumberEvent;
+import org.mxchange.jphone.events.helper.mobile.created.ObservableHelperCreatedMobileNumberEvent;
 import org.mxchange.jphone.events.landline.deleted.AdminDeletedLandLineNumberEvent;
 import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent;
 import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent;
@@ -51,8 +56,11 @@ import org.mxchange.jphone.events.mobile.remove.AdminRemoveMobileNumberFromListE
 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.fax.FaxNumber;
 import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
 import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
+import org.mxchange.jphone.phonenumbers.mobile.MobileNumber;
 import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
 import org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote;
 
@@ -164,6 +172,21 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        private Country phoneCountry;
 
+       /**
+        * When the phone entry has been created (persisted)
+        */
+       private Calendar phoneEntryCreated;
+
+       /**
+        * When the phone entry has been updated
+        */
+       private Calendar phoneEntryUpdated;
+
+       /**
+        * Phone id (aka primary key)
+        */
+       private Long phoneId;
+
        /**
         * Phone number
         */
@@ -203,6 +226,107 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
                // 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
+        * fax number instance.
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterHelperCreatedFaxNumberEvent (@Observes final ObservableHelperCreatedFaxNumberEvent 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.faxNumber is null"); //NOI18N
+               } else if (event.getFaxNumber().getPhoneId() == null) {
+                       // Throw NPE yet again
+                       throw new NullPointerException("event.faxNumber.phoneId is null"); //NOI18N
+               } else if (event.getFaxNumber().getPhoneId() < 1) {
+                       // Throw NPE yet again
+                       throw new NullPointerException(MessageFormat.format("event.faxNumber.phoneId={0} is invalid", event.getFaxNumber().getPhoneId())); //NOI18N
+               }
+
+               // Get fax number from event
+               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());
+       }
+
+       /**
+        * Observes events being fired when a bean helper has successfully created a
+        * land-line number instance.
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterHelperCreatedLandLineNumberEvent (@Observes final ObservableHelperCreatedLandLineNumberEvent 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
+               }
+
+               // Get fax number from event
+               DialableLandLineNumber number = event.getLandLineNumber();
+
+               // 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());
+       }
+
+       /**
+        * Observes events being fired when a bean helper has successfully created a
+        * mobile number instance.
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterHelperCreatedMobileNumberEvent (@Observes final ObservableHelperCreatedMobileNumberEvent event) {
+               // The event instance must be valid
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getMobileNumber() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.mobileNumber is null"); //NOI18N
+               } else if (event.getMobileNumber().getPhoneId() == null) {
+                       // Throw NPE yet again
+                       throw new NullPointerException("event.mobileNumber.phoneId is null"); //NOI18N
+               } else if (event.getMobileNumber().getPhoneId() < 1) {
+                       // Throw NPE yet again
+                       throw new NullPointerException(MessageFormat.format("event.mobileNumber.phoneId={0} is invalid", event.getMobileNumber().getPhoneId())); //NOI18N
+               }
+
+               // Get fax number from event
+               DialableMobileNumber number = event.getMobileNumber();
+
+               // Copy all data to this bean
+               this.setPhoneId(number.getPhoneId());
+               this.setMobileProvider(number.getMobileProvider());
+               this.setPhoneNumber(number.getPhoneNumber());
+               this.setPhoneEntryCreated(number.getPhoneEntryCreated());
+               this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
+       }
+
        /**
         * Returns a list of all unused ("non-linked") land-line numbers
         * <p>
@@ -258,7 +382,7 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        public String deleteFaxData () {
                // Get fax number from bean helper
-               DialableFaxNumber number = this.beanHelper.getFaxNumber();
+               DialableFaxNumber number = this.createFaxNumber();
 
                // Is all data set
                if (number == null) {
@@ -310,7 +434,7 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        public String deleteLandLineData () {
                // Get land-line number from helper
-               DialableLandLineNumber number = this.beanHelper.getLandLineNumber();
+               DialableLandLineNumber number = this.createLandLineNumber();
 
                // Is all data set
                if (number == null) {
@@ -362,7 +486,7 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        public String deleteMobileData () {
                // Get mobile number from helper
-               DialableMobileNumber number = this.beanHelper.getMobileNumber();
+               DialableMobileNumber number = this.createMobileNumber();
 
                // Is all data set
                if (number == null) {
@@ -408,7 +532,7 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        public String doChangeFaxNumber () {
                // Get fax number from bean helper
-               DialableFaxNumber number = this.beanHelper.getFaxNumber();
+               DialableFaxNumber number = this.createFaxNumber();
 
                // Is all data set
                if (number == null) {
@@ -474,7 +598,7 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        public String doChangeLandLineNumber () {
                // Get land-line number from helper
-               DialableLandLineNumber number = this.beanHelper.getLandLineNumber();
+               DialableLandLineNumber number = this.createLandLineNumber();
 
                // Is all data set
                if (number == null) {
@@ -540,7 +664,7 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
         */
        public String doUpdateMobileNumber () {
                // Get mobile number from helper
-               DialableMobileNumber number = this.beanHelper.getMobileNumber();
+               DialableMobileNumber number = this.createMobileNumber();
 
                // Is all data set
                if (number == null) {
@@ -714,6 +838,64 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
                this.phoneCountry = phoneCountry;
        }
 
+       /**
+        * Getter for phone entry created timestamp
+        * <p>
+        * @return Phone entry created timestamp
+        */
+       @SuppressWarnings ("ReturnOfDateField")
+       public Calendar getPhoneEntryCreated () {
+               return this.phoneEntryCreated;
+       }
+
+       /**
+        * Setter for phone entry created timestamp
+        * <p>
+        * @param phoneEntryCreated Phone entry created timestamp
+        */
+       @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+       public void setPhoneEntryCreated (final Calendar phoneEntryCreated) {
+               this.phoneEntryCreated = phoneEntryCreated;
+       }
+
+       /**
+        * Getter for phone entry updated timestamp
+        * <p>
+        * @return Phone entry updated timestamp
+        */
+       @SuppressWarnings ("ReturnOfDateField")
+       public Calendar getPhoneEntryUpdated () {
+               return this.phoneEntryUpdated;
+       }
+
+       /**
+        * Setter for phone entry updated timestamp
+        * <p>
+        * @param phoneEntryUpdated Phone entry updated timestamp
+        */
+       @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+       public void setPhoneEntryUpdated (final Calendar phoneEntryUpdated) {
+               this.phoneEntryUpdated = phoneEntryUpdated;
+       }
+
+       /**
+        * Getter for phone id
+        * <p>
+        * @return Phone id
+        */
+       public Long getPhoneId () {
+               return this.phoneId;
+       }
+
+       /**
+        * Setter for phone id
+        * <p>
+        * @param phoneId Phone id
+        */
+       public void setPhoneId (final Long phoneId) {
+               this.phoneId = phoneId;
+       }
+
        /**
         * Getter for dial number without prefix
         * <p>
@@ -750,4 +932,76 @@ public class AddressbookAdminPhoneWebRequestBean extends BaseAddressbookControll
                }
        }
 
+       /**
+        * Returns an instance of a DialableFaxNumber from all fields stored in this
+        * bean.
+        * <p>
+        * @return An instance of a DialableFaxNumber class
+        */
+       private DialableFaxNumber createFaxNumber () {
+               // Initialize it
+               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;
+       }
+
+       /**
+        * 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
+               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;
+       }
+
+       /**
+        * Returns an instance of a DialableMobileNumber from all fields stored in
+        * this bean.
+        * <p>
+        * @return An instance of a DialableMobileNumber class
+        */
+       private DialableMobileNumber createMobileNumber () {
+               // Initialize it
+               DialableMobileNumber number = new MobileNumber(this.getMobileProvider(), 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;
+       }
+
 }
index 8382b43308d972eed7ee0063b14e13bcec25544b..a97e90d0042f52d57b53b0689fc3a0d4cf014188 100644 (file)
@@ -42,7 +42,6 @@ import org.mxchange.jusercore.events.user.add.ObservableAdminAddedUserEvent;
 import org.mxchange.jusercore.events.user.clear.password.ObservableClearUserPasswordEvent;
 import org.mxchange.jusercore.events.user.clear.username.ObservableClearUserNameEvent;
 import org.mxchange.jusercore.events.user.delete.ObservableAdminDeletedUserEvent;
-import org.mxchange.jusercore.events.user.helper.created.ObservableHelperCreatedUserEvent;
 import org.mxchange.jusercore.events.user.linked.ObservableAdminLinkedUserEvent;
 import org.mxchange.jusercore.events.user.locked.ObservableAdminLockedUserEvent;
 import org.mxchange.juserlogincore.events.user.password_change.ObservableUpdatedUserPasswordEvent;
@@ -61,6 +60,7 @@ import org.mxchange.juserlogincore.events.login.ObservableUserLoggedInEvent;
 import org.mxchange.juserlogincore.events.registration.ObservableUserRegisteredEvent;
 import org.mxchange.juserlogincore.exceptions.UserPasswordMismatchException;
 import org.mxchange.juserlogincore.login.UserLoginUtils;
+import org.mxchange.jusercore.events.user.helper.created.ObservableHelperCreatedContactEvent;
 
 /**
  * A user bean (controller)
@@ -338,7 +338,7 @@ public class AddressbookUserWebSessionBean extends BaseAddressbookController imp
         * <p>
         * @param event User created event
         */
-       public void afterHelperCreatedUserEvent (@Observes final ObservableHelperCreatedUserEvent event) {
+       public void afterHelperCreatedUserEvent (@Observes final ObservableHelperCreatedContactEvent event) {
                // Is the instance valid?
                if (null == event) {
                        // Throw NPE
index d527344174b3c59ebfc4b693e128969ba1bdd043..b8f594cf71e54813e1eb7b089899e9da5814c209 100644 (file)
@@ -33,6 +33,8 @@ import javax.naming.NamingException;
 import org.mxchange.addressbook.beans.BaseAddressbookController;
 import org.mxchange.addressbook.beans.helper.AddressbookWebRequestHelperController;
 import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController;
+import org.mxchange.jcoreee.events.helper.clear.HelperCleanupEvent;
+import org.mxchange.jcoreee.events.helper.clear.ObservableHelperCleanupEvent;
 import org.mxchange.jcoreee.utils.FacesUtils;
 import org.mxchange.jusercore.exceptions.UserStatusConfirmedException;
 import org.mxchange.jusercore.exceptions.UserStatusLockedException;
@@ -62,6 +64,13 @@ public class AddressbookConfirmationLinkWebRequestBean extends BaseAddressbookCo
        @Inject
        private AddressbookWebRequestHelperController beanHelper;
 
+       /**
+        * Event being fired when a bean helper should be cleaned
+        */
+       @Inject
+       @Any
+       private Event<ObservableHelperCleanupEvent> cleanHelperEvent;
+
        /**
         * Confirmation key
         */
@@ -172,7 +181,7 @@ public class AddressbookConfirmationLinkWebRequestBean extends BaseAddressbookCo
                // Is the user instance null?
                if ((null == user) || (user.getUserAccountStatus() != UserAccountStatus.UNCONFIRMED)) {
                        // Then clear this bean and the helper
-                       this.beanHelper.setUser(null);
+                       this.cleanHelperEvent.fire(new HelperCleanupEvent());
                } else {
                        // Try to confirm it
                        this.confirmUserAccount(user);
index 9b28b3fa4722a7cd1110bda2ca15739784027cfd..376c04b9733996d5089e90eb6078f21812abd00a 100644 (file)
@@ -25,7 +25,7 @@
                        <ui:param name="isShowPage" value="#{true}" />
                </ui:include>
 
-               <h:dataTable id="contact_fax_link" var="contact" value="#{contactPhoneController.allFaxNumberContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_ADMINISTRATIVE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
+               <h:dataTable id="contact_fax_link" var="contact" value="#{contactPhoneController.allCurrentFaxNumberContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_ADMINISTRATIVE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
                        <f:facet name="header">
                                <h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_FAX_NUMBER_LINKS}">
                                        <f:param value="#{beanHelper.faxNumber.phoneId}" />
index dd860e2285195f78ee12de4493b406cac22ff4ce..ee7fe755be0b721e702cebaf9cf46e822891ebb6 100644 (file)
@@ -25,7 +25,7 @@
                        <ui:param name="isShowPage" value="#{true}" />
                </ui:include>
 
-               <h:dataTable id="contact_landline_link" var="contact" value="#{contactPhoneController.allLandLineNumberContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_ADMINISTRATIVE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
+               <h:dataTable id="contact_landline_link" var="contact" value="#{contactPhoneController.allCurrentLandLineNumberContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_ADMINISTRATIVE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
                        <f:facet name="header">
                                <h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_LAND_LINE_NUMBER_LINKS}">
                                        <f:param value="#{beanHelper.landLineNumber.phoneId}" />
index fa622389efc829f9c2b706416b0711fb21f3657c..f4119d9d61a98d340c9390a11ee078d81320540b 100644 (file)
@@ -25,7 +25,7 @@
                        <ui:param name="isShowPage" value="#{true}" />
                </ui:include>
 
-               <h:dataTable id="contact_mobile_link" var="contact" value="#{contactPhoneController.allMobileNumberContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_ADMINISTRATIVE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
+               <h:dataTable id="contact_mobile_link" var="contact" value="#{contactPhoneController.allCurrentMobileNumberContacts()}" summary="#{msg.TABLE_SUMMARY_ADMIN_SHOW_ADMINISTRATIVE_LINKS}" headerClass="table_header_column" styleClass="table_medium">
                        <f:facet name="header">
                                <h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_MOBILE_NUMBER_LINKS}">
                                        <f:param value="#{beanHelper.mobileNumber.phoneId}" />