]> git.mxchange.org Git - addressbook-war.git/commitdiff
Added firing newly added event when an administrator has added a new country and...
authorRoland Haeder <roland@mxchange.org>
Mon, 11 Apr 2016 17:34:53 +0000 (19:34 +0200)
committerRoland Haeder <roland@mxchange.org>
Mon, 11 Apr 2016 17:37:54 +0000 (19:37 +0200)
Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/addressbook/beans/country/AddressbookAdminCountryWebApplicationBean.java
src/java/org/mxchange/addressbook/beans/country/AddressbookCountryWebApplicationBean.java
src/java/org/mxchange/addressbook/beans/country/AddressbookCountryWebApplicationController.java

index 608eccddc9cafa55961c7a02e878a7bf39582c41..dc3e0854b233cb6ddd320acb14158ab6b2e15681 100644 (file)
@@ -20,6 +20,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Objects;
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Event;
+import javax.enterprise.inject.Any;
 import javax.faces.view.facelets.FaceletException;
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -29,6 +31,8 @@ import javax.naming.NamingException;
 import org.mxchange.jcountry.data.Country;
 import org.mxchange.jcountry.data.CountryData;
 import org.mxchange.jcountry.data.CountrySingletonBeanRemote;
+import org.mxchange.jcountry.events.AdminAddedCountryEvent;
+import org.mxchange.jcountry.events.AdminEventCountryAdded;
 import org.mxchange.jcountry.exceptions.CountryAlreadyAddedException;
 
 /**
@@ -66,6 +70,13 @@ public class AddressbookAdminCountryWebApplicationBean implements AddressbookAdm
        @Inject
        private AddressbookCountryWebApplicationController countryController;
 
+       /**
+        * An event triggered when the administrator has added a country
+        */
+       @Inject
+       @Any
+       private Event<AdminAddedCountryEvent> addedCountryEvent;
+
        /**
         * Local dial prefix
         */
@@ -126,6 +137,9 @@ public class AddressbookAdminCountryWebApplicationBean implements AddressbookAdm
                        // Send country to bean
                        this.countryBean.addCountry(country);
 
+                       // Fire event
+                       this.addedCountryEvent.fire(new AdminEventCountryAdded(country));
+
                        // Clear bean
                        this.clear();
                } catch (final CountryAlreadyAddedException ex) {
index fea765fdbe163eccdfdbc0384ecf29772b4c095f..e87eddda1a2a5acf37944bbe6f8aa8362061bae6 100644 (file)
  */
 package org.mxchange.addressbook.beans.country;
 
+import java.text.MessageFormat;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.PostConstruct;
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Observes;
 import javax.faces.view.facelets.FaceletException;
 import javax.inject.Named;
 import javax.naming.Context;
@@ -27,6 +29,7 @@ import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import org.mxchange.jcountry.data.Country;
 import org.mxchange.jcountry.data.CountrySingletonBeanRemote;
+import org.mxchange.jcountry.events.AdminAddedCountryEvent;
 
 /**
  * A country bean
@@ -69,6 +72,27 @@ public class AddressbookCountryWebApplicationBean implements AddressbookCountryW
                }
        }
 
+       @Override
+       public void afterAdminAddedCountry (@Observes final AdminAddedCountryEvent event) {
+               // Is all valid?
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getAddedCountry() == null) {
+                       // Throw again ...
+                       throw new NullPointerException("event.addedCountry is null"); //NOI18N
+               } else if (event.getAddedCountry().getCountryId() == null) {
+                       // And again ...
+                       throw new NullPointerException("event.addedCountry.countryId is null"); //NOI18N
+               } else if (event.getAddedCountry().getCountryId() < 1) {
+                       // Id is invalid
+                       throw new IllegalArgumentException(MessageFormat.format("event.addedCountry.countryId={0} is not valid.", event.getAddedCountry().getCountryId())); //NOI18N
+               }
+
+               // Add the event
+               this.countryList.add(event.getAddedCountry());
+       }
+
        @Override
        public List<Country> allCountries () {
                // Return "cached" version
index 828888214a3540eccb08a64e1a3f95a56c9b2c6e..a81d6e46fa16dcfdc07a1afd90e9e53fbd9821ce 100644 (file)
@@ -19,6 +19,7 @@ package org.mxchange.addressbook.beans.country;
 import java.io.Serializable;
 import java.util.List;
 import org.mxchange.jcountry.data.Country;
+import org.mxchange.jcountry.events.AdminAddedCountryEvent;
 
 /**
  * An interface for country beans
@@ -33,4 +34,13 @@ public interface AddressbookCountryWebApplicationController extends Serializable
         * @return All countries
         */
        List<Country> allCountries ();
+
+       /**
+        * Observing method when the event is fired that an administrator added a
+        * new country
+        * <p>
+        * @param event Event instance
+        */
+       void afterAdminAddedCountry (final AdminAddedCountryEvent event);
+
 }