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 2010/10/26 18:57:42 UTC
svn commit: r1027649 [1/2] - in
/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator:
core/el/ core/factory/ core/initializer/component/
core/initializer/configuration/ core/interceptor/ c...
Author: gpetracek
Date: Tue Oct 26 16:57:41 2010
New Revision: 1027649
URL: http://svn.apache.org/viewvc?rev=1027649&view=rev
Log:
EXTVAL-29
Modified:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ValueBindingExpression.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfiguration.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationEntry.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticInMemoryConfiguration.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticResourceBundleConfiguration.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/RendererInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationExceptionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/NameMapper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/SubMapperAwareNameMapper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/property/PropertyInformation.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/proxy/ProxyHelper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/recorder/ProcessedInformationRecorder.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipAfterInterceptorsException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipBeforeInterceptorsException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipRendererDelegationException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/MetaDataStorageFilter.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/StorageManager.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/StorageManagerHolder.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/ViolationSeverityInterpreterStorage.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/NullValueAwareValidationStrategy.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/SkipValidationEvaluator.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/TargetProperty.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/TargetPropertyId.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/RequiredValidatorException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/MessageResolver.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/ParameterKey.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/ParameterValue.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/ValidationParameter.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/ValidationParameterExtractor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/ValidationParameterExtractorFactory.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValAnnotationUtils.java
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ValueBindingExpression.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ValueBindingExpression.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ValueBindingExpression.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ValueBindingExpression.java Tue Oct 26 16:57:41 2010
@@ -25,7 +25,8 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
/**
- * Object that stores the different parts of an expression string.
+ * An instance of this class stores the different parts of an expression string and
+ * allows an easier usage of value-bindings.
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -42,12 +43,15 @@ public class ValueBindingExpression
private static final ELHelper EL_HELPER = ExtValUtils.getELHelper();
/**
- * Replace the property of the expression by the new property specified as parameter or add the property when
- * expression has no property yet. When the expression doesn't have a property (like {#bean}), the property is
- * added to the base expression.
- * @param valueBindingExpression The valueBindingExpression where we want to replace or add the property.
+ * The given property is used as new property of the expression.
+ * Examples for 'newProperty':<br/>
+ * #{bean} -> #{bean.newProperty}
+ * <p/>
+ * #{bean.property} -> #{bean.newProperty}
+ *
+ * @param valueBindingExpression The target instance of {@link ValueBindingExpression}
* @param newProperty The property to use.
- * @return The resulting valueBindingExpression where property is replaced or added.
+ * @return The resulting {@link ValueBindingExpression} (with the new property)
*/
public static ValueBindingExpression replaceOrAddProperty(ValueBindingExpression valueBindingExpression,
String newProperty)
@@ -63,11 +67,11 @@ public class ValueBindingExpression
}
/**
- * Replace the property in the expression string by the property specified as parameter.
+ * Replace the property in the expression string with the given property.
*
* @param valueBindingExpression The valueBindingExpression where we want to replace the property
- * @param newProperty The property to use.
- * @return The resulting valueBindingExpression where property is replaced.
+ * @param newProperty The new property which should replace the existing one.
+ * @return The resulting {@link ValueBindingExpression} (with the new property)
*/
public static ValueBindingExpression replaceProperty(ValueBindingExpression valueBindingExpression,
String newProperty)
@@ -89,11 +93,11 @@ public class ValueBindingExpression
}
/**
- * Add the property to the expression string.
+ * Adds the property to the given {@link ValueBindingExpression}.
*
* @param valueBindingExpression The valueBindingExpression where we want to add the property
* @param newProperty The property to add.
- * @return The resulting valueBindingExpression where property is added.
+ * @return The resulting {@link ValueBindingExpression} (with the new property)
*/
public static ValueBindingExpression addProperty(ValueBindingExpression valueBindingExpression, String newProperty)
{
@@ -112,9 +116,8 @@ public class ValueBindingExpression
}
/**
- * Creates an instance of a ValueBindingExpression based on a well formed EL expression. The creation is a recursive
- * process that extracts the last property, the token the property is separated from the rest (. or [/[') and the
- * text before the token as a new (ValueBinding)Expression. see the tests for some
+ * Creates an instance of a ValueBindingExpression based on a well formed EL expression.
+ *
* @param expression The EL expression
*/
public ValueBindingExpression(String expression)
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java Tue Oct 26 16:57:41 2010
@@ -23,9 +23,7 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
/**
- * Factory that works with NameMappers to define what should be created. The factory ask each name mapper for a possible
- * candidate for creation (name mappers can be ordered) and return the result of the first that answers with a non null
- * value.
+ * Interface for factories which are using {@link NameMapper}s for creating instances.
*
* @author Gerhard Petracek
* @since 1.x.2
@@ -34,22 +32,23 @@ import org.apache.myfaces.extensions.val
public interface NameMapperAwareFactory<T extends NameMapper>
{
/**
- * Register the NameMapper for usage. When nameMapper is used in a call to the deny method, it isn't registered
- * and there is no further trace of this deny action.
- *
- * @param classToAdd nameMapper to add.
+ * Registers a new {@link NameMapper} which should be used for the mapping process.
+ * It will be used if it isn't denied.
+ *
+ * @param classToAdd {@link NameMapper} to add
*/
void register(T classToAdd);
/**
- * Removes the nameMapper from the list.
+ * Removes all {@link NameMapper}s of the given type.
* @param classToDeregister nameMapper to remove.
*/
void deregister(Class<? extends NameMapper> classToDeregister);
/**
- * Deregister the nameMapper and makes sure that the nameMapper can't be registered in the future..
- * @param classToDeny nameMapper to deny, this is, deregister and doesn't allow registration in the future.
+ * Deregisters existing {@link NameMapper}s of the given type and deny the type for {@link NameMapper} which
+ * might be added later on.
+ * @param classToDeny {@link NameMapper} to deny
*/
void deny(Class<? extends NameMapper> classToDeny);
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/AbstractHtmlCoreComponentsComponentInitializer.java Tue Oct 26 16:57:41 2010
@@ -41,8 +41,8 @@ import javax.faces.component.html.HtmlIn
import java.util.Map;
/**
- * Basic implementation of a ComponentInitializer that could be used for concrete versions in the validation modules or
- * custom made ComponentInitializer.
+ * Basic implementation of a {@link ComponentInitializer} which allows an easier handling of required validations and
+ * provides a default implementation for standard components.
*
* @author Gerhard Petracek
* @since x.x.3
@@ -51,19 +51,18 @@ import java.util.Map;
public abstract class AbstractHtmlCoreComponentsComponentInitializer implements ComponentInitializer
{
/**
- * When the component is one of the standard input components, the max length attribute is configured and the
- * required attribute is configured when empty fields need to be validated and required initialization is active
- * by the configuration.
+ * If the component is one of the standard input components, the max length attribute is configured and the
+ * required attribute is configured (if empty field validation and required initialization is activated)
*
* @param facesContext The JSF Context
- * @param uiComponent The component that should be initialised
- * @param metaData Information from the MetaDataEntry in the abstract form.
+ * @param uiComponent The component which should be initialised
+ * @param metaData map which contains the transformed meta-data
*/
public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
{
if(processComponent(uiComponent))
{
- if(validateEmptyFields() && ExtValUtils.isRequiredInitializationActive())
+ if(validateEmptyFields() && isRequiredInitializationActive())
{
configureRequiredAttribute(facesContext, uiComponent, metaData);
}
@@ -73,9 +72,10 @@ public abstract class AbstractHtmlCoreCo
}
/**
- * Checks if in the configuration is set that empty fields should be validated.
+ * Uses the config introduced by JSF 2 for specifying if
+ * fields without content should be available for required validation.
*
- * @return Do we need to validate empty fields.
+ * @return true if fields with empty values should be validated, false otherwise.
*/
protected boolean validateEmptyFields()
{
@@ -83,20 +83,31 @@ public abstract class AbstractHtmlCoreCo
}
/**
- * Concrete implementation need to determine if they set the required attribute based on the supplied information.
- * Be aware that this method is only called when certain conditions are met, see configureComponent method.
+ * Uses the config introduced by prev. ExtVal versions for specifying if
+ * required initialization should be used
+ * (it's useful e.g. for client-side validations provided by libs like trinidad).
+ *
+ * @return true if ExtVal should transfer meta-data for required fields to the component
+ */
+ protected boolean isRequiredInitializationActive()
+ {
+ return ExtValUtils.isRequiredInitializationActive();
+ }
+
+ /**
+ * The concrete implementation has to initialize the component based on the given meta-data map.
+ * This method is only called if all pre-conditions are fulfilled.
*
* @param facesContext The JSF Context
* @param uiComponent The UIComponent which should be configured.
- * @param metaData Information from the MetaDataEntry in the abstract form.
+ * @param metaData map which contains the transformed meta-data
*/
protected abstract void configureRequiredAttribute(FacesContext facesContext,
- UIComponent uiComponent,
- Map<String, Object> metaData);
+ UIComponent uiComponent,
+ Map<String, Object> metaData);
/**
- * When the component is an editableValueHolder which is supported, the method returns true so that component
- * initialization can take place.
+ * Activates the implementation for special components (-> other components will be ignored).
*
* @param uiComponent The UIComponent which should be configured.
* @return Should the component be initialized.
@@ -104,15 +115,15 @@ public abstract class AbstractHtmlCoreCo
protected boolean processComponent(UIComponent uiComponent)
{
return uiComponent instanceof HtmlInputText ||
- uiComponent instanceof HtmlInputSecret ||
- uiComponent instanceof HtmlSelectBooleanCheckbox ||
- uiComponent instanceof HtmlSelectOneListbox ||
- uiComponent instanceof HtmlSelectOneMenu ||
- uiComponent instanceof HtmlSelectOneRadio ||
- uiComponent instanceof HtmlSelectManyCheckbox ||
- uiComponent instanceof HtmlSelectManyListbox ||
- uiComponent instanceof HtmlSelectManyMenu ||
- uiComponent instanceof HtmlInputTextarea;
+ uiComponent instanceof HtmlInputSecret ||
+ uiComponent instanceof HtmlSelectBooleanCheckbox ||
+ uiComponent instanceof HtmlSelectOneListbox ||
+ uiComponent instanceof HtmlSelectOneMenu ||
+ uiComponent instanceof HtmlSelectOneRadio ||
+ uiComponent instanceof HtmlSelectManyCheckbox ||
+ uiComponent instanceof HtmlSelectManyListbox ||
+ uiComponent instanceof HtmlSelectManyMenu ||
+ uiComponent instanceof HtmlInputTextarea;
}
/**
@@ -134,17 +145,17 @@ public abstract class AbstractHtmlCoreCo
}
/**
- * Set the max length specified in the validation constraints, if any, as value of the maxLength attribute of the
- * component. The length is searched with the value CommonMetaDataKeys.MAX_LENGTH as key and is only set when the
- * component is a HtmlInputText or a HtmlInputSecret.
+ * This default implementation uses the transformed meta-data stored via the ({@link CommonMetaDataKeys#MAX_LENGTH}
+ * key for initializing e.g. the maxLength attribute of the current component
+ * (of type {@link HtmlInputText} or {@link HtmlInputSecret}.
*
* @param facesContext The JSF Context
* @param uiComponent The component to configure.
- * @param metaData Information from the MetaDataEntry in the abstract form.
+ * @param metaData map which contains the transformed meta-data
*/
protected void configureMaxLengthAttribute(FacesContext facesContext,
- UIComponent uiComponent,
- Map<String, Object> metaData)
+ UIComponent uiComponent,
+ Map<String, Object> metaData)
{
if(metaData.containsKey(CommonMetaDataKeys.MAX_LENGTH))
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfiguration.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfiguration.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfiguration.java Tue Oct 26 16:57:41 2010
@@ -24,9 +24,9 @@ import org.apache.myfaces.extensions.val
import java.util.List;
/**
- * Mechanism to define some implementation classes of ExtVal concept. The configuration resembles the services
- * approach.
- *
+ * Allows to provide static configurations (mappings).
+ * The config format depends on the implementation.
+ *
* @author Gerhard Petracek
* @since 1.x.1
*/
@@ -34,16 +34,16 @@ import java.util.List;
public interface StaticConfiguration<T, R>
{
/**
- * Specify the file location where configuration can be found.
+ * Specify the location where the configuration can be found.
*
* @param path file location of the configuration.
*/
void setSourceOfMapping(String path);
/**
- * Retrieves the information. The return result can be cached for performance reasons. The method should always
- * return an object and never null.
+ * Returns all config entries found in the specified config.
+ *
* @return List of configuration entries.
*/
List<StaticConfigurationEntry<T, R>> getMapping();
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationEntry.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationEntry.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationEntry.java Tue Oct 26 16:57:41 2010
@@ -22,7 +22,7 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
/**
- * POJO data class to store the mapping between source and target by using generics.
+ * Configuration entry for easier handling of key/value pairs.
*
* @author Gerhard Petracek
* @since 1.x.1
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java Tue Oct 26 16:57:41 2010
@@ -22,7 +22,7 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
/**
- * List of all concepts where a StaticConfiguration is/can be defined for.
+ * List of all artifacts which can be configured via static mappings ({@link StaticConfiguration}).
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -37,4 +37,4 @@ public enum StaticConfigurationNames
SKIP_VALIDATION_SUPPORT_CONFIG,
VALIDATION_PARAMETER_CONFIG
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticInMemoryConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticInMemoryConfiguration.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticInMemoryConfiguration.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticInMemoryConfiguration.java Tue Oct 26 16:57:41 2010
@@ -25,10 +25,9 @@ import java.util.List;
import java.util.ArrayList;
/**
- * Implementation of the StaticConfiguration interface that can be used to programmatically add some implementation
- * entries.
- * See for an example org.apache.myfaces.extensions.validator.PropertyValidationModuleStartupListener
- * #addSkipValidationSupport().
+ * Implementation of the {@link StaticConfiguration} interface for in-memory configs.
+ * It's an implementation which helps to create custom config approaches easily.
+ *
* @author Gerhard Petracek
* @since 1.x.1
*/
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticResourceBundleConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticResourceBundleConfiguration.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticResourceBundleConfiguration.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticResourceBundleConfiguration.java Tue Oct 26 16:57:41 2010
@@ -27,7 +27,7 @@ import java.util.Enumeration;
import java.util.ArrayList;
/**
- * Implementation of the StaticConfiguration interface that uses resource bundles to load the information.
+ * Default implementation of the {@link StaticConfiguration} interface for property-file based configs.
*
* @author Gerhard Petracek
* @since 1.x.1
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java Tue Oct 26 16:57:41 2010
@@ -47,12 +47,13 @@ import java.util.HashMap;
import java.util.logging.Level;
/**
- * A basic implementation of a RendererInterceptor for validating fields. It adds some extension point for subclasses
- * and performs tasks like : <br/>
- * - storing field values (recordProcessedInformation) <br/>
+ * A basic implementation of {@link RendererInterceptor} for validating fields.
+ * It adds some extension point for subclasses and performs tasks like : <br/>
+ * - storing field values ({@link #recordProcessedInformation}) <br/>
* - resetting required information property UIComponent <br/>
* - calling before and after Validation interceptors <br/>
* - etc ...
+ *
* @author Gerhard Petracek
* @since x.x.3
*/
@@ -62,27 +63,25 @@ public abstract class AbstractValidation
private ELHelper elHelper;
/**
- * Defines if the required option of UIComponents need to be set to false after a decode. It is one of the
- * conditions that determine if the false is set. see afterDecode method in this class.
+ * In case of required initialization
+ * it's needed for some use-cases to reset the (required-)state of the components.
+ * Such a reset is just needed if required initialization is activated.
*
- * @return false when required property should not be reset to false.
+ * @return true if required initialization is supported by the current implementation, false otherwise
*/
protected boolean isRequiredInitializationSupported()
{
return false;
}
- @Override
/**
- * Sets required property of UIComponent to false after decoding when the isRequiredResetActivated and
- * isRequiredInitializationActive methods of ExtValUtils indicate that required property should be set and reset.
+ * Sets required property of UIComponent to false after decoding.
+ * It's needed for special use-cases if required initialization is supported.
+ * The final required validation will be done by the corresponding constraint validator.
*
- * @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the apply request values JSF phase.
- * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the afterDecode
- * methods of the registered interceptors.
+ * {@inheritDoc}
*/
+ @Override
public void afterDecode(FacesContext facesContext, UIComponent uiComponent, Renderer wrapped)
throws SkipAfterInterceptorsException
{
@@ -98,20 +97,13 @@ public abstract class AbstractValidation
}
}
- @Override
/**
- * When the component should be processed and component initialization is not deactivated, the initialization of
- * the UIComponent is performed. The initialization can be that the required and length properties are set based
- * on the annotations found on the property of the target property.
+ * Before the component gets rendered the interceptor initializes the component based on the meta-data
+ * which is provided by the referenced property (if component initialization is activated).
*
- * @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the render response JSF phase.
- * @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeEncodeBegin methods of
- * the registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeEncodeBegin method.
+ * {@inheritDoc}
*/
+ @Override
public void beforeEncodeBegin(FacesContext facesContext, UIComponent uiComponent, Renderer wrapped)
throws IOException, SkipBeforeInterceptorsException, SkipRendererDelegationException
{
@@ -122,20 +114,19 @@ public abstract class AbstractValidation
}
/**
- * Initialize the component based on the annotations found on the property of the target property. The properties
- * that can be set are for instance the length and required attribute of the Component.
+ * Initialize the component based on the meta-data which is provided by the referenced property.
*
* @param facesContext The JSF Context
* @param uiComponent The component which is processed
*/
protected abstract void initComponent(FacesContext facesContext, UIComponent uiComponent);
- @Override
/**
* The method performs the validation of the field and calls the registered interceptors regarding the validation.
+ *
* The main steps are :<br/>
* - Get the converted value from the renderer (possibly cached by the RendererProxy)<br/>
- * - Store the value for use in the cross validation options <br/>
+ * - Record the value (e.g. for cross validation)<br/>
* - Adjust the converted value for interpret empty values as null.<br/>
* - Execute the beforeValidation method of the registered PropertyValidationInterceptor's. <br/>
* - Perform the validation when the PropertyValidationInterceptor have indicate it that it should be performed.
@@ -144,17 +135,10 @@ public abstract class AbstractValidation
* exception <br/>
* - Execute the afterValidation method of the registered PropertyValidationInterceptor's. (when validation actually
* tooks place)
- * @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param submittedValue The submitted value
- * @param renderer The renderer that will be called for the apply request values JSF phase.
- * @throws ConverterException ExtVal validation strategies can throw ValidationExceptions which are converted by
- * AbstractValidationInterceptor
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeGetConvertedValue
- * methods of the registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeGetConvertedValue
- * method.
+ *
+ * {@inheritDoc}
*/
+ @Override
public void beforeGetConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object o, Renderer wrapped)
throws ConverterException, SkipBeforeInterceptorsException, SkipRendererDelegationException
{
@@ -256,11 +240,11 @@ public abstract class AbstractValidation
}
/**
- * Get the property information of the UIComponent from the MetaDataExtractor.
+ * Extrancts the {@link PropertyInformation} for the given component.
*
* @param facesContext The JSF Context
* @param uiComponent The UIComponent which is processed.
- * @return All the information about the UIComponent (like annotations, custom info from Extractor, etc)
+ * @return the information of the referenced property (e.g. base object, property name, meta-data, ...)
*/
protected PropertyInformation getPropertyInformation(FacesContext facesContext, UIComponent uiComponent)
{
@@ -272,28 +256,9 @@ public abstract class AbstractValidation
}
/**
- * Create the properties which will be used by the selection of the MetaDataExtractor. By default it adds the
- * ModuleKey (if available) and the UIComponent.
- *
- * @param uiComponent The UIComponent which is processed.
- * @return properties used by the selection of the MetaDataExtractor
- */
- protected Map<String, Object> getPropertiesForComponentMetaDataExtractor(UIComponent uiComponent)
- {
- Map<String, Object> properties = new HashMap<String, Object>();
-
- if(getModuleKey() != null)
- {
- properties.put(ValidationModuleKey.class.getName(), getModuleKey());
- }
- properties.put(UIComponent.class.getName(), uiComponent);
- return properties;
- }
-
- /**
* Implementations must return the MetaDataExtractor that will perform the extraction of the meta data from the
- * component. The component itself is present in the properties map when it would influence the type of Extractor
- * which is returned.
+ * component. The component itself is present in the properties map (it might influence the type of the returned
+ * {@link MetaDataExtractor}.
*
* @param properties Properties that can be used to determine the extractor which is returned.
* @return The MetaDataExtractor used for performing the xtraction of the meta data from the component.
@@ -317,12 +282,11 @@ public abstract class AbstractValidation
}
/**
- * Determines if the value should be validated in case it is empty (null or no characters in string). If it happens
- * to be empty and the configuration indicates that we don't need to validate such values, the method return false
- * and no ExtVal validations will be performed.
+ * Evaluates if the value should be validated in case it is empty (null or no characters).
+ * ExtVal also uses a config parameter introduced by JSF 2 which allows to skip the validation of empty fields.
*
* @param convertedObject The converted value.
- * @return Should the value be converted?
+ * @return true if the given value should be validated, false otherwise
*/
protected boolean validateValue(Object convertedObject)
{
@@ -339,8 +303,9 @@ public abstract class AbstractValidation
/**
* Defines if a value is empty. The definition of empty is that it is null or has no characters in the String value.
+ *
* @param convertedObject The converted value.
- * @return is the value empty?
+ * @return true if the given value is the representation of an empty value
*/
protected boolean isValueToValidateEmpty(Object convertedObject)
{
@@ -348,8 +313,10 @@ public abstract class AbstractValidation
}
/**
- * Check if empty fields should be validated based on the configuration parameter javax.faces.VALIDATE_EMPTY_FIELDS.
- * @return Do we need to validate empty fields.
+ * Uses a config parameter (javax.faces.VALIDATE_EMPTY_FIELDS) which was introduced by JSF 2 for deactivating
+ * the validation of empty fields.
+ *
+ * @return true if the validation of empty fields is enabled, false otherwise
*/
protected boolean validateEmptyFields()
{
@@ -357,10 +324,10 @@ public abstract class AbstractValidation
}
/**
- * Check if empty string values should be interpret as null based on the configuration parameter
- * javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL.
+ * Uses a config parameter (javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL)
+ * which was introduced by JSF 2 for converting empty strings to null.
*
- * @return Do we need to interpret empty String values as null.
+ * @return true if an empty string should be replaced with null (for the validation process), false otherwise
*/
protected boolean interpretEmptyStringValuesAsNull()
{
@@ -368,21 +335,20 @@ public abstract class AbstractValidation
}
/**
- * Perform the actual validation of the value.
+ * A concrete implementation has to perform the actual validation of the value.
*
* @param facesContext The JSF Context
* @param uiComponent The UIComponent which is processed.
- * @param convertedObject The adjusted converted value.
+ * @param convertedObject The (adjusted) converted value.
*/
protected abstract void processValidation(
FacesContext facesContext, UIComponent uiComponent, Object convertedObject);
/**
- * Determines if the value of the UIComponent needs to be processed. By default it is so when the component is a
- * EditableValueHolder and the value binding can be interpreted.
+ * Based on basic rules the method checks if the current component should be processed.
*
* @param uiComponent The UIComponent which is processed.
- * @return Do we need to process the UIComponent
+ * @return true if the given component should be processed by the current interceptor, false otherwise
*/
protected boolean processComponent(UIComponent uiComponent)
{
@@ -402,12 +368,6 @@ public abstract class AbstractValidation
return this.elHelper;
}
- /**
- * Determines if the value binding of the component is valid. That is, it can be processed by the ELHelper.
- * {@see org.apache.myfaces.extensions.validator.core.el.ELHelper#getPropertyDetailsOfValueBinding(javax.faces.component.UIComponent)}
- * @param uiComponent The UIComponent which is processed.
- * @return Is the value binding correct, interpretable by ExtVal.
- */
private boolean isValueBindingOfComponentValid(UIComponent uiComponent)
{
try
@@ -420,18 +380,14 @@ public abstract class AbstractValidation
}
}
- /**
- * Checks from the configuration if the component initialization is deactivated.
- * @return Is the component initialization deactivated.
- */
private boolean isComponentInitializationDeactivated()
{
return ExtValCoreConfiguration.get().deactivateComponentInitialization();
}
/**
- * Will the converted value be stored for the cross validation feature. By default it is not stored.
- * @return will the the converted value be stored.
+ * Signals if the converted value should be stored e.g. for the cross-validation process.
+ * @return true if the converted value should be recorded, false otherwise
*/
protected boolean recordProcessedInformation()
{
@@ -440,7 +396,9 @@ public abstract class AbstractValidation
}
/**
- * Identification of the validation module. By default it returns null so no module is assigned.
+ * Identification of the validation module.
+ * A key is just needed if other implementations should be restricted to 1-n special validation modules.
+ *
* @return Identification of the validation module.
*/
protected Class getModuleKey()
@@ -450,6 +408,20 @@ public abstract class AbstractValidation
}
/**
+ * Create the properties which can be used by a {@link MetaDataExtractor}.
+ * By default it adds a key which identifies the current validation-module
+ * and the current component (to avoid changes of the api for quite special use-cases).
+ *
+ * @param uiComponent The UIComponent which is processed.
+ * @return properties used by the selection of the MetaDataExtractor
+ */
+ protected Map<String, Object> getPropertiesForComponentMetaDataExtractor(UIComponent uiComponent)
+ {
+ return createProperties(uiComponent);
+ }
+
+ /**
+ * Create the properties which can be used by a {@link MetaDataExtractor}.
* Returns the properties which will be made available to interceptors. By default the moduleKey and the UIComponent
* itself is added.
*
@@ -458,6 +430,11 @@ public abstract class AbstractValidation
*/
protected Map<String, Object> getInterceptorProperties(UIComponent uiComponent)
{
+ return createProperties(uiComponent);
+ }
+
+ private Map<String, Object> createProperties(UIComponent uiComponent)
+ {
Map<String, Object> result = new HashMap<String, Object>();
if(getModuleKey() != null)
@@ -470,7 +447,7 @@ public abstract class AbstractValidation
}
/**
- * Store the interceptor properties in the RendererInterceptorPropertyStorage.
+ * Stores additional properties for the current process (to avoid api changes).
*
* @param uiComponent The UIComponent which is processed.
*/
@@ -485,10 +462,6 @@ public abstract class AbstractValidation
}
}
- /**
- * remove the interceptor properties from the RendererInterceptorPropertyStorage.
- * @param uiComponent The UIComponent which is processed.
- */
private void resetRendererInterceptorProperties(UIComponent uiComponent)
{
RendererInterceptorPropertyStorage interceptorPropertyStorage = getRendererInterceptorPropertyStorage();
@@ -499,11 +472,6 @@ public abstract class AbstractValidation
}
}
- /**
- * Retrieves the RendererInterceptorPropertyStorage defined in the ExtVal system.
- *
- * @return The RendererInterceptorPropertyStorage
- */
private RendererInterceptorPropertyStorage getRendererInterceptorPropertyStorage()
{
return ExtValUtils.getStorage(RendererInterceptorPropertyStorage.class,
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java Tue Oct 26 16:57:41 2010
@@ -24,8 +24,8 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.core.InvocationOrderSupport;
/**
- * Allows to intercept into the work of the
- * {@link org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor}
+ * Allows to post-process the result of the meta-data extraction process (see
+ * {@link org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor})
*
* @author Gerhard Petracek
* @since 1.x.2
@@ -35,7 +35,9 @@ import org.apache.myfaces.extensions.val
public interface MetaDataExtractionInterceptor
{
/**
- * Perform any additional actions on the PropertyInformation data after the extraction is performed and before it is
+ * Allows to execute additional actions on the
+ * {@link org.apache.myfaces.extensions.validator.core.property.PropertyInformation}
+ * data after the extraction is performed and before it is
* used to determine validation strategies or UIComponent adjustments.
*
* @param propertyInformation the information entry which contains information about the property
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java Tue Oct 26 16:57:41 2010
@@ -28,7 +28,11 @@ import javax.faces.component.UIComponent
import java.util.Map;
/**
- * Interface to define interceptors that can perform logic before and after the validations are executed.
+ * Property-validation interceptors allow to intercept the validation of a property. It's possible to register a
+ * global interceptor which intercepts the validation process of all properties or a local interceptor
+ * (= a {@link org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameter} which allows
+ * to intercept the validation of the constraint which hosts the interceptor as
+ * {@link org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameter}.
*
* @author Gerhard Petracek
* @since x.x.3
@@ -38,12 +42,14 @@ import java.util.Map;
public interface PropertyValidationInterceptor extends ValidationParameter
{
/**
- * Executed before the RendererInterceptor calls the validation Strategies to validate the converted value.
+ * Executed before the {@link org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy
+ * validation strategies} are invoked to validate the converted value.
*
* @param facesContext The JSF Context
* @param uiComponent The component which is processed
* @param convertedObject The converted object
- * @param properties Additional information of interest. Contains the PropertyInformation object.
+ * @param properties Additional information of interest. Contains e.g. the
+ * {@link org.apache.myfaces.extensions.validator.core.property.PropertyInformation} extracted from the component.
* @return false if the validation process should be bypassed
*/
boolean beforeValidation(FacesContext facesContext,
@@ -52,12 +58,14 @@ public interface PropertyValidationInter
Map<String, Object> properties);
/**
- * Processed if validation was executed
- * in contrast to ValidationExceptionInterceptor it gets executed in any case.
+ * Processed if validation was executed.
+ * In contrast to a {@link org.apache.myfaces.extensions.validator.core.interceptor.ValidationExceptionInterceptor
+ * ValidationExceptionInterceptor} it gets executed in any case.
* @param facesContext The JSF Context
* @param uiComponent The component which is processed
* @param convertedObject The converted object
- * @param properties Additional information of interest. Contains the PropertyInformation object.
+ * @param properties Additional information of interest. Contains e.g. the
+ * {@link org.apache.myfaces.extensions.validator.core.property.PropertyInformation} extracted from the component.
*/
void afterValidation(FacesContext facesContext,
UIComponent uiComponent,
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/RendererInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/RendererInterceptor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/RendererInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/RendererInterceptor.java Tue Oct 26 16:57:41 2010
@@ -32,7 +32,8 @@ import java.io.IOException;
/**
* Allows to intercept renderer methods.<br/>
- * Base mechanism of extval. It allows to add custom infrastructures.
+ * It's the base mechanism of ExtVal which enables most of the concepts provided by the framework.
+ * Furthermore, it allows to add custom concepts.
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -43,11 +44,11 @@ public interface RendererInterceptor
String getInterceptorId();
/**
- * Defines the value for the converted value that should be returned by the getConvertedValue method of the
- * Renderer in case the there was a SkipRendererDelegationException thrown.
- * @param skipRendererDelegationException The exception thrown to abort RendererInterceptor execution.
- * @param currentReturnValue The converted value that is defined at this time. This can be null also when the
- * user has inputted some text in case of an Exception during the beforeConvertedValue 'phase'
+ * In case of the converted value it defines the value that should be returned by the getConvertedValue method
+ * in case there was a {@link SkipRendererDelegationException}.
+ *
+ * @param skipRendererDelegationException The exception thrown to abort further {@link RendererInterceptor}s.
+ * @param currentReturnValue The converted value that is defined at this time.
* @return value that should be used as converted value.
*/
Object getReturnValueOnSkipRendererDelegationException(
@@ -58,75 +59,74 @@ public interface RendererInterceptor
*/
/**
- * The "before decode phase" of ExtVal. The code is executed before the decode method is executed of the Renderer.
- * @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the apply request values JSF phase.
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeDecode methods of the
- * registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeDecode method and allows
- * additional interceptors to run and change the converted value.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('before').
+ *
+ * @param facesContext The JSF Context
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
+ * @throws SkipBeforeInterceptorsException can be thrown to stop the execution of the subsequent interceptors
+ * @throws SkipRendererDelegationException can be thorwn to skip the invocation of the intercepted renderer method.
*/
void beforeDecode(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws SkipBeforeInterceptorsException, SkipRendererDelegationException;
/**
- * The "before encode phase" of ExtVal. The code is executed before the encodeBegin method is executed of the
- * Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('before').
+ *
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the render response JSF phase.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
* @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeEncodeBegin methods of
- * the registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeEncodeBegin method.
+ * @throws SkipBeforeInterceptorsException can be thrown to stop the execution of the subsequent interceptors
+ * @throws SkipRendererDelegationException can be thorwn to skip the invocation of the intercepted renderer method.
*/
void beforeEncodeBegin(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws IOException, SkipBeforeInterceptorsException, SkipRendererDelegationException;
/**
- * The "before encode children phase" of ExtVal. The code is executed before the encodeChildren method is executed
- * of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('before').
+ *
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the render response JSF phase.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
* @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeEncodeChildren methods
- * of the registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeEncodeChildren method.
+ * @throws SkipBeforeInterceptorsException can be thrown to stop the execution of the subsequent interceptors
+ * @throws SkipRendererDelegationException can be thorwn to skip the invocation of the intercepted renderer method.
*/
void beforeEncodeChildren(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws IOException, SkipBeforeInterceptorsException, SkipRendererDelegationException;
/**
- * The "before encode end phase" of ExtVal. The code is executed before the encodeEnd method is executed
- * of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('before').
*
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the render response JSF phase.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
* @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeEncodeEnd methods of the
- * registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeEncodeEnd method.
+ * @throws SkipBeforeInterceptorsException can be thrown to stop the execution of the subsequent interceptors
+ * @throws SkipRendererDelegationException can be thorwn to skip the invocation of the intercepted renderer method.
*/
void beforeEncodeEnd(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws IOException, SkipBeforeInterceptorsException, SkipRendererDelegationException;
/**
- * The "before get converted value phase" of ExtVal. The code is executed before the getConvertedValue method is
- * executed of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('before').
*
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
+ * @param uiComponent The current component
* @param submittedValue The submitted value
- * @param renderer The renderer that will be called for the apply request values JSF phase.
- * @throws ConverterException ExtVal validation strategies can throw ValidationExceptions which are converted by
- * AbstractValidationInterceptor
- * @throws SkipBeforeInterceptorsException Can be thrown to stop the execution of the beforeGetConvertedValue
- * methods of the registered interceptors.
- * @throws SkipRendererDelegationException Can be thrown to stop the execution of the beforeGetConvertedValue
- * method.
+ * @param renderer The intercepted renderer
+ * @throws ConverterException ExtVal validation strategies can throw
+ * {@link javax.faces.validator.ValidatorException}s.
+ * Due to the trick used by ExtVal it has to be converted to a {@link ConverterException}
+ * (see {@link AbstractValidationInterceptor}).
+ * @throws SkipBeforeInterceptorsException can be thrown to stop the execution of the subsequent interceptors
+ * @throws SkipRendererDelegationException can be thorwn to skip the invocation of the intercepted renderer method.
*/
void beforeGetConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue,
Renderer renderer)
@@ -137,72 +137,69 @@ public interface RendererInterceptor
*/
/**
- * The "after decode phase" of ExtVal. The code is executed after the decode method is executed
- * of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('after').
*
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the apply request values JSF phase.
- * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the afterDecode
- * methods of the registered interceptors.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
+ * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the subsequent interceptors.
*/
void afterDecode(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws SkipAfterInterceptorsException;
/**
- * The "after encode begin phase" of ExtVal. The code is executed after the encodeBegin method is executed
- * of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('after').
*
* @param facesContext The JSF context
- * @param uiComponent In case the response writer is accessed and there was an IO problem.
- * @param renderer The renderer that will be called for the render response JSF phase.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
* @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the afterEncodeBegin
- * methods of the registered interceptors.
+ * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the subsequent interceptors.
*/
void afterEncodeBegin(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws IOException, SkipAfterInterceptorsException;
/**
- * The "after encode children phase" of ExtVal. The code is executed after the encodeChildren method is executed
- * of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('after').
*
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the render response JSF phase.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
* @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the afterEncodeChildren
- * methods of the registered interceptors.
+ * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the subsequent interceptors.
*/
void afterEncodeChildren(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws IOException, SkipAfterInterceptorsException;
/**
- * The "after encode end phase" of ExtVal. The code is executed after the encodeEnd method is executed
- * of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('after').
*
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
- * @param renderer The renderer that will be called for the render response JSF phase.
+ * @param uiComponent The current component
+ * @param renderer The intercepted renderer
* @throws IOException In case the response writer is accessed and there was an IO problem.
- * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the afterEncodeEnd
- * methods of the registered interceptors.
+ * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the subsequent interceptors.
*/
void afterEncodeEnd(FacesContext facesContext, UIComponent uiComponent, Renderer renderer)
throws IOException, SkipAfterInterceptorsException;
/**
- * The "after get converted value phase" of ExtVal. The code is executed after the getConvertedValue method is
- * executed of the Renderer.
+ * Intercepts a method of the renderer. The name of the intercepted method is the name of this method without the
+ * prefix ('after').
*
* @param facesContext The JSF Context
- * @param uiComponent The component which is processed
+ * @param uiComponent The current component
* @param submittedValue The submitted value
- * @param renderer The renderer that will be called for the render response JSF phase.
- * @throws ConverterException ExtVal validation strategies can throw ValidationExceptions which are converted by
- * AbstractValidationInterceptor
- * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the afterGetConvertedValue
- * methods of the registered interceptors.
+ * @param renderer The intercepted renderer
+ * @throws ConverterException ExtVal validation strategies can throw
+ * {@link javax.faces.validator.ValidatorException}s.
+ * Due to the trick used by ExtVal it has to be converted to a {@link ConverterException}
+ * (see {@link AbstractValidationInterceptor}).
+ * @throws SkipAfterInterceptorsException Can be thrown to stop the execution of the subsequent interceptors.
*/
void afterGetConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue, Renderer
renderer)
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java Tue Oct 26 16:57:41 2010
@@ -28,7 +28,7 @@ import javax.faces.component.UIComponent
import javax.faces.validator.ValidatorException;
/**
- * Allows to intercept validator exceptions.
+ * Allows to intercept {@link javax.faces.validator.ValidatorException}.
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -38,7 +38,6 @@ import javax.faces.validator.ValidatorEx
public interface ValidationExceptionInterceptor
{
/**
- *
* @param uiComponent the current component
* @param metaDataEntry the meta data entry which contains the meta data of the property
* @param convertedObject the converted user input
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationExceptionInterceptor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationExceptionInterceptor.java Tue Oct 26 16:57:41 2010
@@ -31,7 +31,8 @@ import javax.faces.validator.ValidatorEx
import javax.faces.context.FacesContext;
/**
- * A validation interceptor that sets the valid property of the uiComponent to false.
+ * This validation-exception interceptor sets the valid property of the uiComponent to false,
+ * if it is a blocking severity.
*
* @author Gerhard Petracek
* @since x.x.3
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/NameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/NameMapper.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/NameMapper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/NameMapper.java Tue Oct 26 16:57:41 2010
@@ -24,9 +24,10 @@ import org.apache.myfaces.extensions.val
/**
* Interface for name mappers.
- * A name mapper calculates a name for a given source object.
- * e.g. Meta-Data Key (e.g.: annotation class name) -> ValidationStrategy
- * NameMappers are stateless.
+ * A name mapper calculates a name of the resource which is linked to the given source.
+ * e.g. constraints are mapped to the corresponding
+ * {@link org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy}.
+ * NameMappers have to be stateless.
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -36,9 +37,11 @@ import org.apache.myfaces.extensions.val
public interface NameMapper<T>
{
/**
- * Returns the name for the source or null when this name mapper doesn't support the type of source.
+ * Returns the name of the target resource for the given source or null if the implementations isn't responsible
+ * to map the given instance.
+ *
* @param source Object for which the name must be created.
- * @return name or null when source isn't supported.
+ * @return name of the target resource or null if the source isn't supported.
*/
String createName(T source);
-}
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/SubMapperAwareNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/SubMapperAwareNameMapper.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/SubMapperAwareNameMapper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/SubMapperAwareNameMapper.java Tue Oct 26 16:57:41 2010
@@ -31,8 +31,8 @@ import org.apache.myfaces.extensions.val
public interface SubMapperAwareNameMapper<T> extends NameMapper<T>
{
/**
- * Add a (sub-)name mapper to list to delegate to.
- * @param nameMapper nameMapper to add
+ * Add a (sub-)name mapper
+ * @param nameMapper sub-nameMapper to add
*/
void addNameMapper(NameMapper<T> nameMapper);
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_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/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java Tue Oct 26 16:57:41 2010
@@ -26,7 +26,7 @@ import java.util.HashMap;
import java.util.logging.Logger;
/**
- * Data holder which stores the meta-data and some information where the meta-data was around.
+ * Data holder which stores the meta-data and some information where the meta-data was found.
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -41,7 +41,7 @@ public class MetaDataEntry
private Map<String, Object> properties = new HashMap<String, Object>();
/**
- * Returns the key of the meta-data.
+ * Returns the key which identifies the meta-data.
*
* @return key of the meta-data.
*/
@@ -51,9 +51,10 @@ public class MetaDataEntry
}
/**
- * Sets the key of the meta-data. The standard modules of ExtVal uses the name of the annotation as key.
+ * Sets the key of the meta-data.
+ * It's suggested to use the fully qualified name of a constraint.
*
- * @param key value to set as key of the meta-data.
+ * @param key value identifies the the meta-data stored in the instance.
*/
public void setKey(String key)
{
@@ -63,9 +64,9 @@ public class MetaDataEntry
}
/**
- * Returns the object that lead to the creation of this instance.
+ * Returns the meta-data or a data-structure which represents the meta-data.
*
- * @return main object for the meta-data instance.
+ * @return the meta-data or a data-structure which represents the meta-data.
*/
public Object getValue()
{
@@ -73,12 +74,11 @@ public class MetaDataEntry
}
/**
- * Returns the object that lead to the creation of this instance casted to the specified type. Is useful for
- * meta-data created for Bean Validation annotations, since the main object there is a ConstraintDescriptor.
+ * Returns the meta-data or a data-structure which represents the meta-data.
*
* @param targetClass Type to which the return value must be casted.
* @param <T> generic type
- * @return main object for the meta-data instance.
+ * @return the meta-data or a data-structure which represents the meta-data.
*/
public <T> T getValue(Class<T> targetClass)
{
@@ -86,10 +86,9 @@ public class MetaDataEntry
}
/**
- * Sets the object that lead to the creation of this meta-data instance. The standard modules stores the annotation
- * or the ConstraintDescriptor that lead to the creation of this instance.
+ * Sets the object which represents the meta-data hold by this instance.
*
- * @param value main object for the meta-data instance.
+ * @param value the object which represents the meta-data hold by this instance.
*/
public void setValue(Object value)
{
@@ -99,9 +98,9 @@ public class MetaDataEntry
}
/**
- * Sets the map instance where the additional properties are stored of the meta-data.
+ * Sets the map which contains further properties which are linked to the meta-data.
*
- * @param properties Map with properties of the meta-data.
+ * @param properties properties which are linked to the meta-data.
*/
public void setProperties(Map<String, Object> properties)
{
@@ -109,8 +108,7 @@ public class MetaDataEntry
}
/**
- * Returns the value defined in the additional properties identified by the key value. When there is no value
- * defined for the key, returns null.
+ * Returns the property-value for the given property-key.
*
* @param key key value used to identify the property value.
* @return property value for the specified key.
@@ -121,9 +119,9 @@ public class MetaDataEntry
}
/**
- * Returns the value defined in the additional properties identified by the key value casted to the specified type.
+ * Returns the property-value for the given property-key.
*
- * @param key key value used to identify the property value.
+ * @param key key which identifies a property
* @param targetClass Type to which the return value must be casted.
* @param <T> Generic type
* @return property value for the specified key.
@@ -134,8 +132,9 @@ public class MetaDataEntry
}
/**
- * Adds the property value with the key to the list of properties. The constants defined in PropertyInformationKeys
- * can be used as key for the storage.
+ * Sets the property-value for the given property-key.
+ * {@link org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys}
+ * contains the keys used by ExtVal.
*
* @param key key value used to identify the property value.
* @param value property value to set.
Modified: myfaces/extensions/validator/branches/branch_for_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/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java Tue Oct 26 16:57:41 2010
@@ -25,8 +25,10 @@ import org.apache.myfaces.extensions.val
import javax.faces.context.FacesContext;
/**
- * A meta-data extractor is responsible to analyze an object (UIComponent)
+ * A meta-data extractor is responsible to analyze an object (e.g. UIComponent)
* and returns all available meta-data information.
+ * An implementation should provide the possibility to filter the found meta-data e.g. via
+ * {@link org.apache.myfaces.extensions.validator.core.storage.MetaDataStorageFilter}
*
* @author Gerhard Petracek
* @since 1.x.1
@@ -35,12 +37,12 @@ import javax.faces.context.FacesContext;
public interface MetaDataExtractor
{
/**
- * Returns all information about the object. Important remark: The default implementation,
- * DefaultComponentMetaDataExtractor, uses a MetaDataStorageFilter that can decide to not include some meta data.
+ * Returns all information about the object.
*
* @param facesContext The JSF Faces Context
- * @param object The UIComponent from which we need all available information.
- * @return All information related to the UIComponent.
+ * @param object e.g. an instance of {@link javax.faces.component.UIComponent} which should be used to extract
+ * the information of the bound property.
+ * @return All the essential information about the bound property.
*/
PropertyInformation extract(FacesContext facesContext, Object object);
}
Modified: myfaces/extensions/validator/branches/branch_for_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/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java?rev=1027649&r1=1027648&r2=1027649&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java Tue Oct 26 16:57:41 2010
@@ -25,9 +25,19 @@ import org.apache.myfaces.extensions.val
import java.util.Map;
/**
- * Allows to transform concrete meta-data to a more abstract form.<br/>
- * e.g.: @Required, @Column(nullable = false,...), @Length(minimum = 1), ... -> required = true <br/>
- * For the keys of the map the constants in the CommonMetaDataKeys can be used.
+ * {@link org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer MetaDataTransformers}
+ * are used to convert specific information of constraints to a generic representation.
+ * So it's possible to transform different meta-data implementations to an independent representation.
+ * E.g. @Length and @Size specifies the same information.
+ * {@link org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer MetaDataTransformers}
+ * are aware of the concrete meta-data implementation but they aren't aware of JSF components.
+ *
+ * The result of the transformation is used by
+ * {@link org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer ComponentInitializers}
+ * to initialize JSF components based on the found meta-data.
+ *
+ * {@link org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys} provides the keys used by ExtVal.
+ *
* @author Gerhard Petracek
* @since 1.x.1
*/
@@ -36,9 +46,10 @@ import java.util.Map;
public interface MetaDataTransformer
{
/**
- * Convert the information from MetaDataEntry into the abstract format.
- * @param metaData The MetaDataEntry to process.
- * @return Map with the information abstract format.
+ * Converts the information of a {@link MetaDataEntry} into an independent format.
+ *
+ * @param metaData The meta-data which should be converted.
+ * @return Map with the converted information.
*/
Map<String, Object> convertMetaData(MetaDataEntry metaData);
}