]> git.mxchange.org Git - jcore-utils.git/blobdiff - src/org/mxchange/jcoreee/validator/string/BaseStringValidator.java
fixed tpzo
[jcore-utils.git] / src / org / mxchange / jcoreee / validator / string / BaseStringValidator.java
index 59871c345fd772039a72513cd14a3023cf674f3a..84fc78131e4fb5a675b73c743335f8c0f54d448a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015 Roland Haeder
+ * Copyright (C) 2016, 2017 Roland Häder
  *
  * 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
@@ -16,6 +16,7 @@
  */
 package org.mxchange.jcoreee.validator.string;
 
+import java.text.MessageFormat;
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -25,23 +26,27 @@ import org.mxchange.jcoreee.validator.BaseObjectValidator;
 /**
  * A general string validation class. You normally want to inherit from this
  * class for many form fields, e.g. surname, street name, city name and such.
- *
- * @author Roland Haeder<roland@mxchange.org>
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
  */
 public abstract class BaseStringValidator extends BaseObjectValidator {
 
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 15_484_578_781_760_287L;
+
        @Override
-       protected void preValidate (final FacesContext context, final UIComponent component, final Object value, final String[] requiredFields) throws ValidatorException {
+       protected void preValidate (final FacesContext context, final UIComponent component, final Object value, final String[] requiredFields, Boolean allowNull) throws ValidatorException {
                // Trace message
-               //this.getLogger().logTrace(MessageFormat.format("preValidate: context={0},component={1},value={2},fields={3} - CALLED!", context, component, value, Arrays.toString(requiredFields))); //NOI18N
+               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("preValidate: context={0},component={1},value={2},fields={3} - CALLED!", context, component, value, Arrays.toString(requiredFields))); //NOI18N
 
-               // Pre-validate (e.g. on null)
-               super.preValidate(context, component, value, requiredFields);
+               // Pre-validate (example: on null)
+               super.preValidate(context, component, value, requiredFields, allowNull);
 
                // Get client id and init message + key
                String clientId = component.getClientId();
-               FacesMessage facesMessage = null;
-               String errKey;
+               String requiredMessage = null;
 
                // So far all fine, no check if the field is fine
                for (final String field : requiredFields) {
@@ -51,11 +56,9 @@ public abstract class BaseStringValidator extends BaseObjectValidator {
                        // Is it the same?
                        if (clientId.endsWith(field)) {
                                // Compare value's type
-                               if (!(value instanceof String)) {
+                               if ((!allowNull) && (!(value instanceof String))) {
                                        // Value is empty
-                                       errKey = String.format("ERROR_%s_IS_NOT_STRING", field.toUpperCase()); //NOI18N
-
-                                       facesMessage = new FacesMessage(getMessageStringFromKey(errKey));
+                                       requiredMessage = MessageFormat.format("Field {0} is not String: {1}", field, value); //NOI18N
                                }
 
                                // Cast to string
@@ -63,22 +66,22 @@ public abstract class BaseStringValidator extends BaseObjectValidator {
 
                                // Is it empty?
                                if (str.isEmpty()) {
-                                       // Value is empty
-                                       errKey = String.format("ERROR_%s_IS_EMPTY", field.toUpperCase()); //NOI18N
-
-                                       facesMessage = new FacesMessage(getMessageStringFromKey(errKey));
+                                       // Empty strings are currently not accepted, may indicate flaw in invoker
+                                       requiredMessage = MessageFormat.format("Field {0} is empty.", field); //NOI18N
                                }
                        }
                }
 
                // Debug message
-               //this.getLogger().logDebug(MessageFormat.format("preValidate: facesMessage={0}", facesMessage)); //NOI18N
+               //this.getLogger().logDebug(MessageFormat.format("preValidate: requiredMessage={0}", requiredMessage)); //NOI18N
+
                // Is it not null?
-               if (null != facesMessage) {
-                       throw new ValidatorException(facesMessage);
+               if (null != requiredMessage) {
+                       // Then there was something wrong with it
+                       throw new ValidatorException(new FacesMessage(requiredMessage));
                }
 
                // Trace message
-               //this.getLogger().logTrace("preValidate: EXIT!"); //NOI18N
+               //* NOISY-DEBUG: */ System.out.println("preValidate: EXIT!"); //NOI18N
        }
 }