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/11 22:07:20 UTC
svn commit: r703722 [2/2] - in /myfaces/extensions/validator/trunk:
core/src/main/java/org/apache/myfaces/extensions/validator/core/
core/src/main/java/org/apache/myfaces/extensions/validator/core/annotation/
core/src/main/java/org/apache/myfaces/exten...
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=703722&r1=703721&r2=703722&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 Sat Oct 11 13:07:19 2008
@@ -26,8 +26,8 @@
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.el.ELHelper;
import org.apache.myfaces.extensions.validator.core.el.AbstractELHelperFactory;
-import org.apache.myfaces.extensions.validator.core.annotation.extractor.AnnotationExtractor;
-import org.apache.myfaces.extensions.validator.core.annotation.extractor.AnnotationExtractorFactory;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractorFactory;
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
@@ -35,7 +35,6 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import java.util.Map;
-import java.lang.annotation.Annotation;
/**
@@ -44,12 +43,12 @@
@UsageInformation(UsageCategory.INTERNAL)
public class ExtValUtils
{
- public static ValidationStrategy getValidationStrategyForAnnotation(Annotation annotation)
+ public static ValidationStrategy getValidationStrategyForMetaData(String metaDataKey)
{
- return ((ClassMappingFactory<Annotation, ValidationStrategy>) ExtValContext.getContext()
+ return ((ClassMappingFactory<Object, ValidationStrategy>) ExtValContext.getContext()
.getFactoryFinder()
.getFactory(FactoryNames.VALIDATION_STRATEGY_FACTORY, ClassMappingFactory.class))
- .create(annotation);
+ .create(metaDataKey);
}
public static MetaDataTransformer getMetaDataTransformerForValidationStrategy(ValidationStrategy validationStrategy)
@@ -60,10 +59,10 @@
.create(validationStrategy);
}
- public static AnnotationExtractor getAnnotationExtractor()
+ public static MetaDataExtractor getAnnotationExtractor()
{
return ExtValContext.getContext().getFactoryFinder()
- .getFactory(FactoryNames.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY, AnnotationExtractorFactory.class)
+ .getFactory(FactoryNames.COMPONENT_META_DATA_EXTRACTOR_FACTORY, MetaDataExtractorFactory.class)
.create();
}
@@ -90,4 +89,4 @@
return ExtValContext.getContext().getFactoryFinder()
.getFactory(FactoryNames.EL_HELPER_FACTORY, AbstractELHelperFactory.class).create();
}
-}
\ No newline at end of file
+}
Added: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java?rev=703722&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java (added)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java Sat Oct 11 13:07:19 2008
@@ -0,0 +1,75 @@
+/*
+ * 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.baseval.annotation.extractor;
+
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.SourceInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.DefaultSourceInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.DefaultComponentMetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+
+import javax.faces.context.FacesContext;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Gerhard Petracek
+ */
+public class DefaultPropertyScanningMetaDataExtractor extends DefaultComponentMetaDataExtractor
+{
+
+ @Override
+ @ToDo(Priority.MEDIUM)
+ public SourceInformation extract(FacesContext facesContext, Object object)
+ {
+ SourceInformation sourceInformation = new DefaultSourceInformation();
+ //should never occur
+ if (!(object instanceof String))
+ {
+ return sourceInformation;
+ }
+
+ ValueBindingExpression valueBindingExpression = new ValueBindingExpression(((String) object).trim());
+
+ List<MetaDataEntry> metaDataEntries = new ArrayList<MetaDataEntry>();
+
+ Class entityClass = ExtValUtils.getELHelper()
+ .getTypeOfValueBindingForExpression(facesContext, valueBindingExpression.getBaseExpression());
+
+ //TODO complex components
+ sourceInformation.setProperty(
+ PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, valueBindingExpression.getExpressionString());
+
+ /*
+ * find and add annotations
+ */
+ if (entityClass != null)
+ {
+ //TODO map syntax support
+ addPropertyAccessAnnotations(entityClass, valueBindingExpression.getProperty(), sourceInformation);
+ addFieldAccessAnnotations(entityClass, valueBindingExpression.getProperty(), sourceInformation);
+ }
+
+ return sourceInformation;
+ }
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -20,12 +20,11 @@
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.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
import java.util.HashMap;
import java.util.Map;
-import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -33,15 +32,15 @@
*/
public class DoubleRangeMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
Map<String, Object> results = new HashMap<String, Object>();
- Annotation annotation = annotationEntry.getAnnotation();
+ DoubleRange annotation = metaDataEntry.getValue(DoubleRange.class);
- double minimum = ((DoubleRange)annotation).minimum();
+ double minimum = annotation.minimum();
results.put(CommonMetaDataKeys.RANGE_MIN, minimum);
- results.put(CommonMetaDataKeys.RANGE_MAX, ((DoubleRange)annotation).maximum());
+ results.put(CommonMetaDataKeys.RANGE_MAX, annotation.maximum());
if(minimum > 0)
{
@@ -50,4 +49,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -19,9 +19,10 @@
package org.apache.myfaces.extensions.validator.baseval.metadata.transformer;
import org.apache.myfaces.extensions.validator.baseval.annotation.JoinValidation;
-import org.apache.myfaces.extensions.validator.baseval.annotation.extractor.DefaultPropertyScanningAnnotationExtractor;
-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.baseval.annotation.extractor.DefaultPropertyScanningMetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
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;
@@ -38,11 +39,11 @@
*/
public class JoinMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
- AnnotationExtractor extractor = new DefaultPropertyScanningAnnotationExtractor();
+ MetaDataExtractor extractor = new DefaultPropertyScanningMetaDataExtractor();
- String[] targetExpressions = ((JoinValidation)(annotationEntry).getAnnotation()).value();
+ String[] targetExpressions = metaDataEntry.getValue(JoinValidation.class).value();
ValidationStrategy validationStrategy;
MetaDataTransformer metaDataTransformer;
@@ -51,12 +52,12 @@
for (String targetExpression : targetExpressions)
{
- targetExpression = createValidBinding(annotationEntry, targetExpression);
+ targetExpression = createValidBinding(metaDataEntry, targetExpression);
- for (AnnotationEntry entry : extractor
- .extractAnnotations(FacesContext.getCurrentInstance(), targetExpression))
+ for (MetaDataEntry entry : extractor.extract(FacesContext.getCurrentInstance(),
+ targetExpression).getMetaDataEntries())
{
- validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(entry.getAnnotation());
+ validationStrategy = ExtValUtils.getValidationStrategyForMetaData(entry.getKey());
metaDataTransformer = ExtValUtils.getMetaDataTransformerForValidationStrategy(validationStrategy);
@@ -69,14 +70,15 @@
return results;
}
- private String createValidBinding(AnnotationEntry annotationEntry, String targetExpression)
+ private String createValidBinding(MetaDataEntry metaDataEntry, String targetExpression)
{
if(ExtValUtils.getELHelper().isELTerm(targetExpression))
{
return targetExpression;
}
- ValueBindingExpression baseExpression = new ValueBindingExpression(annotationEntry.getValueBindingExpression());
+ ValueBindingExpression baseExpression = new ValueBindingExpression(
+ metaDataEntry.getProperty(PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, String.class));
return ValueBindingExpression.replaceOrAddProperty(baseExpression, targetExpression).getExpressionString();
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -20,7 +20,7 @@
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.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -28,6 +28,7 @@
import javax.persistence.Column;
import java.util.HashMap;
import java.util.Map;
+import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -36,10 +37,12 @@
public class JpaMetaDataTransformer implements MetaDataTransformer
{
@ToDo(value = Priority.HIGH, description = "impl. the rest")
- public Map<String, Object> convertMetaData(AnnotationEntry annotation)
+ public Map<String, Object> convertMetaData(MetaDataEntry metaData)
{
Map<String, Object> results = new HashMap<String, Object>();
+ Annotation annotation = metaData.getValue(Annotation.class);
+
if(annotation instanceof Column)
{
if(!((Column) annotation).nullable())
@@ -51,7 +54,7 @@
}
else if(annotation instanceof Basic)
{
- if(!((Basic)annotation).optional())
+ if(!((Basic) annotation).optional())
{
results.put(CommonMetaDataKeys.REQUIRED, true);
}
@@ -59,4 +62,4 @@
//TODO impl. the rest!!!
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -21,11 +21,10 @@
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.AbstractMetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import java.util.HashMap;
import java.util.Map;
-import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -33,15 +32,15 @@
*/
public class LengthMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
Map<String, Object> results = new HashMap<String, Object>();
- Annotation annotation = annotationEntry.getAnnotation();
+ Length annotation = metaDataEntry.getValue(Length.class);
- int minimum = ((Length)annotation).minimum();
+ int minimum = annotation.minimum();
results.put(CommonMetaDataKeys.MIN_LENGTH, minimum);
- results.put(CommonMetaDataKeys.MAX_LENGTH, ((Length)annotation).maximum());
+ results.put(CommonMetaDataKeys.MAX_LENGTH, annotation.maximum());
if(minimum > 0)
{
@@ -50,4 +49,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -20,12 +20,11 @@
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.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
import java.util.HashMap;
import java.util.Map;
-import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -33,15 +32,15 @@
*/
public class LongRangeMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
Map<String, Object> results = new HashMap<String, Object>();
- Annotation annotation = annotationEntry.getAnnotation();
+ LongRange annotation = metaDataEntry.getValue(LongRange.class);
- long minimum = ((LongRange)annotation).minimum();
+ long minimum = annotation.minimum();
results.put(CommonMetaDataKeys.RANGE_MIN, minimum);
- results.put(CommonMetaDataKeys.RANGE_MAX, ((LongRange)annotation).maximum());
+ results.put(CommonMetaDataKeys.RANGE_MAX, annotation.maximum());
if(minimum > 0)
{
@@ -50,4 +49,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -21,7 +21,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
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.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.baseval.annotation.Pattern;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -29,7 +29,6 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Locale;
-import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -37,17 +36,18 @@
*/
public class PatternMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
Map<String, Object> results = new HashMap<String, Object>();
- Annotation annotation = annotationEntry.getAnnotation();
+ Pattern annotation = metaDataEntry.getValue(Pattern.class);
- results.put(CommonMetaDataKeys.PATTERN, ((Pattern)annotation).value());
+ results.put(CommonMetaDataKeys.PATTERN, (annotation).value());
- String validationErrorMsgKey = ((Pattern)annotation).validationErrorMsgKey();
+ String validationErrorMsgKey = (annotation).validationErrorMsgKey();
Locale currentLocale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
- ValidationStrategy validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(annotation);
+ ValidationStrategy validationStrategy =
+ ExtValUtils.getValidationStrategyForMetaData(annotation.annotationType().getName());
String validationErrorMsg = ExtValUtils.getMessageResolverForValidationStrategy(validationStrategy)
.getMessage(validationErrorMsgKey, currentLocale);
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -19,8 +19,8 @@
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.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
import org.apache.myfaces.extensions.validator.baseval.annotation.Required;
import java.util.HashMap;
@@ -34,7 +34,7 @@
*/
public class RequiredMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
Map<String, Object> results = new HashMap<String, Object>();
results.put(CommonMetaDataKeys.WEAK_REQUIRED, true);
@@ -42,9 +42,9 @@
}
@Override
- protected String getSkipExpression(AnnotationEntry annotationEntry)
+ protected String getSkipExpression(MetaDataEntry metaDataEntry)
{
- return ((Required)(annotationEntry).getAnnotation()).skipValidation();
+ return metaDataEntry.getValue(Required.class).skipValidation();
}
//returns the key of the skiped meta-data e.g.
@@ -55,4 +55,4 @@
skippedMetaDataList.add(CommonMetaDataKeys.WEAK_REQUIRED);
return skippedMetaDataList;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java Sat Oct 11 13:07:19 2008
@@ -20,14 +20,13 @@
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.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.AbstractMetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
-import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -35,12 +34,12 @@
*/
public class ValidatorMetaDataTransformer extends AbstractMetaDataTransformer
{
- protected Map<String, Object> convert(AnnotationEntry annotationEntry)
+ protected Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
Map<String, Object> results = new HashMap<String, Object>();
- Annotation annotation = annotationEntry.getAnnotation();
+ Validator annotation = metaDataEntry.getValue(Validator.class);
- Class[] validators = ((Validator)annotation).value();
+ Class[] validators = annotation.value();
List<String> value = new ArrayList<String>();
@@ -57,4 +56,4 @@
return results;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.DoubleRange;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
import javax.faces.component.UIComponent;
@@ -34,19 +34,17 @@
{
protected void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- DoubleRange annotation = annotationEntry
- .getAnnotation(DoubleRange.class);
+ DoubleRange annotation = metaDataEntry.getValue(DoubleRange.class);
DoubleRangeValidator doubleRangeValidator = (DoubleRangeValidator)facesContext.getApplication()
.createValidator("javax.faces.DoubleRange");
doubleRangeValidator.setMinimum(annotation.minimum());
doubleRangeValidator.setMaximum(annotation.maximum());
- doubleRangeValidator.validate(facesContext, uiComponent,
- convertedObject);
+ doubleRangeValidator.validate(facesContext, uiComponent, convertedObject);
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,9 +19,10 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.JoinValidation;
-import org.apache.myfaces.extensions.validator.baseval.annotation.extractor.DefaultPropertyScanningAnnotationExtractor;
-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.baseval.annotation.extractor.DefaultPropertyScanningMetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
@@ -37,22 +38,22 @@
public class JoinValidationStrategy extends AbstractValidatorAdapter
{
public void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- AnnotationExtractor extractor = new DefaultPropertyScanningAnnotationExtractor();
+ MetaDataExtractor extractor = new DefaultPropertyScanningMetaDataExtractor();
- String[] targetExpressions = annotationEntry.getAnnotation(JoinValidation.class).value();
+ String[] targetExpressions = metaDataEntry.getValue(JoinValidation.class).value();
ValidationStrategy validationStrategy;
for (String targetExpression : targetExpressions)
{
- targetExpression = createValidBinding(annotationEntry, targetExpression);
+ targetExpression = createValidBinding(metaDataEntry, targetExpression);
- for (AnnotationEntry entry : extractor.extractAnnotations(facesContext, targetExpression))
+ for (MetaDataEntry entry : extractor.extract(facesContext, targetExpression).getMetaDataEntries())
{
- validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(entry.getAnnotation());
+ validationStrategy = ExtValUtils.getValidationStrategyForMetaData(entry.getKey());
if (validationStrategy != null)
{
@@ -62,22 +63,22 @@
{
if(logger.isTraceEnabled())
{
- logger.trace("no validation strategy found for "
- + entry.getAnnotation().annotationType().getName());
+ logger.trace("no validation strategy found for " + entry.getValue());
}
}
}
}
}
- private String createValidBinding(AnnotationEntry annotationEntry, String targetExpression)
+ private String createValidBinding(MetaDataEntry metaDataEntry, String targetExpression)
{
if(ExtValUtils.getELHelper().isELTerm(targetExpression))
{
return targetExpression;
}
- ValueBindingExpression baseExpression = new ValueBindingExpression(annotationEntry.getValueBindingExpression());
+ ValueBindingExpression baseExpression = new ValueBindingExpression(
+ metaDataEntry.getProperty(PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, String.class));
return ValueBindingExpression.replaceOrAddProperty(baseExpression, targetExpression).getExpressionString();
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,8 +19,8 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -36,7 +36,7 @@
/**
* @author Gerhard Petracek
*/
-public class JpaValidationStrategy extends AbstractValidationStrategy
+public class JpaValidationStrategy extends AbstractAnnotationValidationStrategy
{
private static final String VALIDATE_LENGTH = "length";
@@ -45,10 +45,10 @@
private int maxLength;
public void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- Annotation annotation = annotationEntry.getAnnotation();
+ Annotation annotation = metaDataEntry.getValue(Annotation.class);
if (annotation instanceof Column)
{
validateColumnAnnotation((Column) annotation, convertedObject);
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.Length;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
import javax.faces.component.UIComponent;
@@ -33,10 +33,10 @@
public class LengthStrategy extends AbstractValidatorAdapter
{
protected void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- Length annotation = annotationEntry.getAnnotation(Length.class);
+ Length annotation = metaDataEntry.getValue(Length.class);
LengthValidator lengthValidator = (LengthValidator)facesContext.getApplication()
.createValidator("javax.faces.Length");
@@ -45,4 +45,4 @@
lengthValidator.validate(facesContext, uiComponent, convertedObject);
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.LongRange;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
import javax.faces.component.UIComponent;
@@ -34,11 +34,11 @@
{
protected void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- LongRange annotation = annotationEntry.getAnnotation(LongRange.class);
+ LongRange annotation = metaDataEntry.getValue(LongRange.class);
LongRangeValidator longRangeValidator = (LongRangeValidator)facesContext.getApplication()
.createValidator("javax.faces.LongRange");
@@ -47,4 +47,4 @@
longRangeValidator.validate(facesContext, uiComponent, convertedObject);
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,8 +19,8 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.Pattern;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
@@ -31,15 +31,15 @@
/**
* @author Gerhard Petracek
*/
-public class PatternStrategy extends AbstractValidationStrategy
+public class PatternStrategy extends AbstractAnnotationValidationStrategy
{
protected void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- Pattern annotation = annotationEntry.getAnnotation(Pattern.class);
+ Pattern annotation = metaDataEntry.getValue(Pattern.class);
for (String expression : annotation.value())
{
@@ -60,4 +60,4 @@
{
return ((Pattern) annotation).validationErrorMsgKey();
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,8 +19,8 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.Required;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -32,19 +32,17 @@
/**
* @author Gerhard Petracek
*/
-public class RequiredStrategy extends AbstractValidationStrategy
+public class RequiredStrategy extends AbstractAnnotationValidationStrategy
{
public void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
if (convertedObject == null || convertedObject.equals("") ||
(convertedObject instanceof Collection && ((Collection)convertedObject).isEmpty()) ||
(convertedObject instanceof Map && ((Map)convertedObject).isEmpty()))
{
- throw new ValidatorException(
- getValidationErrorFacesMassage(annotationEntry
- .getAnnotation()));
+ throw new ValidatorException(getValidationErrorFacesMassage(metaDataEntry.getValue(Annotation.class)));
}
}
@@ -54,8 +52,8 @@
}
@Override
- protected String getSkipExpression(Annotation annotation)
+ protected String getSkipExpression(Object metaData)
{
- return ((Required)annotation).skipValidation();
+ return ((Required)metaData).skipValidation();
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java Sat Oct 11 13:07:19 2008
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.validator.baseval.strategy;
import org.apache.myfaces.extensions.validator.baseval.annotation.Validator;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
import org.apache.myfaces.extensions.validator.util.ClassUtils;
@@ -34,12 +34,11 @@
{
protected void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
- Class[] validatorClasses = annotationEntry.getAnnotation(
- Validator.class).value();
+ Class[] validatorClasses = metaDataEntry.getValue(Validator.class).value();
javax.faces.validator.Validator validator;
for (Class validatorClassName : validatorClasses)
@@ -59,4 +58,4 @@
validator.validate(facesContext, uiComponent, convertedObject);
}
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java Sat Oct 11 13:07:19 2008
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.validator.crossval;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.crossval.strategy.CrossValidationStrategy;
import javax.faces.component.UIComponent;
@@ -28,21 +28,21 @@
*/
public class CrossValidationStorageEntry
{
- private AnnotationEntry annotationEntry;
+ private MetaDataEntry metaDataEntry;
//for complex components (e.g. a table) stores the object of entry (#{entry.property})
private Object bean;
private UIComponent component;
private Object convertedObject;
private CrossValidationStrategy validationStrategy;
- public AnnotationEntry getAnnotationEntry()
+ public MetaDataEntry getMetaDataEntry()
{
- return annotationEntry;
+ return metaDataEntry;
}
- public void setAnnotationEntry(AnnotationEntry annotationEntry)
+ public void setAnnotationEntry(MetaDataEntry metaDataEntry)
{
- this.annotationEntry = annotationEntry;
+ this.metaDataEntry = metaDataEntry;
}
public Object getBean()
Added: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningMetaDataExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningMetaDataExtractor.java?rev=703722&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningMetaDataExtractor.java (added)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningMetaDataExtractor.java Sat Oct 11 13:07:19 2008
@@ -0,0 +1,93 @@
+/*
+ * 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.crossval.annotation.extractor;
+
+import org.apache.myfaces.extensions.validator.core.metadata.SourceInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.DefaultSourceInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.DefaultComponentMetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+
+import javax.faces.context.FacesContext;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
+/**
+ * to support the usage of vb-xpressions (to reference the target bean)
+ *
+ * @author Gerhard Petracek
+ */
+public class DefaultValueBindingScanningMetaDataExtractor extends DefaultComponentMetaDataExtractor
+{
+
+ @Override
+ public SourceInformation extract(FacesContext facesContext,
+ Object object)
+ {
+ SourceInformation sourceInformation = new DefaultSourceInformation();
+
+ //should never occur
+ if (!(object instanceof String))
+ {
+ return sourceInformation;
+ }
+
+ ValueBindingExpression valueBindingExpression = new ValueBindingExpression(((String) object).trim());
+
+ Class entity = ExtValUtils.getELHelper().getTypeOfValueBindingForExpression(facesContext,
+ valueBindingExpression);
+
+ if (entity != null)
+ {
+ //find and add annotations
+ addPropertyAccessAnnotations(entity, sourceInformation, valueBindingExpression.getExpressionString());
+ addFieldAccessAnnotations(entity, sourceInformation, valueBindingExpression.getExpressionString());
+ }
+
+ return sourceInformation;
+ }
+
+ protected void addPropertyAccessAnnotations(Class entity,
+ SourceInformation sourceInformation,
+ String valueBindingExpression)
+ {
+ for (Method method : entity.getDeclaredMethods())
+ {
+ sourceInformation.setProperty(
+ PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, valueBindingExpression);
+
+ addAnnotationToAnnotationEntries(Arrays.asList(method.getAnnotations()), sourceInformation);
+ }
+ }
+
+ protected void addFieldAccessAnnotations(Class entity,
+ SourceInformation sourceInformation,
+ String valueBindingExpression)
+ {
+ for (Field field : entity.getDeclaredFields())
+ {
+ sourceInformation.setProperty(
+ PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, valueBindingExpression);
+
+ addAnnotationToAnnotationEntries(Arrays.asList(field.getAnnotations()), sourceInformation);
+ }
+ }
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java Sat Oct 11 13:07:19 2008
@@ -30,6 +30,7 @@
import javax.faces.context.FacesContext;
import java.util.Map;
+import java.lang.annotation.Annotation;
/**
* referencing validation targets - possible formats:
@@ -68,7 +69,7 @@
if (compareStrategy.isViolation(crossValidationStorageEntry
.getConvertedObject(), ExtValUtils.getELHelper().getValueOfExpression(
facesContext, validationTarget), crossValidationStorageEntry
- .getAnnotationEntry().getAnnotation()))
+ .getMetaDataEntry().getValue(Annotation.class)))
{
ProcessedInformationEntry validationTargetEntry;
@@ -119,4 +120,4 @@
return true;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java Sat Oct 11 13:07:19 2008
@@ -25,11 +25,13 @@
import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.faces.context.FacesContext;
import java.util.Map;
+import java.lang.annotation.Annotation;
/**
* "[property_name]" ... local validation -> cross-component, but no cross-entity validation
@@ -75,7 +77,8 @@
String validationTarget)
{
ValueBindingExpression baseExpression =
- new ValueBindingExpression(crossValidationStorageEntry.getAnnotationEntry().getValueBindingExpression());
+ new ValueBindingExpression(crossValidationStorageEntry.getMetaDataEntry()
+ .getProperty(PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, String.class));
return ValueBindingExpression.replaceOrAddProperty(baseExpression, validationTarget).getExpressionString();
}
@@ -118,7 +121,7 @@
if (compareStrategy.isViolation(crossValidationStorageEntry
.getConvertedObject(), validationTargetEntry
.getConvertedValue(), crossValidationStorageEntry
- .getAnnotationEntry().getAnnotation()))
+ .getMetaDataEntry().getValue(Annotation.class)))
{
CrossValidationStorageEntry tmpCrossValidationStorageEntry = new CrossValidationStorageEntry();
@@ -146,4 +149,4 @@
return true;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java Sat Oct 11 13:07:19 2008
@@ -87,7 +87,7 @@
initValidation(crossValidationStorageEntry);
String[] validationTargets = getValidationTargets(crossValidationStorageEntry
- .getAnnotationEntry().getAnnotation());
+ .getMetaDataEntry().getValue(Annotation.class));
for (String validationTarget : validationTargets)
{
@@ -130,10 +130,8 @@
FacesContext facesContext = FacesContext.getCurrentInstance();
//get validation error messages for the target component
- String summary = getErrorMessageSummary(entryOfSource
- .getAnnotationEntry().getAnnotation(), true);
- String details = getErrorMessageDetails(entryOfSource
- .getAnnotationEntry().getAnnotation(), true);
+ String summary = getErrorMessageSummary(entryOfSource.getMetaDataEntry().getValue(Annotation.class), true);
+ String details = getErrorMessageDetails(entryOfSource.getMetaDataEntry().getValue(Annotation.class), true);
//validation target isn't bound to a component withing the current page
//(see validateFoundEntry, tryToValidateLocally and tryToValidateBindingOnly)
@@ -143,23 +141,22 @@
}
FacesMessage message;
- if (entryOfTarget.getAnnotationEntry() != null)
+ if (entryOfTarget.getMetaDataEntry() != null)
{
message = getTargetComponentErrorMessage(entryOfTarget
- .getAnnotationEntry().getAnnotation(), summary, details);
+ .getMetaDataEntry().getValue(Annotation.class), summary, details);
}
else
{
//TODO document possible side effects
//due to a missing target annotation (see: tryToValidateLocally)
message = getTargetComponentErrorMessage(entryOfSource
- .getAnnotationEntry().getAnnotation(), summary, details);
+ .getMetaDataEntry().getValue(Annotation.class), summary, details);
}
if (message.getSummary() != null || message.getDetail() != null)
{
- facesContext.addMessage(entryOfTarget.getComponent().getClientId(
- facesContext), message);
+ facesContext.addMessage(entryOfTarget.getComponent().getClientId(facesContext), message);
}
}
@@ -173,13 +170,11 @@
}
//get validation error messages for the current component
- String summary = getErrorMessageSummary(entryOfSource
- .getAnnotationEntry().getAnnotation(), false);
- String details = getErrorMessageDetails(entryOfSource
- .getAnnotationEntry().getAnnotation(), false);
+ String summary = getErrorMessageSummary(entryOfSource.getMetaDataEntry().getValue(Annotation.class), false);
+ String details = getErrorMessageDetails(entryOfSource.getMetaDataEntry().getValue(Annotation.class), false);
- FacesMessage message = getSourceComponentErrorMessage(entryOfSource
- .getAnnotationEntry().getAnnotation(), summary, details);
+ FacesMessage message = getSourceComponentErrorMessage(
+ entryOfSource.getMetaDataEntry().getValue(Annotation.class), summary, details);
if (message.getSummary() != null || message.getDetail() != null)
{
@@ -239,8 +234,7 @@
return processedInformationEntry;
}
- for (ProcessedInformationEntry entry : processedInformationEntry
- .getFurtherEntries())
+ for (ProcessedInformationEntry entry : processedInformationEntry.getFurtherEntries())
{
if (entry.getBean().equals(bean))
{
@@ -251,21 +245,17 @@
return null;
}
- protected String getErrorMessageSummary(Annotation annotation,
- boolean isTargetComponent)
+ protected String getErrorMessageSummary(Annotation annotation, boolean isTargetComponent)
{
- return resolveMessage(getValidationErrorMsgKey(annotation,
- isTargetComponent));
+ return resolveMessage(getValidationErrorMsgKey(annotation, isTargetComponent));
}
- protected String getErrorMessageDetails(Annotation annotation,
- boolean isTargetComponent)
+ protected String getErrorMessageDetails(Annotation annotation, boolean isTargetComponent)
{
try
{
String key = getValidationErrorMsgKey(annotation, isTargetComponent);
- return (key != null) ? resolveMessage(key
- + DETAIL_MESSAGE_KEY_POSTFIX) : null;
+ return (key != null) ? resolveMessage(key + DETAIL_MESSAGE_KEY_POSTFIX) : null;
}
catch (MissingResourceException e)
{
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java Sat Oct 11 13:07:19 2008
@@ -18,8 +18,9 @@
*/
package org.apache.myfaces.extensions.validator.crossval.strategy;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
@@ -33,28 +34,28 @@
* @author Gerhard Petracek
*/
public abstract class AbstractCrossValidationStrategy extends
- AbstractValidationStrategy implements CrossValidationStrategy
+ AbstractAnnotationValidationStrategy implements CrossValidationStrategy
{
//init cross-validation
public void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException
{
CrossValidationStorageEntry entry = getCrossValidationStorageEntry(
- facesContext, uiComponent, annotationEntry, convertedObject);
+ facesContext, uiComponent, metaDataEntry, convertedObject);
CrossValidationUtils.getOrInitCrossValidationStorage().add(entry);
}
public CrossValidationStorageEntry getCrossValidationStorageEntry(
FacesContext facesContext, UIComponent uiComponent,
- AnnotationEntry annotationEntry, Object convertedObject)
+ MetaDataEntry metaDataEntry, Object convertedObject)
{
CrossValidationStorageEntry entry = new CrossValidationStorageEntry();
- entry.setAnnotationEntry(annotationEntry);
- String vbe = annotationEntry.getValueBindingExpression();
+ entry.setAnnotationEntry(metaDataEntry);
+ String vbe = metaDataEntry.getProperty(PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, String.class);
entry.setBean(ExtValUtils.getELHelper().getBaseObject(new ValueBindingExpression(vbe)));
entry.setComponent(uiComponent);
entry.setConvertedObject(convertedObject);
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java?rev=703722&r1=703721&r2=703722&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java Sat Oct 11 13:07:19 2008
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.validator.crossval.strategy;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
@@ -37,7 +37,7 @@
{
CrossValidationStorageEntry getCrossValidationStorageEntry(
FacesContext facesContext, UIComponent uiComponent,
- AnnotationEntry annotationEntry, Object convertedObject);
+ MetaDataEntry metaDataEntry, Object convertedObject);
void processCrossValidation(
CrossValidationStorageEntry crossValidationStorageEntry,