From: Roland Haeder Date: Fri, 11 Sep 2015 13:36:56 +0000 (+0200) Subject: Continued with refacturing: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=ac1a55001415a650cef270e375f3c119f47c6b4e;p=jcoreee.git Continued with refacturing: - added new validator for longs and amounts - updated jars Signed-off-by:Roland Häder --- diff --git a/lib/jcore-ee-logger.jar b/lib/jcore-ee-logger.jar index 6160458..3c1fb7f 100644 Binary files a/lib/jcore-ee-logger.jar and b/lib/jcore-ee-logger.jar differ diff --git a/lib/jcore.jar b/lib/jcore.jar index 00e90e1..6ee2201 100644 Binary files a/lib/jcore.jar and b/lib/jcore.jar differ diff --git a/src/org/mxchange/jcoreee/BaseEeSystem.java b/src/org/mxchange/jcoreee/BaseEeSystem.java index 6f655a4..56ddbdb 100644 --- a/src/org/mxchange/jcoreee/BaseEeSystem.java +++ b/src/org/mxchange/jcoreee/BaseEeSystem.java @@ -26,7 +26,15 @@ public class BaseEeSystem { /** * Bundle instance */ - private ResourceBundle bundle; + private volatile ResourceBundle bundle; + + /** + * Protectd constructor + */ + protected BaseEeSystem () { + // Load resource bundle + this.bundle = ResourceBundle.getBundle("org/mxchange/localization/bundle"); + } /** * Getter for message from given key @@ -35,6 +43,12 @@ public class BaseEeSystem { * @return Message */ protected String getMessageStringFromKey (final String key) { + // Is the bundle loaded? + if (this.getBundle() == null) { + // Abort here + throw new NullPointerException("bundle is null"); //NOI18N + } + // Return message return this.getBundle().getString(key); } diff --git a/src/org/mxchange/jcoreee/beans/BaseFrameworkBean.java b/src/org/mxchange/jcoreee/beans/BaseFrameworkBean.java index 0a62f6e..f801bb9 100644 --- a/src/org/mxchange/jcoreee/beans/BaseFrameworkBean.java +++ b/src/org/mxchange/jcoreee/beans/BaseFrameworkBean.java @@ -44,8 +44,8 @@ public abstract class BaseFrameworkBean implements Serializable { } /** - * Super initialization method. If you overwrite this method, please call it - * before (!) your own initialization. + * Super initialization method. If you wrie your initialization method, + * please call this method before (!) your own initialization. * * @throws RuntimeException If something unexpected happens */ diff --git a/src/org/mxchange/jcoreee/validator/BaseObjectValidator.java b/src/org/mxchange/jcoreee/validator/BaseObjectValidator.java index 5e9d14a..90a98df 100644 --- a/src/org/mxchange/jcoreee/validator/BaseObjectValidator.java +++ b/src/org/mxchange/jcoreee/validator/BaseObjectValidator.java @@ -84,7 +84,8 @@ public abstract class BaseObjectValidator extends BaseEeSystem implements Valida // Is it null? if (null == value) { - errKey = String.format("error.%s.is_null", field); //NOI18N + // Generate message + errKey = String.format("ERROR_%s_IS_NULL", field.toUpperCase()); //NOI18N // Value it null facesMessage = new FacesMessage(getMessageStringFromKey(errKey)); diff --git a/src/org/mxchange/jcoreee/validator/bool/BaseBooleanValidator.java b/src/org/mxchange/jcoreee/validator/bool/BaseBooleanValidator.java index e0b3317..38fa468 100644 --- a/src/org/mxchange/jcoreee/validator/bool/BaseBooleanValidator.java +++ b/src/org/mxchange/jcoreee/validator/bool/BaseBooleanValidator.java @@ -45,6 +45,7 @@ public abstract class BaseBooleanValidator extends BaseObjectValidator implement // Get client id and init message + key String clientId = component.getClientId(); FacesMessage facesMessage = null; + String requiredMessage = null; // So far all fine, no check if the field is fine for (final String field : requiredFields) { @@ -55,8 +56,11 @@ public abstract class BaseBooleanValidator extends BaseObjectValidator implement if (clientId.endsWith(field)) { // Compare value's type if (!(value instanceof Boolean)) { + // Generate message + requiredMessage = this.getMessageStringFromKey(String.format("ERROR_%s_IS_NOT_BOOLEAN", field.toUpperCase())); + // Value is not right type - facesMessage = new FacesMessage(getMessageStringFromKey(String.format("error.%s.is_not_boolean", field))); //NOI18N + facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, requiredMessage, requiredMessage); //NOI18N break; } @@ -66,7 +70,7 @@ public abstract class BaseBooleanValidator extends BaseObjectValidator implement // Is it false? if (bool.equals(Boolean.FALSE)) { // Default message - String requiredMessage = ((UIInput) component).getRequiredMessage(); + requiredMessage = ((UIInput) component).getRequiredMessage(); if (null == requiredMessage) { Object label = component.getAttributes().get("label"); //NOI18N diff --git a/src/org/mxchange/jcoreee/validator/number/BaseLongValidator.java b/src/org/mxchange/jcoreee/validator/number/BaseLongValidator.java new file mode 100644 index 0000000..d69333a --- /dev/null +++ b/src/org/mxchange/jcoreee/validator/number/BaseLongValidator.java @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2015 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.jcoreee.validator.number; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; +import org.mxchange.jcoreee.validator.BaseObjectValidator; + +/** + * A general number value validator. + * + * @author Roland Haeder + */ +public abstract class BaseLongValidator extends BaseObjectValidator implements Validator { + + @Override + public void preValidate (final FacesContext context, final UIComponent component, final Object value, final String[] requiredFields) throws ValidatorException { + // Trace message + //this.getLogger().logTrace(MessageFormat.format("preValidate: context={0},component={1},value={2},requiredFields={3} - CALLED!", context, component, value, Arrays.toString(requiredFields))); //NOI18N + + // Pre-validate + super.preValidate(context, component, value, requiredFields); + + // Get client id and init message + key + String clientId = component.getClientId(); + FacesMessage facesMessage = null; + String requiredMessage = null; + + // So far all fine, no check if the field is fine + for (final String field : requiredFields) { + // Debug message + //this.getLogger().logDebug(MessageFormat.format("preValidate: field={0},clientId={1}", field, clientId)); //NOI18N + + // Is it the same? + if (clientId.endsWith(field)) { + // Compare value's type + if (!(value instanceof Long)) { + // Generate message + requiredMessage = this.getMessageStringFromKey(String.format("ERROR_%s_IS_NOT_LONG", field.toUpperCase())); + + // Value is not right type + facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, requiredMessage, requiredMessage); //NOI18N + break; + } + + // Cast to string + Long num = (Long) value; + + // Is the number below zero? + if (num < 0) { + // Generate message + requiredMessage = this.getMessageStringFromKey(String.format("ERROR_%s_IS_BELOW_ZERO", field.toUpperCase())); + + // Abort processing here + facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, requiredMessage, requiredMessage); + break; + } + } + } + + // Is facesMessage set? + if (facesMessage != null) { + // Abort here + throw new ValidatorException(facesMessage); + } + } +} diff --git a/src/org/mxchange/jcoreee/validator/number/item_amount/ItemAmountValidator.java b/src/org/mxchange/jcoreee/validator/number/item_amount/ItemAmountValidator.java new file mode 100644 index 0000000..43e53b1 --- /dev/null +++ b/src/org/mxchange/jcoreee/validator/number/item_amount/ItemAmountValidator.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2015 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.jcoreee.validator.number.item_amount; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; +import org.mxchange.jcoreee.validator.string.BaseStringValidator; + +/** + * A validator for item amount + * + * @author Roland Haeder + */ +public class ItemAmountValidator extends BaseStringValidator implements Validator { + + @Override + public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException { + // Trace message + //this.getLogger().logTrace(MessageFormat.format("validate: context={0},component={1},value={2} - CALLED!", context, component, value)); //NOI18N + + // The required field + String[] requiredFileds = {"amount"}; //NOI18N + + // Pre-validation (e.g. not null, not a string, empty string ...) + super.preValidate(context, component, value, requiredFileds); + + // Trace message + //this.getLogger().logTrace("validate: EXIT!"); //NOI18N + } +} diff --git a/src/org/mxchange/jcoreee/validator/string/BaseStringValidator.java b/src/org/mxchange/jcoreee/validator/string/BaseStringValidator.java index 34203b5..b245656 100644 --- a/src/org/mxchange/jcoreee/validator/string/BaseStringValidator.java +++ b/src/org/mxchange/jcoreee/validator/string/BaseStringValidator.java @@ -53,7 +53,7 @@ public abstract class BaseStringValidator extends BaseObjectValidator { // Compare value's type if (!(value instanceof String)) { // Value is empty - errKey = String.format("error.%s.is_not_string", field); //NOI18N + errKey = String.format("error_%s_is_not_string", field); //NOI18N facesMessage = new FacesMessage(getMessageStringFromKey(errKey)); } @@ -64,7 +64,7 @@ public abstract class BaseStringValidator extends BaseObjectValidator { // Is it empty? if (str.isEmpty()) { // Value is empty - errKey = String.format("error.%s.is_empty", field); //NOI18N + errKey = String.format("error_%s_is_empty", field); //NOI18N facesMessage = new FacesMessage(getMessageStringFromKey(errKey)); }