From 16fe1e6d512c3ea8777668a367ee75ed220ab809 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Mon, 15 Aug 2016 16:50:58 +0200 Subject: [PATCH] added missing method afterAdminDeletedContactEvent() to remove deleted contact from all "cached" lists --- .../contact/JobsContactWebSessionBean.java | 26 +++++++++++++++++++ .../JobsContactWebSessionController.java | 9 +++++++ 2 files changed, 35 insertions(+) diff --git a/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionBean.java b/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionBean.java index 1fb75c84..99a64e01 100644 --- a/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionBean.java +++ b/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionBean.java @@ -38,6 +38,7 @@ import org.mxchange.jcontacts.contact.UserContact; import org.mxchange.jcontacts.contact.gender.Gender; import org.mxchange.jcontacts.contact.utils.ContactUtils; import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent; +import org.mxchange.jcontacts.events.contact.deleted.AdminDeletedContactEvent; import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent; import org.mxchange.jcontacts.exceptions.ContactNotFoundException; import org.mxchange.jcountry.data.Country; @@ -298,6 +299,31 @@ public class JobsContactWebSessionBean extends BaseJobsController implements Job this.clear(); } + @Override + public void afterAdminDeletedContactEvent (@Observes final AdminDeletedContactEvent event) { + // event should not be null + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); //NOI18N + } else if (event.getDeletedContact() == null) { + // Throw NPE again + throw new NullPointerException("event.deletedContact is null"); //NOI18N + } else if (event.getDeletedContact().getContactId() == null) { + // userId is null + throw new NullPointerException("event.deletedContact.contactId is null"); //NOI18N + } else if (event.getDeletedContact().getContactId() < 1) { + // Not avalid id + throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getDeletedContact(), event.getDeletedContact().getContactId())); //NOI18N + } + + // Remove from both lists + this.contactList.remove(event.getDeletedContact()); + this.selectableContacts.remove(event.getDeletedContact()); + + // Clear all data + this.clear(); + } + @Override public void afterAdminLinkedUser (@Observes final AdminLinkedUserEvent event) { // event should not be null diff --git a/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionController.java b/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionController.java index 8104d561..681929de 100644 --- a/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionController.java +++ b/src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionController.java @@ -23,6 +23,7 @@ import javax.ejb.Local; import org.mxchange.jcontacts.contact.Contact; import org.mxchange.jcontacts.contact.gender.Gender; import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent; +import org.mxchange.jcontacts.events.contact.deleted.AdminDeletedContactEvent; import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent; import org.mxchange.jcontacts.exceptions.ContactNotFoundException; import org.mxchange.jcountry.data.Country; @@ -55,6 +56,13 @@ public interface JobsContactWebSessionController extends Serializable { */ void afterAdminAddedUserEvent (final AdminAddedUserEvent event); + /** + * Event observer for deleted contact instance by administrator + *

+ * @param event Event being fired + */ + void afterAdminDeletedContactEvent (final AdminDeletedContactEvent event); + /** * Event observer when user confirmed account. *

@@ -445,6 +453,7 @@ public interface JobsContactWebSessionController extends Serializable { * Setter for controller type *

* @param controllerType Controller type + * * @deprecated Don't use this method. */ @Deprecated -- 2.39.5