You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2009/10/19 22:49:01 UTC
svn commit: r826802 - in /myfaces/extensions/validator/trunk:
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/
core/src/main/java/org/apache/myfaces/extensions/validator/core/initi...
Author: gpetracek
Date: Mon Oct 19 20:49:00 2009
New Revision: 826802
URL: http://svn.apache.org/viewvc?rev=826802&view=rev
Log:
EXTVAL-68 minor changes
Added:
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java
Modified:
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java
Modified: myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java?rev=826802&r1=826801&r2=826802&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java Mon Oct 19 20:49:00 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.trinidad.util.TrinidadUtils;
@@ -41,6 +42,11 @@
public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
Map<String, Object> metaData)
{
+ if(!validateEmptyFields())
+ {
+ return false;
+ }
+
if(metaData.containsKey(CommonMetaDataKeys.REQUIRED) ||
metaData.containsKey(CommonMetaDataKeys.WEAK_REQUIRED)||
metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION))
@@ -80,6 +86,11 @@
return false;
}
+ protected boolean validateEmptyFields()
+ {
+ return ExtValUtils.validateEmptyFields();
+ }
+
protected Boolean isComponentRequired(UIComponent uiComponent)
{
if(uiComponent instanceof CoreOutputLabel)
Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java?rev=826802&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java Mon Oct 19 20:49:00 2009
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.validator.core.initializer.component;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
+import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+
+import javax.faces.context.FacesContext;
+import javax.faces.component.UIComponent;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.component.html.HtmlInputSecret;
+import javax.faces.component.html.HtmlSelectBooleanCheckbox;
+import javax.faces.component.html.HtmlSelectOneListbox;
+import javax.faces.component.html.HtmlSelectOneMenu;
+import javax.faces.component.html.HtmlSelectOneRadio;
+import javax.faces.component.html.HtmlSelectManyCheckbox;
+import javax.faces.component.html.HtmlSelectManyListbox;
+import javax.faces.component.html.HtmlSelectManyMenu;
+import javax.faces.component.html.HtmlInputTextarea;
+import java.util.Map;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.REUSE)
+public abstract class AbstractHtmlCoreComponentsComponentInitializer implements ComponentInitializer
+{
+ public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ {
+ if(processComponent(uiComponent))
+ {
+ if(validateEmptyFields())
+ {
+ configureRequiredAttribute(facesContext, uiComponent, metaData);
+ }
+
+ configureMaxLengthAttribute(facesContext, uiComponent, metaData);
+ }
+ }
+
+ protected boolean validateEmptyFields()
+ {
+ return ExtValUtils.validateEmptyFields();
+ }
+
+ protected abstract void configureRequiredAttribute(FacesContext facesContext,
+ UIComponent uiComponent,
+ Map<String, Object> metaData);
+
+ protected boolean processComponent(UIComponent uiComponent)
+ {
+ return uiComponent instanceof HtmlInputText ||
+ uiComponent instanceof HtmlInputSecret ||
+ uiComponent instanceof HtmlSelectBooleanCheckbox ||
+ uiComponent instanceof HtmlSelectOneListbox ||
+ uiComponent instanceof HtmlSelectOneMenu ||
+ uiComponent instanceof HtmlSelectOneRadio ||
+ uiComponent instanceof HtmlSelectManyCheckbox ||
+ uiComponent instanceof HtmlSelectManyListbox ||
+ uiComponent instanceof HtmlSelectManyMenu ||
+ uiComponent instanceof HtmlInputTextarea;
+ }
+
+ /**
+ * if there is no special attribute at the component which should overrule
+ * the annotated property return true!
+ *
+ * @param uiComponent component which implements the EditableValueHolder interface
+ * @return false to overrule the annotated property e.g. if component is readonly
+ */
+ protected Boolean isComponentRequired(UIComponent uiComponent)
+ {
+ boolean isReadOnly = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
+ uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isReadonly")));
+ boolean isDisabled = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
+ uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isDisabled")));
+
+ return !(isReadOnly || isDisabled);
+ }
+
+ protected void configureMaxLengthAttribute(FacesContext facesContext,
+ UIComponent uiComponent,
+ Map<String, Object> metaData)
+ {
+ if(metaData.containsKey(CommonMetaDataKeys.MAX_LENGTH))
+ {
+ Object maxLength = metaData.get(CommonMetaDataKeys.MAX_LENGTH);
+
+ if(!(maxLength instanceof Integer))
+ {
+ return;
+ }
+ if(uiComponent instanceof HtmlInputText)
+ {
+ HtmlInputText htmlInputText = (HtmlInputText)uiComponent;
+ htmlInputText.setMaxlength((Integer)maxLength);
+ }
+ }
+ }
+}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java?rev=826802&r1=826801&r2=826802&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java Mon Oct 19 20:49:00 2009
@@ -144,8 +144,7 @@
protected boolean validateEmptyFields()
{
- //to deactivate: the parameter has to be explicitly false
- return !"false".equalsIgnoreCase(WebXmlParameter.VALIDATE_EMPTY_FIELDS);
+ return ExtValUtils.validateEmptyFields();
}
protected boolean interpretEmptyStringValuesAsNull()
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java?rev=826802&r1=826801&r2=826802&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java Mon Oct 19 20:49:00 2009
@@ -641,4 +641,9 @@
{
return propertyInformation.getInformation(PropertyInformationKeys.PROPERTY_DETAILS, PropertyDetails.class);
}
+
+ public static boolean validateEmptyFields()
+ {
+ return !"false".equalsIgnoreCase(WebXmlParameter.VALIDATE_EMPTY_FIELDS);
+ }
}
Modified: myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java?rev=826802&r1=826801&r2=826802&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java Mon Oct 19 20:49:00 2009
@@ -18,48 +18,27 @@
*/
package org.apache.myfaces.extensions.validator.beanval;
-import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
+import org.apache.myfaces.extensions.validator.core.initializer.component
+ .AbstractHtmlCoreComponentsComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
-import javax.faces.component.html.HtmlInputText;
-import javax.faces.component.html.HtmlInputSecret;
-import javax.faces.component.html.HtmlSelectBooleanCheckbox;
-import javax.faces.component.html.HtmlSelectOneListbox;
-import javax.faces.component.html.HtmlSelectOneMenu;
-import javax.faces.component.html.HtmlSelectOneRadio;
-import javax.faces.component.html.HtmlSelectManyCheckbox;
-import javax.faces.component.html.HtmlSelectManyListbox;
-import javax.faces.component.html.HtmlSelectManyMenu;
-import javax.faces.component.html.HtmlInputTextarea;
import javax.faces.context.FacesContext;
import java.util.Map;
/**
- * keep in sync with: org.apache.myfaces.extensions.validator.HtmlCoreComponentsComponentInitializer
- *
* @author Gerhard Petracek
* @since x.x.3
*/
@InvocationOrder(200)
@UsageInformation(UsageCategory.INTERNAL)
-public class HtmlCoreComponentsComponentInitializer implements ComponentInitializer
+public class HtmlCoreComponentsComponentInitializer extends AbstractHtmlCoreComponentsComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
- {
- if(processComponent(uiComponent))
- {
- configureRequiredAttribute(facesContext, uiComponent, metaData);
- configureMaxLengthAttribute(facesContext, uiComponent, metaData);
- }
- }
-
protected void configureRequiredAttribute(FacesContext facesContext,
UIComponent uiComponent,
Map<String, Object> metaData)
@@ -79,55 +58,4 @@
((EditableValueHolder)uiComponent).setRequired(false);
}
}
-
- protected boolean processComponent(UIComponent uiComponent)
- {
- return uiComponent instanceof HtmlInputText ||
- uiComponent instanceof HtmlInputSecret ||
- uiComponent instanceof HtmlSelectBooleanCheckbox ||
- uiComponent instanceof HtmlSelectOneListbox ||
- uiComponent instanceof HtmlSelectOneMenu ||
- uiComponent instanceof HtmlSelectOneRadio ||
- uiComponent instanceof HtmlSelectManyCheckbox ||
- uiComponent instanceof HtmlSelectManyListbox ||
- uiComponent instanceof HtmlSelectManyMenu ||
- uiComponent instanceof HtmlInputTextarea;
- }
-
- /**
- * if there is no special attribute at the component which should overrule
- * the annotated property return true!
- *
- * @param uiComponent component which implements the EditableValueHolder interface
- * @return false to overrule the annotated property e.g. if component is readonly
- */
- protected Boolean isComponentRequired(UIComponent uiComponent)
- {
- boolean isReadOnly = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
- uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isReadonly")));
- boolean isDisabled = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
- uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isDisabled")));
-
- return !(isReadOnly || isDisabled);
- }
-
- protected void configureMaxLengthAttribute(FacesContext facesContext,
- UIComponent uiComponent,
- Map<String, Object> metaData)
- {
- if(metaData.containsKey(CommonMetaDataKeys.MAX_LENGTH))
- {
- Object maxLength = metaData.get(CommonMetaDataKeys.MAX_LENGTH);
-
- if(!(maxLength instanceof Integer))
- {
- return;
- }
- if(uiComponent instanceof HtmlInputText)
- {
- HtmlInputText htmlInputText = (HtmlInputText)uiComponent;
- htmlInputText.setMaxlength((Integer)maxLength);
- }
- }
- }
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java?rev=826802&r1=826801&r2=826802&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java Mon Oct 19 20:49:00 2009
@@ -18,25 +18,15 @@
*/
package org.apache.myfaces.extensions.validator;
-import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
+import org.apache.myfaces.extensions.validator.core.initializer.component
+ .AbstractHtmlCoreComponentsComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
-import javax.faces.component.html.HtmlInputText;
-import javax.faces.component.html.HtmlInputSecret;
-import javax.faces.component.html.HtmlSelectBooleanCheckbox;
-import javax.faces.component.html.HtmlSelectOneListbox;
-import javax.faces.component.html.HtmlSelectOneMenu;
-import javax.faces.component.html.HtmlSelectOneRadio;
-import javax.faces.component.html.HtmlSelectManyCheckbox;
-import javax.faces.component.html.HtmlSelectManyListbox;
-import javax.faces.component.html.HtmlSelectManyMenu;
-import javax.faces.component.html.HtmlInputTextarea;
import javax.faces.context.FacesContext;
import java.util.Map;
@@ -46,23 +36,12 @@
*/
@InvocationOrder(200)
@UsageInformation(UsageCategory.INTERNAL)
-public class HtmlCoreComponentsComponentInitializer implements ComponentInitializer
+public class HtmlCoreComponentsComponentInitializer extends AbstractHtmlCoreComponentsComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
- {
- configureRequiredAttribute(facesContext, uiComponent, metaData);
- configureMaxLengthAttribute(facesContext, uiComponent, metaData);
- }
-
protected void configureRequiredAttribute(FacesContext facesContext,
UIComponent uiComponent,
Map<String, Object> metaData)
{
- if(!processComponent(uiComponent))
- {
- return;
- }
-
if((Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.WEAK_REQUIRED)) ||
Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)))
&&
@@ -76,55 +55,4 @@
((EditableValueHolder)uiComponent).setRequired(false);
}
}
-
- protected boolean processComponent(UIComponent uiComponent)
- {
- return uiComponent instanceof HtmlInputText ||
- uiComponent instanceof HtmlInputSecret ||
- uiComponent instanceof HtmlSelectBooleanCheckbox ||
- uiComponent instanceof HtmlSelectOneListbox ||
- uiComponent instanceof HtmlSelectOneMenu ||
- uiComponent instanceof HtmlSelectOneRadio ||
- uiComponent instanceof HtmlSelectManyCheckbox ||
- uiComponent instanceof HtmlSelectManyListbox ||
- uiComponent instanceof HtmlSelectManyMenu ||
- uiComponent instanceof HtmlInputTextarea;
- }
-
- /**
- * if there is no special attribute at the component which should overrule
- * the annotated property return true!
- *
- * @param uiComponent component which implements the EditableValueHolder interface
- * @return false to overrule the annotated property e.g. if component is readonly
- */
- protected Boolean isComponentRequired(UIComponent uiComponent)
- {
- boolean isReadOnly = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
- uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isReadonly")));
- boolean isDisabled = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
- uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isDisabled")));
-
- return !(isReadOnly || isDisabled);
- }
-
- protected void configureMaxLengthAttribute(FacesContext facesContext,
- UIComponent uiComponent,
- Map<String, Object> metaData)
- {
- if(metaData.containsKey(CommonMetaDataKeys.MAX_LENGTH))
- {
- Object maxLength = metaData.get(CommonMetaDataKeys.MAX_LENGTH);
-
- if(!(maxLength instanceof Integer))
- {
- return;
- }
- if(uiComponent instanceof HtmlInputText)
- {
- HtmlInputText htmlInputText = (HtmlInputText)uiComponent;
- htmlInputText.setMaxlength((Integer)maxLength);
- }
- }
- }
}