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 2008/10/03 20:32:58 UTC
svn commit: r701480 - in /myfaces/extensions/validator/branches/jsf_1.1:
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/
core/src/main/java/org/apache/myfaces/extensions/validator...
Author: gpetracek
Date: Fri Oct 3 11:32:57 2008
New Revision: 701480
URL: http://svn.apache.org/viewvc?rev=701480&view=rev
Log:
skip validation support
Added:
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java
Modified:
myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java
myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java
myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java
myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/Required.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
Modified: myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java Fri Oct 3 11:32:57 2008
@@ -19,6 +19,8 @@
package org.apache.myfaces.extensions.validator.trinidad.initializer.component;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.trinidad.validator.DoubleRangeValidator;
import javax.faces.component.EditableValueHolder;
@@ -30,9 +32,12 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
public class DoubleRangeInitializer extends TrinidadComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ @Override
+ public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
{
boolean informationAdded = false;
DoubleRangeValidator lengthValidator = (DoubleRangeValidator)facesContext.getApplication()
@@ -62,6 +67,8 @@
if(informationAdded)
{
((EditableValueHolder)uiComponent).addValidator(lengthValidator);
+ return true;
}
+ return false;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java Fri Oct 3 11:32:57 2008
@@ -20,6 +20,8 @@
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
@@ -31,11 +33,15 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
public class LengthInitializer extends TrinidadComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ @Override
+ public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
{
boolean informationAdded = false;
+ //TODO
LengthValidator lengthValidator = (LengthValidator)facesContext.getApplication()
.createValidator("org.apache.myfaces.trinidad.Length");
@@ -66,9 +72,14 @@
informationAdded = true;
}
}
+
+ //reInitValidators((EditableValueHolder)uiComponent, metaData); //search wrappers and call .deactivate
+
if(informationAdded)
{
((EditableValueHolder)uiComponent).addValidator(lengthValidator);
+ return true;
}
+ return false;
}
}
Modified: myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java Fri Oct 3 11:32:57 2008
@@ -19,6 +19,8 @@
package org.apache.myfaces.extensions.validator.trinidad.initializer.component;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.trinidad.validator.LongRangeValidator;
import javax.faces.component.EditableValueHolder;
@@ -30,9 +32,12 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
public class LongRangeInitializer extends TrinidadComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ @Override
+ public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
{
boolean informationAdded = false;
LongRangeValidator lengthValidator = (LongRangeValidator)facesContext.getApplication()
@@ -62,6 +67,8 @@
if(informationAdded)
{
((EditableValueHolder)uiComponent).addValidator(lengthValidator);
+ return true;
}
+ return false;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java Fri Oct 3 11:32:57 2008
@@ -18,8 +18,9 @@
*/
package org.apache.myfaces.extensions.validator.trinidad.initializer.component;
-import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.trinidad.validator.RegExpValidator;
import javax.faces.component.EditableValueHolder;
@@ -31,13 +32,16 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class PatternInitializer implements ComponentInitializer
+@ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
+public class PatternInitializer extends TrinidadComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ @Override
+ public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
{
if(!metaData.containsKey(CommonMetaDataKeys.PATTERN))
{
- return;
+ return false;
}
String[] patterns = (String[])metaData.get(CommonMetaDataKeys.PATTERN);
@@ -55,5 +59,6 @@
((EditableValueHolder)uiComponent).addValidator(regExpValidator);
}
+ return true;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/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/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java Fri Oct 3 11:32:57 2008
@@ -25,6 +25,7 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import java.util.Map;
+import java.util.List;
/**
* @author Gerhard Petracek
@@ -32,16 +33,31 @@
*/
public class RequiredInitializer extends TrinidadComponentInitializer
{
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ @Override
+ public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
{
- if(metaData.containsKey(CommonMetaDataKeys.REQUIRED))
+ if(metaData.containsKey(CommonMetaDataKeys.REQUIRED) || metaData.containsKey(CommonMetaDataKeys.WEAK_REQUIRED)||
+ metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION))
{
- if((Boolean)metaData.get(CommonMetaDataKeys.REQUIRED) &&
+ if((Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.WEAK_REQUIRED)) &&
Boolean.TRUE.equals(isComponentRequired(uiComponent)))
+ ||
+ (Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)) &&
+ Boolean.TRUE.equals(isComponentRequired(uiComponent))))
{
((EditableValueHolder)uiComponent).setRequired(true);
+ return true;
+ }
+ else if(metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION) &&
+ ((List)metaData.get(CommonMetaDataKeys.SKIP_VALIDATION)).contains(CommonMetaDataKeys.WEAK_REQUIRED)&&
+ !Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)))
+ {
+ ((EditableValueHolder)uiComponent).setRequired(false);
+ return true;
}
}
+ return false;
}
protected Boolean isComponentRequired(UIComponent uiComponent)
@@ -54,4 +70,4 @@
return !(isReadOnly || isDisabled);
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java Fri Oct 3 11:32:57 2008
@@ -19,6 +19,9 @@
package org.apache.myfaces.extensions.validator.trinidad.initializer.component;
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.trinidad.context.RequestContext;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -37,7 +40,8 @@
private static final String TRINIDAD_CORE_INPUT_DATE
= "org.apache.myfaces.trinidad.component.core.input.CoreInputDate";
- private static List<ComponentInitializer> componentInitializers = new ArrayList<ComponentInitializer>();
+ private static List<TrinidadComponentInitializer> componentInitializers =
+ new ArrayList<TrinidadComponentInitializer>();
static
{
@@ -49,17 +53,36 @@
//componentInitializers.add(new ValidatorInitializer());
}
- public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
+ @ToDo(value = Priority.LOW, description = "check ppr issue")
+ public final void configureComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
{
- for(ComponentInitializer componentInitializer : componentInitializers)
+ for(TrinidadComponentInitializer componentInitializer : componentInitializers)
{
- componentInitializer.configureComponent(facesContext, uiComponent, metaData);
+ if(componentInitializer.configureTrinidadComponent(facesContext, uiComponent, metaData))
+ {
+ updateComponent(facesContext, uiComponent);
+ }
}
}
+ protected boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
+ Map<String, Object> metaData)
+ {
+ return false;
+ }
+
protected boolean processComponent(UIComponent uiComponent)
{
return TRINIDAD_CORE_INPUT_TEXT.equals(uiComponent.getClass().getName()) ||
TRINIDAD_CORE_INPUT_DATE.equals(uiComponent.getClass().getName());
}
+
+ private void updateComponent(FacesContext facesContext, UIComponent uiComponent)
+ {
+ if(RequestContext.getCurrentInstance().isPartialRequest(facesContext))
+ {
+ RequestContext.getCurrentInstance().addPartialTarget(uiComponent.getParent());
+ }
+ }
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java Fri Oct 3 11:32:57 2008
@@ -30,6 +30,7 @@
public interface CommonMetaDataKeys
{
static final String REQUIRED = "required";
+ static final String WEAK_REQUIRED = "weak_required";
static final String MIN_LENGTH = "min_length";
static final String MAX_LENGTH = "max_length";
@@ -42,4 +43,5 @@
static final String EMAIL = "email";
static final String CUSTOM = "custom";
+ static final String SKIP_VALIDATION = "skip_validation";
}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java?rev=701480&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -0,0 +1,97 @@
+/*
+ * 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.metadata.transformer;
+
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.faces.context.FacesContext;
+import java.lang.annotation.Annotation;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+//long term target: skipValidation for all annotations (if possible)
+public abstract class AbstractMetaDataTransformer implements MetaDataTransformer
+{
+ protected final Log logger = LogFactory.getLog(getClass());
+
+ protected AbstractMetaDataTransformer()
+ {
+ if(logger.isDebugEnabled())
+ {
+ logger.debug(getClass().getName() + " instantiated");
+ }
+ }
+
+ public final Map<String, Object> extractMetaData(Annotation annotation)
+ {
+ if(skipValidation(annotation))
+ {
+ if(logger.isTraceEnabled())
+ {
+ logger.trace(getClass() + " validation skiped");
+ }
+ Map<String, Object> results = new HashMap<String, Object>();
+ results.put(CommonMetaDataKeys.SKIP_VALIDATION, getMetaDataKeys());
+ return results;
+ }
+
+ return processExtraction(annotation);
+ }
+
+ protected boolean skipValidation(Annotation annotation)
+ {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+
+ Boolean result = (Boolean) ExtValUtils.getELHelper()
+ .getValueOfExpression(facesContext, getSkipExpression(annotation));
+
+ if(logger.isTraceEnabled())
+ {
+ logger.trace(getClass() + "#skipValidation result of getSkipExpression: "
+ + getSkipExpression(annotation));
+ }
+
+ return result;
+ }
+
+ protected String getSkipExpression(Annotation annotation)
+ {
+ return "#{false}"; //default - don't skip
+ }
+
+ /**
+ * if the current annotation is skiped provide the meta-data keys which are irrelevant
+ * -> component initializers have to reset these properties
+ */
+ protected List<String> getMetaDataKeys()
+ {
+ return new ArrayList<String>();
+ }
+
+ protected abstract Map<String, Object> processExtraction(Annotation annotation);
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java Fri Oct 3 11:32:57 2008
@@ -24,6 +24,7 @@
import org.apache.commons.logging.LogFactory;
import java.util.Map;
+import java.util.List;
import java.lang.annotation.Annotation;
/**
@@ -39,24 +40,41 @@
* @since 1.x.1
*/
@UsageInformation({UsageCategory.REUSE})
-public class BeanMetaDataTransformerAdapterImpl implements BeanMetaDataTransformerAdapter
+public class BeanMetaDataTransformerAdapterImpl extends AbstractMetaDataTransformer
+ implements BeanMetaDataTransformerAdapter
{
protected final Log logger = LogFactory.getLog(getClass());
private MetaDataTransformer metaDataTransformer;
private String metaDataTransformerClassName;
- public BeanMetaDataTransformerAdapterImpl()
+ public Map<String, Object> processExtraction(Annotation annotation)
{
- if(logger.isDebugEnabled())
+ if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
{
- logger.debug(getClass().getName() + " instantiated");
+ return ((AbstractMetaDataTransformer)this.metaDataTransformer).processExtraction(annotation);
}
+ return this.metaDataTransformer.extractMetaData(annotation);
}
- public Map<String, Object> extractMetaData(Annotation annotation)
+ @Override
+ protected String getSkipExpression(Annotation annotation)
{
- return this.metaDataTransformer.extractMetaData(annotation);
+ if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
+ {
+ return ((AbstractMetaDataTransformer)this.metaDataTransformer).getSkipExpression(annotation);
+ }
+ return super.getSkipExpression(annotation);
+ }
+
+ @Override
+ protected List<String> getMetaDataKeys()
+ {
+ if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
+ {
+ return ((AbstractMetaDataTransformer)this.metaDataTransformer).getMetaDataKeys();
+ }
+ return super.getMetaDataKeys();
}
public String getMetaDataTransformerClassName()
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java Fri Oct 3 11:32:57 2008
@@ -21,6 +21,7 @@
import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -28,12 +29,15 @@
import javax.faces.context.FacesContext;
import javax.faces.convert.ConverterException;
import javax.faces.validator.ValidatorException;
+import java.lang.annotation.Annotation;
/**
* Provides the ability to use ValidatorException (as expected by the user) instead of ConverterException.
* Furthermore it provides:<br/>
* initValidation<br/>
* processAfterValidatorException
+ * <p/>
+ * adds support for "skipable" validation strategies
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -42,6 +46,7 @@
public abstract class AbstractValidatorAdapter implements ValidationStrategy
{
protected final Log logger = LogFactory.getLog(getClass());
+ private static final String DO_NOT_SKIP = "#{false}"; //don't skip
protected AbstractValidatorAdapter()
{
@@ -59,6 +64,15 @@
logger.trace("start initValidation of " + getClass().getName());
}
+ if(skipValidation(facesContext, uiComponent, annotationEntry, convertedObject))
+ {
+ if(logger.isTraceEnabled())
+ {
+ logger.trace(getClass() + " validation skiped");
+ }
+ return;
+ }
+
initValidation(facesContext, uiComponent, annotationEntry, convertedObject);
if(logger.isTraceEnabled())
@@ -107,6 +121,32 @@
}
}
+ protected boolean skipValidation(FacesContext facesContext, UIComponent uiComponent,
+ AnnotationEntry annotationEntry, Object convertedObject)
+ {
+ String expression = getSkipExpression(annotationEntry.getAnnotation());
+
+ //just for a better performance for "none-skipable" strategies
+ if(DO_NOT_SKIP.equals(expression))
+ {
+ return false;
+ }
+
+ Boolean result = (Boolean)ExtValUtils.getELHelper().getValueOfExpression(facesContext, expression);
+
+ if(logger.isTraceEnabled())
+ {
+ logger.trace(getClass() + "#skipValidation result of getSkipExpression: " + expression);
+ }
+
+ return result;
+ }
+
+ protected String getSkipExpression(Annotation annotation)
+ {
+ return DO_NOT_SKIP;
+ }
+
protected void initValidation(FacesContext facesContext,
UIComponent uiComponent,
AnnotationEntry annotationEntry,
Modified: myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java Fri Oct 3 11:32:57 2008
@@ -44,6 +44,9 @@
@Column(nullable = false, length = 10)
private String password;
+ @Column(nullable = false, length = 10)
+ private String role = "user";
+
@DateIs(type = DateIsType.before, valueOf = "finalExam")
@Column(nullable = false)
@Temporal(TemporalType.DATE)
@@ -94,6 +97,16 @@
this.password = password;
}
+ public String getRole()
+ {
+ return role;
+ }
+
+ public void setRole(String role)
+ {
+ this.role = role;
+ }
+
public Date getBirthday()
{
return birthday;
Modified: myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java Fri Oct 3 11:32:57 2008
@@ -33,7 +33,7 @@
//the old password of the person isn't used within the page
//-> validate with value of the model
- @Required
+ @Required(skipValidation = "#{person.role eq 'admin'}")
@Equals("#{person.password}")
@NotEquals("password")
private String oldPassword;
@@ -66,6 +66,22 @@
return "home";
}
+ //just a quick illustration of skipValidation
+ public String switchMode()
+ {
+ String currentRole = this.person.getRole();
+
+ if(currentRole.equals("admin"))
+ {
+ this.person.setRole("user");
+ }
+ else
+ {
+ this.person.setRole("admin");
+ }
+ return "";
+ }
+
//combine gui related annotations with the annoations of the domain model
@JoinValidation("#{person.email}")
@Validator(EmailValidator.class)
Modified: myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml Fri Oct 3 11:32:57 2008
@@ -26,6 +26,8 @@
</tr:panelFormLayout>
<tr:commandButton text="save" action="#{registrationPage.finish}"/>
+ <tr:commandLink text="mode: #{registrationPage.person.role}"
+ action="#{registrationPage.switchMode}" immediate="true"/>
</ui:define>
</ui:composition>
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java Fri Oct 3 11:32:57 2008
@@ -26,6 +26,7 @@
import javax.faces.component.html.HtmlInputText;
import javax.faces.context.FacesContext;
import java.util.Map;
+import java.util.List;
/**
* @author Gerhard Petracek
@@ -43,13 +44,23 @@
UIComponent uiComponent,
Map<String, Object> metaData)
{
- if(metaData.containsKey(CommonMetaDataKeys.REQUIRED))
+ if(metaData.containsKey(CommonMetaDataKeys.REQUIRED) || metaData.containsKey(CommonMetaDataKeys.WEAK_REQUIRED)||
+ metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION))
{
- if((Boolean)metaData.get(CommonMetaDataKeys.REQUIRED) &&
+ if((Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.WEAK_REQUIRED)) &&
Boolean.TRUE.equals(isComponentRequired(uiComponent)))
+ ||
+ (Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)) &&
+ Boolean.TRUE.equals(isComponentRequired(uiComponent))))
{
((EditableValueHolder)uiComponent).setRequired(true);
}
+ else if(metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION) &&
+ ((List)metaData.get(CommonMetaDataKeys.SKIP_VALIDATION)).contains(CommonMetaDataKeys.WEAK_REQUIRED)&&
+ !Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)))
+ {
+ ((EditableValueHolder)uiComponent).setRequired(false);
+ }
}
}
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/Required.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/Required.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/Required.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/Required.java Fri Oct 3 11:32:57 2008
@@ -32,4 +32,6 @@
public @interface Required
{
String validationErrorMsgKey() default "field_required";
+
+ String skipValidation() default "#{false}"; //default - don't skip
}
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.baseval.annotation.DoubleRange;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
import java.lang.annotation.Annotation;
import java.util.HashMap;
@@ -30,9 +30,9 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class DoubleRangeMetaDataTransformer implements MetaDataTransformer
+public class DoubleRangeMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
Map<String, Object> results = new HashMap<String, Object>();
double minimum = ((DoubleRange)annotation).minimum();
@@ -47,4 +47,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -23,6 +23,7 @@
import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
import org.apache.myfaces.extensions.validator.core.annotation.extractor.AnnotationExtractor;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -35,9 +36,9 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class JoinMetaDataTransformer implements MetaDataTransformer
+public class JoinMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
AnnotationExtractor extractor = new DefaultPropertyScanningAnnotationExtractor();
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.baseval.annotation.Length;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
import java.lang.annotation.Annotation;
import java.util.HashMap;
@@ -30,9 +30,9 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class LengthMetaDataTransformer implements MetaDataTransformer
+public class LengthMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
Map<String, Object> results = new HashMap<String, Object>();
int minimum = ((Length)annotation).minimum();
@@ -47,4 +47,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.baseval.annotation.LongRange;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
import java.lang.annotation.Annotation;
import java.util.HashMap;
@@ -30,9 +30,9 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class LongRangeMetaDataTransformer implements MetaDataTransformer
+public class LongRangeMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
Map<String, Object> results = new HashMap<String, Object>();
long minimum = ((LongRange)annotation).minimum();
@@ -47,4 +47,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.validator.baseval.metadata.transformer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.Pattern;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -34,9 +34,9 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class PatternMetaDataTransformer implements MetaDataTransformer
+public class PatternMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
Map<String, Object> results = new HashMap<String, Object>();
results.put(CommonMetaDataKeys.PATTERN, ((Pattern)annotation).value());
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -19,22 +19,40 @@
package org.apache.myfaces.extensions.validator.baseval.metadata.transformer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
+import org.apache.myfaces.extensions.validator.baseval.annotation.Required;
import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
/**
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class RequiredMetaDataTransformer implements MetaDataTransformer
+public class RequiredMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
Map<String, Object> results = new HashMap<String, Object>();
- results.put(CommonMetaDataKeys.REQUIRED, true);
+ results.put(CommonMetaDataKeys.WEAK_REQUIRED, true);
return results;
}
+
+ @Override
+ protected String getSkipExpression(Annotation annotation)
+ {
+ return ((Required)annotation).skipValidation();
+ }
+
+ //returns the key of the skiped meta-data e.g.
+ @Override
+ protected List<String> getMetaDataKeys()
+ {
+ List<String> skippedMetaDataList = new ArrayList<String>();
+ skippedMetaDataList.add(CommonMetaDataKeys.WEAK_REQUIRED);
+ return skippedMetaDataList;
+ }
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java Fri Oct 3 11:32:57 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.baseval.annotation.Validator;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
import java.lang.annotation.Annotation;
import java.util.HashMap;
@@ -32,9 +32,9 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-public class ValidatorMetaDataTransformer implements MetaDataTransformer
+public class ValidatorMetaDataTransformer extends AbstractMetaDataTransformer
{
- public Map<String, Object> extractMetaData(Annotation annotation)
+ public Map<String, Object> processExtraction(Annotation annotation)
{
Map<String, Object> results = new HashMap<String, Object>();
Class[] validators = ((Validator)annotation).value();
@@ -54,4 +54,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java?rev=701480&r1=701479&r2=701480&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java Fri Oct 3 11:32:57 2008
@@ -52,4 +52,10 @@
{
return ((Required) annotation).validationErrorMsgKey();
}
+
+ @Override
+ protected String getSkipExpression(Annotation annotation)
+ {
+ return ((Required)annotation).skipValidation();
+ }
}