From 541f4cf711447dfac48295805e9d0b0a654da29d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Thu, 3 Aug 2017 21:43:01 +0200 Subject: [PATCH] WIP: Please cherry-pick: - 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../PizzaAdminContactWebRequestBean.java | 87 +++--- ...PizzaAdminContactWebRequestController.java | 7 - .../PizzaContactPhoneWebSessionBean.java | 30 +- ...PizzaContactPhoneWebSessionController.java | 23 -- .../helper/PizzaWebRequestHelperBean.java | 130 +++++++-- .../PizzaWebRequestHelperController.java | 110 -------- .../phone/PizzaAdminPhoneWebRequestBean.java | 266 +++++++++++++++++- .../beans/user/PizzaUserWebSessionBean.java | 4 +- .../PizzaConfirmationLinkWebRequestBean.java | 11 +- web/admin/fax/admin_fax_show.xhtml | 2 +- web/admin/landline/admin_landline_show.xhtml | 2 +- web/admin/mobile/admin_mobile_show.xhtml | 2 +- 12 files changed, 451 insertions(+), 223 deletions(-) diff --git a/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestBean.java index f8ce3f5a..72628b9b 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestBean.java @@ -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; @@ -38,6 +39,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 PizzaAdminContactWebRequestBean extends BasePizzaController impleme private PizzaContactWebSessionController 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 PizzaAdminContactWebRequestBean extends BasePizzaController impleme 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. + *

+ * @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 PizzaAdminContactWebRequestBean extends BasePizzaController impleme } // 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 PizzaAdminContactWebRequestBean extends BasePizzaController impleme // 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 PizzaAdminContactWebRequestBean extends BasePizzaController impleme */ 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 PizzaAdminContactWebRequestBean extends BasePizzaController impleme this.comment = comment; } + /** + * Getter for contactCountry instance + *

