/**
* 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
* @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);
}
}
/**
- * 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
*/
// 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));
// 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) {
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;
}
// 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
--- /dev/null
+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+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<roland@mxchange.org>
+ */
+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);
+ }
+ }
+}
--- /dev/null
+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+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<roland@mxchange.org>
+ */
+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
+ }
+}
// 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));
}
// 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));
}