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:06:13 UTC
svn commit: r703721 [1/2] - in
/myfaces/extensions/validator/branches/jsf_1.1:
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/my...
Author: gpetracek
Date: Sat Oct 11 13:06:12 2008
New Revision: 703721
URL: http://svn.apache.org/viewvc?rev=703721&view=rev
Log:
basic support for other meta-data types
Added:
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningMetaDataExtractor.java
Removed:
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/annotation/
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningAnnotationExtractor.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java
Modified:
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.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/metadata/transformer/MetaDataTransformer.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/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.java
myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.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/JpaMetaDataTransformer.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/DoubleRangeStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java Sat Oct 11 13:06:12 2008
@@ -29,7 +29,7 @@
public enum CustomInfo
{
BASE_PACKAGE,
- COMPONENT_ANNOTATION_EXTRACTOR,
+ COMPONENT_META_DATA_EXTRACTOR,
VALIDATION_STRATEGY_POSTFIX,
VALIDATION_ERROR_MESSAGE_RESOLVER_POSTFIX,
@@ -45,9 +45,9 @@
MESSAGE_RESOLVER_FACTORY,
VALIDATION_STRATEGY_FACTORY,
COMPONENT_INITIALIZER_FACTORY,
- COMPONENT_ANNOTATION_EXTRACTOR_FACTORY,
+ COMPONENT_META_DATA_EXTRACTOR_FACTORY,
META_DATA_TRANSFORMER_FACTORY,
CONVENTION_FOR_CUSTOM_MESSAGE_BUNDLE,
STATIC_STRATEGY_MAPPING_SOURCE
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java Sat Oct 11 13:06:12 2008
@@ -76,7 +76,7 @@
customizableInfos.put(CustomInfo.BASE_PACKAGE, basePackage);
- customizableInfos.put(CustomInfo.COMPONENT_ANNOTATION_EXTRACTOR, "ComponentAnnotationExtractor");
+ customizableInfos.put(CustomInfo.COMPONENT_META_DATA_EXTRACTOR, "ComponentMetaDataExtractor");
customizableInfos.put(CustomInfo.VALIDATION_STRATEGY_POSTFIX, "ValidationStrategy");
customizableInfos.put(CustomInfo.META_DATA_TRANSFORMER_POSTFIX, "MetaDataTransformer");
@@ -96,7 +96,7 @@
customizableInfos.put(CustomInfo.MESSAGE_RESOLVER_FACTORY, "MessageResolverFactory");
customizableInfos.put(CustomInfo.VALIDATION_STRATEGY_FACTORY, "ValidationStrategyFactory");
customizableInfos.put(CustomInfo.COMPONENT_INITIALIZER_FACTORY, "ComponentInitializerFactory");
- customizableInfos.put(CustomInfo.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY, "ComponentAnnotationExtractorFactory");
+ customizableInfos.put(CustomInfo.COMPONENT_META_DATA_EXTRACTOR_FACTORY, "ComponentAnnotationExtractorFactory");
customizableInfos.put(CustomInfo.META_DATA_TRANSFORMER_FACTORY, "MetaDataTransformerFactory");
//conventions (the rest of the conventions are built with the help of name mappers,...
@@ -138,4 +138,4 @@
return customizableInfos.get(CustomInfo.BASE_PACKAGE) + value;
}
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java Sat Oct 11 13:06:12 2008
@@ -24,8 +24,6 @@
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import java.lang.annotation.Annotation;
-
/**
* @author Gerhard Petracek
* @since 1.x.1
@@ -90,9 +88,9 @@
/**
* use a custom name mapper to implement custom conventions
*/
- public static String getValidationStrategyClassName(Annotation annotation)
+ public static String getValidationStrategyClassName(String metaDataKey)
{
- return annotation.annotationType().getName().replace(".annotation.", ".strategy.") + "Strategy";
+ return metaDataKey.replace(".annotation.", ".strategy.") + "Strategy";
}
public static String getMetaDataTransformerClassName(String validationStrategyName)
@@ -112,4 +110,4 @@
}
return validationStrategyName + targetPostfix;
}
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java Sat Oct 11 13:06:12 2008
@@ -43,8 +43,8 @@
static final String CUSTOM_INFORMATION_PROVIDER_BEAN = WebXmlUtils
.getInitParameter("CUSTOM_INFORMATION_PROVIDER_BEAN");
- static final String CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR = WebXmlUtils
- .getInitParameter("CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR");
+ static final String CUSTOM_COMPONENT_META_DATA_EXTRACTOR = WebXmlUtils
+ .getInitParameter("CUSTOM_COMPONENT_META_DATA_EXTRACTOR");
static final String CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING = WebXmlUtils
.getInitParameter("CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING");
@@ -73,8 +73,8 @@
static final String CUSTOM_MESSAGE_RESOLVER_FACTORY = WebXmlUtils
.getInitParameter("CUSTOM_MESSAGE_RESOLVER_FACTORY");
- static final String CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR_FACTORY = WebXmlUtils
- .getInitParameter("CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR_FACTORY");
+ static final String CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY = WebXmlUtils
+ .getInitParameter("CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY");
static final String CUSTOM_META_DATA_TRANSFORMER_FACTORY = WebXmlUtils
.getInitParameter("CUSTOM_META_DATA_TRANSFORMER_FACTORY");
@@ -93,4 +93,4 @@
//there is nothing like DEACTIVATE_DEFAULT_VALIDATION_INTERCEPTOR
//use ExtValContext.getContext().denyRendererInterceptor(...) within an extval-StartupListener
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java Sat Oct 11 13:06:12 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import org.apache.myfaces.extensions.validator.core.annotation.extractor.DefaultComponentAnnotationExtractorFactory;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.DefaultComponentMetaDataExtractorFactory;
import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.CustomInfo;
@@ -73,8 +73,8 @@
Object factory = null;
switch (factoryName)
{
- case COMPONENT_ANNOTATION_EXTRACTOR_FACTORY:
- factory = createComponentAnnotationExtractorFactory();
+ case COMPONENT_META_DATA_EXTRACTOR_FACTORY:
+ factory = createComponentMetaDataExtractorFactory();
break;
case VALIDATION_STRATEGY_FACTORY:
@@ -111,19 +111,19 @@
factoryMap.put(factoryName, factory);
}
- protected Object createComponentAnnotationExtractorFactory()
+ protected Object createComponentMetaDataExtractorFactory()
{
Object factory = null;
- List<String> annotationExtractorFactoryClassNames = new ArrayList<String>();
+ List<String> metaDataExtractorFactoryClassNames = new ArrayList<String>();
- annotationExtractorFactoryClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR_FACTORY);
- annotationExtractorFactoryClassNames
+ metaDataExtractorFactoryClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY);
+ metaDataExtractorFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
- .get(CustomInfo.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY));
- annotationExtractorFactoryClassNames.add(DefaultComponentAnnotationExtractorFactory.class.getName());
+ .get(CustomInfo.COMPONENT_META_DATA_EXTRACTOR_FACTORY));
+ metaDataExtractorFactoryClassNames.add(DefaultComponentMetaDataExtractorFactory.class.getName());
- for (String className : annotationExtractorFactoryClassNames)
+ for (String className : metaDataExtractorFactoryClassNames)
{
factory = ClassUtils.tryToInstantiateClassForName(className);
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java Sat Oct 11 13:06:12 2008
@@ -28,7 +28,7 @@
@UsageInformation({UsageCategory.API})
public enum FactoryNames
{
- COMPONENT_ANNOTATION_EXTRACTOR_FACTORY,
+ COMPONENT_META_DATA_EXTRACTOR_FACTORY,
VALIDATION_STRATEGY_FACTORY,
MESSAGE_RESOLVER_FACTORY,
META_DATA_TRANSFORMER_FACTORY,
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java Sat Oct 11 13:06:12 2008
@@ -22,9 +22,9 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
-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.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+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.ExtValContext;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
import org.apache.myfaces.extensions.validator.core.recorder.ProcessedInformationRecorder;
@@ -68,14 +68,13 @@
ValidationStrategy validationStrategy;
MetaDataTransformer metaDataTransformer;
- AnnotationExtractor annotationExtractor = ExtValContext.getContext().getFactoryFinder().getFactory(
- FactoryNames.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY, AnnotationExtractorFactory.class).create();
+ MetaDataExtractor metaDataExtractor = ExtValContext.getContext().getFactoryFinder().getFactory(
+ FactoryNames.COMPONENT_META_DATA_EXTRACTOR_FACTORY, MetaDataExtractorFactory.class).create();
Map<String, Object> metaData;
- for (AnnotationEntry entry : annotationExtractor.extractAnnotations(facesContext, uiComponent))
+ for (MetaDataEntry entry : metaDataExtractor.extract(facesContext, uiComponent).getMetaDataEntries())
{
-
- validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(entry.getAnnotation());
+ validationStrategy = ExtValUtils.getValidationStrategyForMetaData(entry.getKey());
if (validationStrategy != null)
{
@@ -140,17 +139,17 @@
ValidationStrategy validationStrategy;
- AnnotationExtractor annotationExtractor = ExtValUtils.getAnnotationExtractor();
+ MetaDataExtractor metaDataExtractor = ExtValUtils.getAnnotationExtractor();
- for (AnnotationEntry entry : annotationExtractor.extractAnnotations(facesContext, uiComponent))
+ for (MetaDataEntry entry : metaDataExtractor.extract(facesContext, uiComponent).getMetaDataEntries())
{
- validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(entry.getAnnotation());
+ validationStrategy = ExtValUtils.getValidationStrategyForMetaData(entry.getKey());
if (validationStrategy != null)
{
if(logger.isTraceEnabled())
{
- logger.trace("validate " + entry.getAnnotation().getClass().getName() + " with " +
+ logger.trace("validate " + entry.getValue() + " with " +
validationStrategy.getClass().getName());
}
@@ -161,7 +160,7 @@
if(logger.isTraceEnabled())
{
logger.trace("no validation strategy found for "
- + entry.getAnnotation().annotationType().getName());
+ + entry.getValue());
}
}
}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.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/DefaultSourceInformation.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,69 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultSourceInformation implements SourceInformation
+{
+ private Map<String, Object> properties = new HashMap<String, Object>();
+ private List<MetaDataEntry> metaDataList = new ArrayList<MetaDataEntry>();
+
+ public boolean containsProperty(String key)
+ {
+ return properties.containsKey(key);
+ }
+
+ public Object getProperty(String key)
+ {
+ return properties.get(key);
+ }
+
+ public <T> T getProperty(String key, Class<T> targetClass)
+ {
+ return (T)getProperty(key);
+ }
+
+ public void setProperty(String key, Object value)
+ {
+ properties.put(key, value);
+ }
+
+ public MetaDataEntry[] getMetaDataEntries()
+ {
+ return metaDataList.toArray(new MetaDataEntry[metaDataList.size()]);
+ }
+
+ public void addMetaDataEntry(MetaDataEntry metaDataEntry)
+ {
+ metaDataEntry.setProperties(this.properties);
+ this.metaDataList.add(metaDataEntry);
+ }
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.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/MetaDataEntry.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,79 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * Data holder which stores the annotation and some information where the annotation was around.
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public class MetaDataEntry
+{
+ private String key;
+ private Object value;
+ private Map<String, Object> properties = new HashMap<String, Object>();
+
+ public String getKey()
+ {
+ return key;
+ }
+
+ public void setKey(String key)
+ {
+ this.key = key;
+ }
+
+ public Object getValue()
+ {
+ return value;
+ }
+
+ public <T> T getValue(Class<T> targetClass)
+ {
+ return (T)getValue();
+ }
+
+ public void setValue(Object value)
+ {
+ this.value = value;
+ }
+
+ public void setProperties(Map<String, Object> properties)
+ {
+ this.properties = properties;
+ }
+
+ public Object getProperty(String key)
+ {
+ return this.properties.get(key);
+ }
+
+ public <T> T getProperty(String key, Class<T> targetClass)
+ {
+ return (T)getProperty(key);
+ }
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.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/PropertySourceInformationKeys.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,32 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public interface PropertySourceInformationKeys
+{
+ static final String VALUE_BINDING_EXPRESSION = "value_binding_expression";
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.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/SourceInformation.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,38 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public interface SourceInformation
+{
+ boolean containsProperty(String key);
+ Object getProperty(String key);
+ <T> T getProperty(String key, Class<T> targetClass);
+ void setProperty(String key, Object value);
+
+ MetaDataEntry[] getMetaDataEntries();
+ void addMetaDataEntry(MetaDataEntry metaDataEntry);
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.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/extractor/DefaultComponentMetaDataExtractor.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,218 @@
+/*
+ * 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.extractor;
+
+import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
+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.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Default implementation which extracts the annotations of the value binding of a component.
+ * It extracts the annotation of the field and the property.
+ * (Also the annotations of super classes and interfaces.)
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultComponentMetaDataExtractor implements MetaDataExtractor
+{
+ protected final Log logger = LogFactory.getLog(getClass());
+
+ public DefaultComponentMetaDataExtractor()
+ {
+ if(logger.isDebugEnabled())
+ {
+ logger.debug(getClass().getName() + " instantiated");
+ }
+ }
+
+ @ToDo(Priority.MEDIUM)
+ public SourceInformation extract(FacesContext facesContext, Object object)
+ {
+ SourceInformation sourceInformation = new DefaultSourceInformation();
+
+ //should never occur
+ if (!(object instanceof UIComponent))
+ {
+ return sourceInformation;
+ }
+
+ UIComponent uiComponent = (UIComponent) object;
+
+ if(logger.isTraceEnabled())
+ {
+ logger.trace("start extracting meta-data of " + uiComponent.getClass().getName());
+ }
+
+ ValueBindingExpression vbe =
+ ExtValUtils.getELHelper().getValueBindingExpression(uiComponent);
+
+ if (vbe == null)
+ {
+ return sourceInformation;
+ }
+
+ /*
+ * get bean class and property name
+ */
+ Class entityClass = ExtValUtils.getELHelper()
+ .getTypeOfValueBindingForExpression(facesContext, vbe.getBaseExpression());
+
+ //create template entry
+ //TODO test with complex components
+ sourceInformation.setProperty(
+ PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, vbe.getExpressionString());
+
+ /*
+ * find and add annotations
+ */
+ Class currentClass = entityClass;
+
+ while (!Object.class.getName().equals(currentClass.getName()))
+ {
+ //TODO map syntax support
+ addPropertyAccessAnnotations(currentClass, vbe.getProperty(), sourceInformation);
+ addFieldAccessAnnotations(currentClass, vbe.getProperty(), sourceInformation);
+
+ currentClass = currentClass.getSuperclass();
+ }
+
+ for (Class currentInterface : entityClass.getInterfaces())
+ {
+ currentClass = currentInterface;
+
+ while (currentClass != null)
+ {
+ addPropertyAccessAnnotations(currentClass, vbe.getProperty(), sourceInformation);
+
+ currentClass = currentClass.getSuperclass();
+ }
+ }
+
+ if(logger.isTraceEnabled())
+ {
+ logger.trace("extract finished");
+ }
+
+ return sourceInformation;
+ }
+
+ protected void addPropertyAccessAnnotations(Class entity, String property,
+ SourceInformation sourceInformation)
+ {
+ property = property.substring(0, 1).toUpperCase() + property.substring(1);
+
+ Method method;
+
+ try
+ {
+ method = entity.getDeclaredMethod("get" + property);
+ }
+ catch (NoSuchMethodException e)
+ {
+ try
+ {
+ method = entity.getDeclaredMethod("is" + property);
+ }
+ catch (NoSuchMethodException e1)
+ {
+ if(logger.isTraceEnabled())
+ {
+ logger.trace("method not found - class: " + entity.getName()
+ + " - methods: " + "get" + property + " " + "is" + property);
+ }
+
+ return;
+ }
+ }
+
+ addAnnotationToAnnotationEntries(Arrays.asList(method.getAnnotations()), sourceInformation);
+ }
+
+ protected void addFieldAccessAnnotations(Class entity, String property,
+ SourceInformation sourceInformation)
+ {
+ Field field;
+
+ try
+ {
+ field = entity.getDeclaredField(property);
+ }
+ catch (Exception e)
+ {
+ try
+ {
+ field = entity.getDeclaredField("_" + property);
+ }
+ catch (NoSuchFieldException e1)
+ {
+ if(logger.isTraceEnabled())
+ {
+ logger.trace("field " + property + " or _" + property + " not found", e1);
+ }
+
+ return;
+ }
+ }
+
+ addAnnotationToAnnotationEntries(Arrays.asList(field.getAnnotations()), sourceInformation);
+ }
+
+ protected void addAnnotationToAnnotationEntries(
+ List<Annotation> annotations, SourceInformation sourceInformation)
+ {
+ for (Annotation annotation : annotations)
+ {
+ sourceInformation.addMetaDataEntry(createAnnotationEntry(annotation));
+
+ if(logger.isTraceEnabled())
+ {
+ logger.trace(annotation.getClass().getName() + " found");
+ }
+ }
+ }
+
+ protected MetaDataEntry createAnnotationEntry(Annotation foundAnnotation)
+ {
+ MetaDataEntry entry = new MetaDataEntry();
+
+ entry.setKey(foundAnnotation.annotationType().getName());
+ entry.setValue(foundAnnotation);
+
+ return entry;
+ }
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.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/extractor/DefaultComponentMetaDataExtractorFactory.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,95 @@
+/*
+ * 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.extractor;
+
+import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
+import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.CustomInfo;
+import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This factory creates an annotation extractor which extracts the annotation
+ * of the value binding of a component.
+ * <p/>
+ * order:<br/>
+ * <ol>
+ * <li>configured annotation extractor (web.xml)</li>
+ * <li>configured annotation extractor (information provider bean)</li>
+ * <li>default implementation</li>
+ * </ol>
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultComponentMetaDataExtractorFactory implements MetaDataExtractorFactory
+{
+ private final Log logger = LogFactory.getLog(getClass());
+
+ private static MetaDataExtractor metaDataExtractor = null;
+
+ public DefaultComponentMetaDataExtractorFactory()
+ {
+ if(logger.isDebugEnabled())
+ {
+ logger.debug(getClass().getName() + " instantiated");
+ }
+ }
+
+ @ToDo(value = Priority.MEDIUM, description = "logging")
+ public MetaDataExtractor create()
+ {
+ if (metaDataExtractor == null)
+ {
+ List<String> metaDataExtractorClassNames = new ArrayList<String>();
+
+ metaDataExtractorClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR);
+ metaDataExtractorClassNames
+ .add(ExtValContext.getContext().getInformationProviderBean()
+ .get(CustomInfo.COMPONENT_META_DATA_EXTRACTOR));
+ metaDataExtractorClassNames.add(DefaultComponentMetaDataExtractor.class.getName());
+
+ for (String className : metaDataExtractorClassNames)
+ {
+ metaDataExtractor = (MetaDataExtractor) ClassUtils.tryToInstantiateClassForName(className);
+
+ if (metaDataExtractor != null)
+ {
+ break;
+ }
+ }
+ }
+
+ if(logger.isTraceEnabled())
+ {
+ logger.trace(metaDataExtractor.getClass().getName() + " created");
+ }
+
+ return metaDataExtractor;
+ }
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.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/extractor/MetaDataExtractor.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,38 @@
+/*
+ * 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.extractor;
+
+import org.apache.myfaces.extensions.validator.core.metadata.SourceInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * An annotation extractor is responsible to analyze an object
+ * and returns all available annotations
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public interface MetaDataExtractor
+{
+ SourceInformation extract(FacesContext facesContext, Object object);
+}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.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/extractor/MetaDataExtractorFactory.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,34 @@
+/*
+ * 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.extractor;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+/**
+ * The interface for all factories which create annotation extractors
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public interface MetaDataExtractorFactory
+{
+ MetaDataExtractor create();
+}
Modified: 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=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java Sat Oct 11 13:06:12 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
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.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -48,9 +48,9 @@
}
}
- public final Map<String, Object> convertMetaData(AnnotationEntry annotationEntry)
+ public final Map<String, Object> convertMetaData(MetaDataEntry metaDataEntry)
{
- if(skipValidation(annotationEntry))
+ if(skipValidation(metaDataEntry))
{
if(logger.isTraceEnabled())
{
@@ -61,26 +61,26 @@
return results;
}
- return convert(annotationEntry);
+ return convert(metaDataEntry);
}
- protected boolean skipValidation(AnnotationEntry annotationEntry)
+ protected boolean skipValidation(MetaDataEntry metaDataEntry)
{
FacesContext facesContext = FacesContext.getCurrentInstance();
Boolean result = (Boolean) ExtValUtils.getELHelper()
- .getValueOfExpression(facesContext, new ValueBindingExpression(getSkipExpression(annotationEntry)));
+ .getValueOfExpression(facesContext, new ValueBindingExpression(getSkipExpression(metaDataEntry)));
if(logger.isTraceEnabled())
{
logger.trace(getClass() + "#skipValidation result of getSkipExpression: "
- + getSkipExpression(annotationEntry));
+ + getSkipExpression(metaDataEntry));
}
return result;
}
- protected String getSkipExpression(AnnotationEntry annotationEntry)
+ protected String getSkipExpression(MetaDataEntry metaDataEntry)
{
return "#{false}"; //default - don't skip
}
@@ -94,5 +94,5 @@
return new ArrayList<String>();
}
- protected abstract Map<String, Object> convert(AnnotationEntry annotation);
+ protected abstract Map<String, Object> convert(MetaDataEntry metaData);
}
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=703721&r1=703720&r2=703721&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 Sat Oct 11 13:06:12 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -48,23 +48,23 @@
private MetaDataTransformer metaDataTransformer;
private String metaDataTransformerClassName;
- public Map<String, Object> convert(AnnotationEntry annotationEntry)
+ public Map<String, Object> convert(MetaDataEntry metaDataEntry)
{
if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
{
- return ((AbstractMetaDataTransformer)this.metaDataTransformer).convert(annotationEntry);
+ return ((AbstractMetaDataTransformer)this.metaDataTransformer).convert(metaDataEntry);
}
- return this.metaDataTransformer.convertMetaData(annotationEntry);
+ return this.metaDataTransformer.convertMetaData(metaDataEntry);
}
@Override
- protected String getSkipExpression(AnnotationEntry annotation)
+ protected String getSkipExpression(MetaDataEntry metaData)
{
if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
{
- return ((AbstractMetaDataTransformer)this.metaDataTransformer).getSkipExpression(annotation);
+ return ((AbstractMetaDataTransformer)this.metaDataTransformer).getSkipExpression(metaData);
}
- return super.getSkipExpression(annotation);
+ return super.getSkipExpression(metaData);
}
@Override
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.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/MetaDataTransformer.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java Sat Oct 11 13:06:12 2008
@@ -20,7 +20,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import java.util.Map;
@@ -32,5 +32,5 @@
//*Transformer instead of *Converter to avoid naming confusion
public interface MetaDataTransformer
{
- Map<String, Object> convertMetaData(AnnotationEntry annotation);
+ Map<String, Object> convertMetaData(MetaDataEntry metaData);
}
Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.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/AbstractAnnotationValidationStrategy.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,87 @@
+/*
+ * 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.validation.strategy;
+
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.MessageResolver;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import java.lang.annotation.Annotation;
+import java.util.Locale;
+import java.util.MissingResourceException;
+
+/**
+ * Provides the ability of message resolving to ValidationStrategies
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation({UsageCategory.INTERNAL, UsageCategory.REUSE})
+public abstract class AbstractAnnotationValidationStrategy extends AbstractValidatorAdapter
+{
+ protected static final String DETAIL_MESSAGE_KEY_POSTFIX = "_details";
+ private MessageResolver messageResolver;
+
+ protected String resolveMessage(String key)
+ {
+ Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
+
+ return this.messageResolver != null ? this.messageResolver.getMessage(key, locale) :
+ ExtValUtils.getMessageResolverForValidationStrategy(this).getMessage(key, locale);
+ }
+
+ protected String getErrorMessageSummary(Annotation annotation)
+ {
+ return resolveMessage(getValidationErrorMsgKey(annotation));
+ }
+
+ protected String getErrorMessageDetails(Annotation annotation)
+ {
+ try
+ {
+ String key = getValidationErrorMsgKey(annotation);
+ return (key != null) ? resolveMessage(key + DETAIL_MESSAGE_KEY_POSTFIX) : null;
+ }
+ catch (MissingResourceException e)
+ {
+ if(logger.isWarnEnabled())
+ {
+ logger.warn("couldn't find key " + getValidationErrorMsgKey(annotation) + DETAIL_MESSAGE_KEY_POSTFIX,
+ e);
+ }
+ }
+ return null;
+ }
+
+ protected FacesMessage getValidationErrorFacesMassage(Annotation annotation)
+ {
+ return new FacesMessage(FacesMessage.SEVERITY_ERROR,
+ getErrorMessageSummary(annotation), getErrorMessageDetails(annotation));
+ }
+
+ protected abstract String getValidationErrorMsgKey(Annotation annotation);
+
+ public void setMessageResolver(MessageResolver messageResolver)
+ {
+ this.messageResolver = messageResolver;
+ }
+}
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=703721&r1=703720&r2=703721&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 Sat Oct 11 13:06:12 2008
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.validator.core.validation.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.el.ValueBindingExpression;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -30,7 +30,6 @@
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.
@@ -58,14 +57,14 @@
}
public void validate(FacesContext facesContext, UIComponent uiComponent,
- AnnotationEntry annotationEntry, Object convertedObject)
+ MetaDataEntry metaDataEntry, Object convertedObject)
{
if(logger.isTraceEnabled())
{
logger.trace("start initValidation of " + getClass().getName());
}
- if(skipValidation(facesContext, uiComponent, annotationEntry, convertedObject))
+ if(skipValidation(facesContext, uiComponent, metaDataEntry, convertedObject))
{
if(logger.isTraceEnabled())
{
@@ -74,7 +73,7 @@
return;
}
- initValidation(facesContext, uiComponent, annotationEntry, convertedObject);
+ initValidation(facesContext, uiComponent, metaDataEntry, convertedObject);
if(logger.isTraceEnabled())
{
@@ -88,7 +87,7 @@
logger.trace("start processValidation of " + getClass().getName());
}
- processValidation(facesContext, uiComponent, annotationEntry, convertedObject);
+ processValidation(facesContext, uiComponent, metaDataEntry, convertedObject);
if(logger.isTraceEnabled())
{
@@ -103,7 +102,7 @@
}
if (processAfterValidatorException(facesContext, uiComponent,
- annotationEntry, convertedObject, e))
+ metaDataEntry, convertedObject, e))
{
if(logger.isTraceEnabled())
{
@@ -123,9 +122,9 @@
}
protected boolean skipValidation(FacesContext facesContext, UIComponent uiComponent,
- AnnotationEntry annotationEntry, Object convertedObject)
+ MetaDataEntry metaDataEntry, Object convertedObject)
{
- String expression = getSkipExpression(annotationEntry.getAnnotation());
+ String expression = getSkipExpression(metaDataEntry.getValue());
//just for a better performance for "none-skipable" strategies
if(DO_NOT_SKIP.equals(expression))
@@ -144,14 +143,14 @@
return result;
}
- protected String getSkipExpression(Annotation annotation)
+ protected String getSkipExpression(Object metaData)
{
return DO_NOT_SKIP;
}
protected void initValidation(FacesContext facesContext,
UIComponent uiComponent,
- AnnotationEntry annotationEntry,
+ MetaDataEntry metaDataEntry,
Object convertedObject)
{
//override if needed
@@ -159,13 +158,13 @@
//override if needed
protected boolean processAfterValidatorException(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject, ValidatorException e)
{
return true;
}
protected abstract void processValidation(FacesContext facesContext,
- UIComponent uiComponent, AnnotationEntry annotationEntry,
+ UIComponent uiComponent, MetaDataEntry metaDataEntry,
Object convertedObject) throws ValidatorException;
}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.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/BeanValidationStrategyAdapterImpl.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java Sat Oct 11 13:06:12 2008
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.validator.core.validation.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.metadata.transformer.MetaDataTransformer;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.BeanMetaDataTransformerAdapter;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -59,10 +59,10 @@
public void validate(FacesContext facesContext,
UIComponent uiComponent,
- AnnotationEntry annotationEntry,
+ MetaDataEntry metaDataEntry,
Object convertedObject)
{
- this.validationStrategy.validate(facesContext, uiComponent, annotationEntry, convertedObject);
+ this.validationStrategy.validate(facesContext, uiComponent, metaDataEntry, convertedObject);
}
public String getValidationStrategyClassName()
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.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/DefaultValidationStrategyFactory.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java Sat Oct 11 13:06:12 2008
@@ -46,7 +46,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -62,33 +61,34 @@
*/
@ToDo(value = Priority.MEDIUM, description = "add generic java api (de-/register mapping)")
@UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
-public class DefaultValidationStrategyFactory implements ClassMappingFactory<Annotation, ValidationStrategy>
+public class DefaultValidationStrategyFactory implements ClassMappingFactory<String, ValidationStrategy>
{
protected final Log logger = LogFactory.getLog(getClass());
private static Map<String, String> annotationStrategyMapping = null;
- private static List<NameMapper<Annotation>> nameMapperList = new ArrayList<NameMapper<Annotation>>();
+ private static List<NameMapper<String>> metaDataKeyToValidationStrategyNameMapperList =
+ new ArrayList<NameMapper<String>>();
static
{
- nameMapperList
+ metaDataKeyToValidationStrategyNameMapperList
.add(new CustomConfiguredAnnotationToValidationStrategyNameMapper());
- nameMapperList
+ metaDataKeyToValidationStrategyNameMapperList
.add(new CustomConventionAnnotationToValidationStrategyNameMapper());
- nameMapperList
+ metaDataKeyToValidationStrategyNameMapperList
.add(new DefaultAnnotationToValidationStrategyNameMapper());
- nameMapperList
+ metaDataKeyToValidationStrategyNameMapperList
.add(new SimpleAnnotationToValidationStrategyNameMapper());
- nameMapperList
+ metaDataKeyToValidationStrategyNameMapperList
.add(new AnnotationToValidationStrategyBeanNameMapper(
new CustomConfiguredAnnotationToValidationStrategyNameMapper()));
- nameMapperList
+ metaDataKeyToValidationStrategyNameMapperList
.add(new AnnotationToValidationStrategyBeanNameMapper(
new CustomConventionAnnotationToValidationStrategyNameMapper()));
- nameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
+ metaDataKeyToValidationStrategyNameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
new DefaultAnnotationToValidationStrategyNameMapper()));
- nameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
+ metaDataKeyToValidationStrategyNameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
new SimpleAnnotationToValidationStrategyNameMapper()));
}
@@ -100,26 +100,24 @@
}
}
- public ValidationStrategy create(Annotation annotation)
+ public ValidationStrategy create(String metaDataKey)
{
if (annotationStrategyMapping == null)
{
initStaticMappings();
}
- String annotationName = annotation.annotationType().getName();
-
- if (annotationStrategyMapping.containsKey(annotationName))
+ if (annotationStrategyMapping.containsKey(metaDataKey))
{
- return getValidationStrategyInstance(annotationStrategyMapping.get(annotationName));
+ return getValidationStrategyInstance(annotationStrategyMapping.get(metaDataKey));
}
ValidationStrategy validationStrategy;
String strategyName;
//null -> use name mappers
- for (NameMapper<Annotation> nameMapper : nameMapperList)
+ for (NameMapper<String> nameMapper : metaDataKeyToValidationStrategyNameMapperList)
{
- strategyName = nameMapper.createName(annotation);
+ strategyName = nameMapper.createName(metaDataKey);
if (strategyName == null)
{
@@ -130,11 +128,10 @@
if (validationStrategy != null)
{
- addMapping(annotationName, strategyName);
+ addMapping(metaDataKey, strategyName);
return validationStrategy;
}
}
-
return null;
}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.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/ValidationStrategy.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java Sat Oct 11 13:06:12 2008
@@ -18,7 +18,7 @@
*/
package org.apache.myfaces.extensions.validator.core.validation.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.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -36,5 +36,5 @@
public interface ValidationStrategy
{
void validate(FacesContext facesContext, UIComponent uiComponent,
- AnnotationEntry annotationEntry, Object convertedObject);
+ MetaDataEntry metaDataEntry, Object convertedObject);
}
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.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/mapper/AbstractAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -24,14 +24,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.lang.annotation.Annotation;
-
/**
* @author Gerhard Petracek
* @since 1.x.1
*/
@UsageInformation(UsageCategory.INTERNAL)
-public abstract class AbstractAnnotationToValidationStrategyNameMapper implements NameMapper<Annotation>
+public abstract class AbstractAnnotationToValidationStrategyNameMapper implements NameMapper<String>
{
protected final Log logger = LogFactory.getLog(getClass());
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.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/mapper/AnnotationToValidationStrategyBeanNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java Sat Oct 11 13:06:12 2008
@@ -22,8 +22,6 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import java.lang.annotation.Annotation;
-
/**
* Name Mapper which delegates the name mapping, extract the name and convert it to a bean name + prefix
* target: configure a validation strategy via a managed bean facility -> allows to inject other beans
@@ -42,14 +40,14 @@
AbstractAnnotationToValidationStrategyNameMapper
{
public static final String PREFIX_FOR_BEAN_MAPPING = "bean:";
- private NameMapper<Annotation> wrapped;
+ private NameMapper<String> wrapped;
- public AnnotationToValidationStrategyBeanNameMapper(NameMapper<Annotation> nameMapper)
+ public AnnotationToValidationStrategyBeanNameMapper(NameMapper<String> nameMapper)
{
this.wrapped = nameMapper;
}
- public String createName(Annotation source)
+ public String createName(String source)
{
String name = wrapped.createName(source);
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.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/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -23,8 +23,6 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import java.lang.annotation.Annotation;
-
/**
* To provide a custom NameMapper to map Annotations to ValidationStrategies.
* (configured via web.xml)
@@ -34,7 +32,7 @@
*/
@UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
public class CustomConfiguredAnnotationToValidationStrategyNameMapper extends
- AbstractCustomNameMapper<Annotation>
+ AbstractCustomNameMapper<String>
{
protected String getCustomNameMapperClassName()
{
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.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/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -24,8 +24,6 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import java.lang.annotation.Annotation;
-
/**
* To provide a custom NameMapper to map Annotations to ValidationStrategies.
* (configured via information provider bean)
@@ -37,7 +35,7 @@
*/
@UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
public class CustomConventionAnnotationToValidationStrategyNameMapper extends
- AbstractCustomNameMapper<Annotation>
+ AbstractCustomNameMapper<String>
{
protected String getCustomNameMapperClassName()
{
Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.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/mapper/DefaultAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -22,8 +22,6 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import java.lang.annotation.Annotation;
-
/**
* Default implementation which maps ExtVal Annotations to ExtVal ValidationStrategies.
*
@@ -34,8 +32,8 @@
public class DefaultAnnotationToValidationStrategyNameMapper extends
AbstractAnnotationToValidationStrategyNameMapper
{
- public String createName(Annotation annotation)
+ public String createName(String metaDataKey)
{
- return InternalConventionProvider.getValidationStrategyClassName(annotation);
+ return InternalConventionProvider.getValidationStrategyClassName(metaDataKey);
}
}