X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjjobs%2Fbeans%2Fphone%2FJobsPhoneWebApplicationBean.java;h=a13129b3ac126360fa7c077e5b3d641364bbe7bf;hb=062602dedfda677701babe53815aadbc433a024e;hp=357d99322c7fd69d57e5c0109bd17980489668ff;hpb=986dd1b14ec9f2a549fccec5f09ca98b0b5fd0b5;p=jjobs-war.git diff --git a/src/java/org/mxchange/jjobs/beans/phone/JobsPhoneWebApplicationBean.java b/src/java/org/mxchange/jjobs/beans/phone/JobsPhoneWebApplicationBean.java index 357d9932..a13129b3 100644 --- a/src/java/org/mxchange/jjobs/beans/phone/JobsPhoneWebApplicationBean.java +++ b/src/java/org/mxchange/jjobs/beans/phone/JobsPhoneWebApplicationBean.java @@ -19,10 +19,15 @@ package org.mxchange.jjobs.beans.phone; import java.text.MessageFormat; import java.util.LinkedList; import java.util.List; +import java.util.Locale; +import java.util.MissingResourceException; import java.util.Objects; +import java.util.ResourceBundle; import javax.annotation.PostConstruct; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.event.Observes; +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; import javax.faces.view.facelets.FaceletException; import javax.inject.Named; import javax.naming.Context; @@ -54,7 +59,7 @@ import org.mxchange.jusercore.events.user.add.ObservableAdminAddedUserEvent; */ @Named ("phoneController") @ApplicationScoped -public class JobsPhoneWebApplicationBean extends BaseJobsController implements JobsPhoneWebApplicationController { +public abstract class JobsPhoneWebApplicationBean extends BaseJobsController implements JobsPhoneWebApplicationController { /** * Serial number @@ -94,7 +99,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.landLineNumbers = new LinkedList<>(); } - @Override + /** + * Observes events being fired when an administrator has added a new + * contact. + *

+ * @param event Event being fired + */ public void afterAdminAddedContactEvent (@Observes final ObservableAdminAddedContactEvent event) { // The event must be valid if (null == event) { @@ -118,7 +128,11 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Event observer for newly added users by administrator + *

+ * @param event Event being fired + */ public void afterAdminAddedUserEvent (@Observes final ObservableAdminAddedUserEvent event) { // event should not be null if (null == event) { @@ -142,7 +156,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has deleted a fax + * number + *

+ * @param event Event being fired + */ public void afterAdminDeletedFaxNumberEvent (@Observes final AdminDeletedFaxNumberEvent event) { // event should not be null if (null == event) { @@ -166,7 +185,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has deleted a land-line + * number + *

+ * @param event Event being fired + */ public void afterAdminDeletedLandLineNumberEvent (@Observes final AdminDeletedLandLineNumberEvent event) { // event should not be null if (null == event) { @@ -190,7 +214,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has deleted a mobile + * number + *

+ * @param event Event being fired + */ public void afterAdminDeletedMobileNumberEvent (@Observes final AdminDeletedMobileNumberEvent event) { // event should not be null if (null == event) { @@ -214,7 +243,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has a linked a fax + * number + *

+ * @param event Event being fired + */ public void afterAdminLinkedFaxNumberEvent (@Observes final ObservableAdminLinkedFaxNumberEvent event) { // Is the event fine? if (event == null) { @@ -250,7 +284,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J } } - @Override + /** + * Observes events being fired when an administrator has a linked a + * land-line number + *

+ * @param event Event being fired + */ public void afterAdminLinkedLandLineNumberEvent (@Observes final ObservableAdminLinkedLandLineNumberEvent event) { // Is the event fine? if (event == null) { @@ -286,7 +325,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J } } - @Override + /** + * Observes events being fired when an administrator has a linked a mobile + * number + *

+ * @param event Event being fired + */ public void afterAdminLinkedMobileNumberEvent (@Observes final ObservableAdminLinkedMobileNumberEvent event) { // Is the event fine? if (event == null) { @@ -322,7 +366,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J } } - @Override + /** + * Observes events being fired when an administrator has updated contact + * data. + *

+ * @param event Event being fired + */ public void afterAdminUpdatedContactDataEvent (@Observes final ObservableAdminUpdatedContactEvent event) { // event should not be null if (null == event) { @@ -346,7 +395,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has updated a fax + * number. + *

+ * @param event Event being fired + */ public void afterAdminUpdatedFaxNumberEvent (@Observes final AdminUpdatedFaxNumberEvent event) { // event should not be null if (null == event) { @@ -370,7 +424,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has updated a land-line + * number. + *

+ * @param event Event being fired + */ public void afterAdminUpdatedLandLineNumberEvent (@Observes final AdminUpdatedLandLineNumberEvent event) { // event should not be null if (null == event) { @@ -394,7 +453,12 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J this.clear(); } - @Override + /** + * Observes events being fired when an administrator has updated a mobile + * number. + *

+ * @param event Event being fired + */ public void afterAdminUpdatedMobileNumberEvent (@Observes final AdminUpdatedMobileNumberEvent event) { // event should not be null if (null == event) { @@ -610,4 +674,131 @@ public class JobsPhoneWebApplicationBean extends BaseJobsController implements J } } + /** + * Returns given property key or throws an exception if not found. + *

+ * @param parameterKey Property key + *

+ * @return Property value + *

+ * @throws NullPointerException If given key is not found + * @throws NumberFormatException If no number is given in context parameter + */ + protected int getIntegerContextParameter (final String parameterKey) throws NullPointerException, NumberFormatException { + // Get context parameter + Integer contextValue = Integer.parseInt(this.getStringContextParameter(parameterKey)); + // Return it + return contextValue; + } + + /** + * Returns given property key or throws an exception if not found. + *

+ * @param parameterKey Property key + *

+ * @return Property value + *

+ * @throws NullPointerException If given key is not found + */ + protected String getStringContextParameter (final String parameterKey) throws NullPointerException { + // Get context parameter + String contextValue = FacesContext.getCurrentInstance().getExternalContext().getInitParameter(parameterKey); + // Is it null? + if (null == contextValue) { + // Throw NPE + throw new NullPointerException(MessageFormat.format("parameterKey={0} is not set.", parameterKey)); //NOI18N + } + // Return it + return contextValue; + } + + /** + * Checks whether debug mode is enabled for given controller + *

+ * @param controllerName Name of controller + *

+ * @return Whether debug mode is enabled + */ + protected boolean isDebugModeEnabled (final String controllerName) { + // Parameters should be valid + if (null == controllerName) { + // Throw NPE + throw new NullPointerException("controllerName is null"); //NOI18N + } else if (controllerName.isEmpty()) { + // Is empty + throw new IllegalArgumentException("controllerName is empty"); //NOI18N + } + // Try to get context parameter + String contextParameter = this.getStringContextParameter(String.format("is_debug_%s_enabled", controllerName)); //NOI18N + // Is it set and true? + boolean isEnabled = Boolean.parseBoolean(contextParameter) == Boolean.TRUE; + // Return it + return isEnabled; + } + + /** + * Loads resource bundle for given locale. This must be implemented per + * project so all projects can still customize their methods. Calling + * ResourceBundleloadBundle() in this class means that also the bundle files + * must be present here. + *

+ * @param locale Locale from e.g. FacesContext + *

+ * @return Initialized and loaded resource bundle + */ + protected abstract ResourceBundle loadResourceBundle (final Locale locale); + + /** + * Shows a faces message for given causing exception. The message from the + * exception is being inserted into the message. + *

+ * @param clientId Client id to send message to + * @param cause Causing exception + */ + protected void showFacesMessage (final String clientId, final Throwable cause) { + // Get context and add message + this.showFacesMessage(clientId, cause.getMessage()); + } + + /** + * Shows a faces message with given message (i18n) key. + *

+ * @param clientId Client id to send message to + * @param i18nKey Message key + *

+ * @throws NullPointerException If clientId or i18nKey is null + * @throws IllegalArgumentException If clientId or i18nKey is empty + */ + protected void showFacesMessage (final String clientId, final String i18nKey) throws NullPointerException, IllegalArgumentException { + // Both parameter must be valid + if (null == clientId) { + // Throw NPE + throw new NullPointerException("clientId is null"); //NOI18N + } else if (clientId.isEmpty()) { + // Is empty + throw new IllegalArgumentException("clientId is null"); //NOI18N + } else if (null == i18nKey) { + // Throw NPE + throw new NullPointerException("i18nKey is null"); //NOI18N + } else if (i18nKey.isEmpty()) { + // Is empty + throw new IllegalArgumentException("i18nKey is null"); //NOI18N + } + // Get current locale + Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale(); + // Get bundle bundle + ResourceBundle bundle = this.loadResourceBundle(locale); + // Default is i18nKey + String message = MessageFormat.format("!{0}!", i18nKey); //NOI18N + // Try it + try { + // Get message + message = bundle.getString(i18nKey); + } catch (final MissingResourceException ex) { + // Did not find it, ignored + } + // Get context and add message + FacesContext.getCurrentInstance().addMessage(clientId, new FacesMessage(message)); + } + }