+ * @return Country instance + */ + public Country getContactCountry () { + return this.contactCountry; + } + + /** + * Setter for contactCountry instance + *

+ * @param contactCountry Country instance + */ + public void setContactCountry (final Country contactCountry) { + this.contactCountry = contactCountry; + } + /** * Getter for contact id *

@@ -667,24 +704,6 @@ public class PizzaAdminContactWebRequestBean extends BasePizzaController impleme throw new UnsupportedOperationException("Setting controller type is not supported."); //NOI18N } - /** - * Getter for contactCountry instance - *

- * @return Country instance - */ - public Country getContactCountry () { - return this.contactCountry; - } - - /** - * Setter for contactCountry instance - *

- * @param contactCountry Country instance - */ - public void setContactCountry (final Country contactCountry) { - this.contactCountry = contactCountry; - } - /** * Getter for email address *

diff --git a/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestController.java b/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestController.java index e430c9f3..edbff61e 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/contact/PizzaAdminContactWebRequestController.java @@ -38,13 +38,6 @@ public interface PizzaAdminContactWebRequestController extends Serializable { */ Contact createContactInstance (); - /** - * Copies given contact's data to this controller - *

- * @param contact Contact instance - */ - void copyContactToController (final Contact contact); - /** * Getter for controller type *

diff --git a/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionBean.java b/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionBean.java index 58b75602..26fa10e7 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionBean.java @@ -245,8 +245,12 @@ public class PizzaContactPhoneWebSessionBean extends BasePizzaController impleme this.clear(); } - @Override - public List allFaxNumberContacts () { + /** + * Getter for all contacts having current fax number linked + *

+ * @return List of all linked contacts + */ + public List allCurrentFaxNumberContacts () { // Get id DialableFaxNumber faxNumber = this.beanHelper.getFaxNumber(); @@ -261,7 +265,7 @@ public class PizzaContactPhoneWebSessionBean extends BasePizzaController impleme // "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 PizzaContactPhoneWebSessionBean extends BasePizzaController impleme } } - @Override - public List allLandLineNumberContacts () { + /** + * Getter for all contacts having current land-line number linked + *

+ * @return List of all linked contacts + */ + public List allCurrentLandLineNumberContacts () { // Get id DialableLandLineNumber landLineNumber = this.beanHelper.getLandLineNumber(); @@ -291,7 +299,7 @@ public class PizzaContactPhoneWebSessionBean extends BasePizzaController impleme // "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 PizzaContactPhoneWebSessionBean extends BasePizzaController impleme } } - @Override - public List allMobileNumberContacts () { + /** + * Getter for all contacts having current mobile number linked + *

+ * @return List of all linked contacts + */ + public List allCurrentMobileNumberContacts () { // Get id DialableMobileNumber mobileNumber = this.beanHelper.getMobileNumber(); @@ -321,7 +333,7 @@ public class PizzaContactPhoneWebSessionBean extends BasePizzaController impleme // "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); } diff --git a/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionController.java b/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionController.java index 21f4f8c1..b9ae0042 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/contact/phone/PizzaContactPhoneWebSessionController.java @@ -17,8 +17,6 @@ package org.mxchange.pizzaapplication.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 PizzaContactPhoneWebSessionController extends Serializable { - /** - * Getter for all contacts having current fax number linked - *

- * @return List of all linked contacts - */ - List allFaxNumberContacts (); - - /** - * Getter for all contacts having current land-line number linked - *

- * @return List of all linked contacts - */ - List allLandLineNumberContacts (); - - /** - * Getter for all contacts having current mobile number linked - *

- * @return List of all linked contacts - */ - List allMobileNumberContacts (); - } diff --git a/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperBean.java b/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperBean.java index 2bcc41bc..416353c2 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperBean.java @@ -23,6 +23,8 @@ import javax.enterprise.inject.Any; import javax.inject.Inject; import javax.inject.Named; 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.jcustomercore.model.customer.Customer; import org.mxchange.jphone.events.helper.fax.created.HelperCreatedFaxNumberEvent; import org.mxchange.jphone.events.helper.fax.created.ObservableHelperCreatedFaxNumberEvent; @@ -85,11 +87,19 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle private Contact contact; /** - * Contact instance + * Event for when a contact instance was created + */ + @Any + @Inject + private Event contactCreatedEvent; + + /** + * Fax number */ private Customer customer; /** +<<<<<<< HEAD:src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperBean.java * General user controller */ @Inject @@ -142,6 +152,33 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle @Inject private PizzaUserWebSessionController userController; + /** + * Event for when a fax number instance was created + */ + @Any + @Inject + private Event faxNumberCreatedEvent; + + /** + * Event for when a land-line number instance was created + */ + @Any + @Inject + private Event landLineNumberCreatedEvent; + + /** + * Event for when a mobile number instance was created + */ + @Any + @Inject + private Event mobileNumberCreatedEvent; + + /** + * Regular user controller + */ + @Inject + private TrainingsUserWebSessionController userController; + /** * Event for when a user instance was created */ @@ -160,7 +197,9 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle // 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 () { // Validate user instance if (this.getContact() == null) { @@ -178,7 +217,7 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle this.setPhoneInstances(this.getContact()); // Set all fields: user - this.adminContactController.copyContactToController(this.getContact()); + this.contactCreatedEvent.fire(new HelperCreatedContactEvent(this.getContact())); } @Override @@ -199,7 +238,9 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle this.adminCustomerController.copyCustomerToController(this.getCustomer()); } - @Override + /** + * Copies currently set fax number's data to admin phone controller + */ public void copyFaxNumberToController () { // Validate fax instance if (this.getFaxNumber() == null) { @@ -238,7 +279,9 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle 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) { @@ -277,7 +320,9 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle 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) { @@ -310,7 +355,9 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle this.mobileNumberCreatedEvent.fire(new HelperCreatedMobileNumberEvent(this.getMobileNumber())); } - @Override + /** + * Copies currently set user instances data to adminUserController + */ public void copyUserToController () { // Validate user instance if (this.getUser() == null) { @@ -337,21 +384,34 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle this.userCreatedEvent.fire(new HelperCreatedUserEvent(this.getUser())); } - @Override + /** + * Getter for contact instance + *

+ * @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 + *

+ * @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. + *

+ * @param contact Contact instance to check + *

+ * @return Message key + */ public String getContactUsageMessageKey (final Contact contact) { // The contact must be valid if (null == contact) { @@ -398,46 +458,60 @@ public class PizzaWebRequestHelperBean implements PizzaWebRequestHelperControlle this.customer = customer; } - @Override + /** + * Getter for dialable fax number + *

+ * @return Dialable fax number + */ public DialableFaxNumber getFaxNumber () { return this.faxNumber; } - @Override + /** + * Setter for dialable fax number + *

+ * @param faxNumber Dialable fax number + */ public void setFaxNumber (final DialableFaxNumber faxNumber) { this.faxNumber = faxNumber; } - @Override + /** + * Getter for dialable land-line number + *

+ * @return Dialable land-line number + */ public DialableLandLineNumber getLandLineNumber () { return this.landLineNumber; } - @Override + /** + * Setter for dialable land-line number + *

+ * @param landLineNumber Dialable land-line number + */ public void setLandLineNumber (final DialableLandLineNumber landLineNumber) { this.landLineNumber = landLineNumber; } - @Override + /** + * Getter for dialable mobile number + *

+ * @return Dialable mobile number + */ public DialableMobileNumber getMobileNumber () { return this.mobileNumber; } - @Override + /** + * Setter for dialable mobile number + *

+ * @param mobileNumber Dialable mobile number + */ public void setMobileNumber (final DialableMobileNumber mobileNumber) { this.mobileNumber = mobileNumber; } - @Override - public User getUser () { - return this.user; - } - - @Override - public void setUser (final User user) { - this.user = user; - } - /** * Set's all given contact's phone instances: land-line, cellphone and fax *

diff --git a/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperController.java b/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperController.java index fdb9c1cb..4c265a43 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/helper/PizzaWebRequestHelperController.java @@ -17,12 +17,7 @@ package org.mxchange.pizzaapplication.beans.helper; import java.io.Serializable; -import org.mxchange.jcontacts.contact.Contact; import org.mxchange.jcustomercore.model.customer.Customer; -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 @@ -31,49 +26,6 @@ import org.mxchange.jusercore.model.user.User; */ public interface PizzaWebRequestHelperController extends Serializable { - /** - * Getter for user instance - *

- * @return User instance - */ - User getUser (); - - /** - * Setter for user instance - *

- * @param user User instance - */ - void setUser (final User user); - - /** - * 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. - *

- * @param contact Contact instance to check - *

- * @return Message key - */ - String getContactUsageMessageKey (final Contact contact); - - /** - * Getter for contact instance - *

- * @return Contact instance - */ - Contact getContact (); - - /** - * Setter for contact instance - *

- * @param contact Contact instance - */ - void setContact (final Contact contact); - /** * Getter for customer instance *

@@ -88,71 +40,9 @@ public interface PizzaWebRequestHelperController extends Serializable { */ void setCustomer (final Customer customer); - /** - * Copies currently set contact instance's data to adminContactController - */ - void copyContactToController (); - /** * Copies currently set customer instance's data to adminCustomerController */ void copyCustomerToController (); - /** - * 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 (); - - /** - * Getter for dialable mobile number - *

- * @return Dialable mobile number - */ - DialableMobileNumber getMobileNumber (); - - /** - * Setter for dialable mobile number - *

- * @param mobileNumber Dialable mobile number - */ - void setMobileNumber (final DialableMobileNumber mobileNumber); - - /** - * Getter for dialable land-line number - *

- * @return Dialable land-line number - */ - DialableLandLineNumber getLandLineNumber (); - - /** - * Setter for dialable land-line number - *

- * @param landLine Dialable land-line number - */ - void setLandLineNumber (final DialableLandLineNumber landLine); - - /** - * Getter for dialable fax number - *

- * @return Dialable fax number - */ - DialableFaxNumber getFaxNumber (); - - /** - * Setter for dialable fax number - *

- * @param faxNumber Dialable fax number - */ - void setFaxNumber (final DialableFaxNumber faxNumber); - } diff --git a/src/java/org/mxchange/pizzaapplication/beans/phone/PizzaAdminPhoneWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/phone/PizzaAdminPhoneWebRequestBean.java index 90dfbac3..cf7adaa2 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/phone/PizzaAdminPhoneWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/phone/PizzaAdminPhoneWebRequestBean.java @@ -17,11 +17,13 @@ package org.mxchange.pizzaapplication.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; @@ -36,6 +38,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; @@ -49,8 +54,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; import org.mxchange.pizzaapplication.beans.BasePizzaController; @@ -164,6 +172,21 @@ public class PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement // 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. + *

+ * @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. + *

+ * @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. + *

+ * @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 *

@@ -258,7 +382,7 @@ public class PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement */ 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 PizzaAdminPhoneWebRequestBean extends BasePizzaController implement this.phoneCountry = phoneCountry; } + /** + * Getter for phone entry created timestamp + *

+ * @return Phone entry created timestamp + */ + @SuppressWarnings ("ReturnOfDateField") + public Calendar getPhoneEntryCreated () { + return this.phoneEntryCreated; + } + + /** + * Setter for phone entry created timestamp + *

+ * @param phoneEntryCreated Phone entry created timestamp + */ + @SuppressWarnings ("AssignmentToDateFieldFromParameter") + public void setPhoneEntryCreated (final Calendar phoneEntryCreated) { + this.phoneEntryCreated = phoneEntryCreated; + } + + /** + * Getter for phone entry updated timestamp + *

+ * @return Phone entry updated timestamp + */ + @SuppressWarnings ("ReturnOfDateField") + public Calendar getPhoneEntryUpdated () { + return this.phoneEntryUpdated; + } + + /** + * Setter for phone entry updated timestamp + *

+ * @param phoneEntryUpdated Phone entry updated timestamp + */ + @SuppressWarnings ("AssignmentToDateFieldFromParameter") + public void setPhoneEntryUpdated (final Calendar phoneEntryUpdated) { + this.phoneEntryUpdated = phoneEntryUpdated; + } + + /** + * Getter for phone id + *

+ * @return Phone id + */ + public Long getPhoneId () { + return this.phoneId; + } + + /** + * Setter for phone id + *

+ * @param phoneId Phone id + */ + public void setPhoneId (final Long phoneId) { + this.phoneId = phoneId; + } + /** * Getter for dial number without prefix *

@@ -750,4 +932,76 @@ public class PizzaAdminPhoneWebRequestBean extends BasePizzaController implement } } + /** + * Returns an instance of a DialableFaxNumber from all fields stored in this + * bean. + *

+ * @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. + *

+ * @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. + *

+ * @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; + } + } diff --git a/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java b/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java index 3bea1917..8cc22846 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java @@ -35,7 +35,7 @@ import javax.naming.NamingException; import org.mxchange.jcontacts.contact.Contact; import org.mxchange.jusercore.events.user.add.ObservableAdminAddedUserEvent; import org.mxchange.jusercore.events.user.delete.ObservableAdminDeletedUserEvent; -import org.mxchange.jusercore.events.user.helper.created.ObservableHelperCreatedUserEvent; +import org.mxchange.jusercore.events.user.helper.created.ObservableHelperCreatedContactEvent; import org.mxchange.jusercore.events.user.linked.ObservableAdminLinkedUserEvent; import org.mxchange.jusercore.events.user.locked.ObservableAdminLockedUserEvent; import org.mxchange.jusercore.events.user.unlocked.ObservableAdminUnlockedUserEvent; @@ -336,7 +336,7 @@ public class PizzaUserWebSessionBean extends BasePizzaController implements Pizz *

* @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 diff --git a/src/java/org/mxchange/pizzaapplication/beans/user/confirmlink/PizzaConfirmationLinkWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/user/confirmlink/PizzaConfirmationLinkWebRequestBean.java index 08be2df6..0fba828b 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/user/confirmlink/PizzaConfirmationLinkWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/user/confirmlink/PizzaConfirmationLinkWebRequestBean.java @@ -30,6 +30,8 @@ import javax.inject.Named; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; +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 PizzaConfirmationLinkWebRequestBean extends BasePizzaController imp @Inject private PizzaWebRequestHelperController beanHelper; + /** + * Event being fired when a bean helper should be cleaned + */ + @Inject + @Any + private Event cleanHelperEvent; + /** * Confirmation key */ @@ -172,7 +181,7 @@ public class PizzaConfirmationLinkWebRequestBean extends BasePizzaController imp // 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); diff --git a/web/admin/fax/admin_fax_show.xhtml b/web/admin/fax/admin_fax_show.xhtml index 9b28b3fa..376c04b9 100644 --- a/web/admin/fax/admin_fax_show.xhtml +++ b/web/admin/fax/admin_fax_show.xhtml @@ -25,7 +25,7 @@ - + diff --git a/web/admin/landline/admin_landline_show.xhtml b/web/admin/landline/admin_landline_show.xhtml index dd860e22..ee7fe755 100644 --- a/web/admin/landline/admin_landline_show.xhtml +++ b/web/admin/landline/admin_landline_show.xhtml @@ -25,7 +25,7 @@ - + diff --git a/web/admin/mobile/admin_mobile_show.xhtml b/web/admin/mobile/admin_mobile_show.xhtml index fa622389..f4119d9d 100644 --- a/web/admin/mobile/admin_mobile_show.xhtml +++ b/web/admin/mobile/admin_mobile_show.xhtml @@ -25,7 +25,7 @@ - + -- 2.39.5