You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2008/08/15 04:17:05 UTC
svn commit: r686111 [5/5] - in /myfaces/extensions/validator/trunk: ./ core/
core/src/main/java/org/apache/myfaces/extensions/validator/
core/src/main/java/org/apache/myfaces/extensions/validator/core/
core/src/main/java/org/apache/myfaces/extensions/v...
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java Thu Aug 14 19:17:02 2008
@@ -21,6 +21,7 @@
/**
* @author Gerhard Petracek
*/
-public enum RequiredIfType {
+public enum RequiredIfType
+{
empty, not_empty
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java Thu Aug 14 19:17:02 2008
@@ -27,8 +27,9 @@
/**
* @author Gerhard Petracek
*/
-@Target({METHOD, FIELD})
+@Target( { METHOD, FIELD })
@Retention(RUNTIME)
-public @interface TargetAlias {
+public @interface TargetAlias
+{
String value() default "";
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java Thu Aug 14 19:17:02 2008
@@ -34,12 +34,17 @@
*
* @author Gerhard Petracek
*/
-public class DefaultValueBindingScanningAnnotationExtractor extends DefaultComponentAnnotationExtractor {
+public class DefaultValueBindingScanningAnnotationExtractor extends
+ DefaultComponentAnnotationExtractor
+{
@Override
- public List<AnnotationEntry> extractAnnotations(FacesContext facesContext, Object object) {
+ public List<AnnotationEntry> extractAnnotations(FacesContext facesContext,
+ Object object)
+ {
//should never occur
- if (!(object instanceof String)) {
+ if (!(object instanceof String))
+ {
return new ArrayList<AnnotationEntry>();
}
@@ -47,40 +52,54 @@
List<AnnotationEntry> annotationEntries = new ArrayList<AnnotationEntry>();
- Class entity = ELUtils.getTypeOfValueBindingForExpression(facesContext, valueBindingExpression);
+ Class entity = ELUtils.getTypeOfValueBindingForExpression(facesContext,
+ valueBindingExpression);
- if (entity != null) {
+ if (entity != null)
+ {
//find and add annotations
- addPropertyAccessAnnotations(entity, annotationEntries, valueBindingExpression);
- addFieldAccessAnnotations(entity, annotationEntries, valueBindingExpression);
+ addPropertyAccessAnnotations(entity, annotationEntries,
+ valueBindingExpression);
+ addFieldAccessAnnotations(entity, annotationEntries,
+ valueBindingExpression);
}
return annotationEntries;
}
- protected void addPropertyAccessAnnotations(Class entity, List<AnnotationEntry> annotationEntries, String valueBindingExpression) {
+ protected void addPropertyAccessAnnotations(Class entity,
+ List<AnnotationEntry> annotationEntries,
+ String valueBindingExpression)
+ {
AnnotationEntry templateEntry;
- for (Method method : entity.getDeclaredMethods()) {
+ for (Method method : entity.getDeclaredMethods())
+ {
templateEntry = new AnnotationEntry();
templateEntry.setEntityClass(entity.getClass());
templateEntry.setValueBindingExpression(valueBindingExpression);
templateEntry.setBoundTo("[method]:" + method.getName());
- addAnnotationToAnnotationEntries(annotationEntries, Arrays.asList(method.getAnnotations()), templateEntry);
+ addAnnotationToAnnotationEntries(annotationEntries, Arrays
+ .asList(method.getAnnotations()), templateEntry);
}
}
- protected void addFieldAccessAnnotations(Class entity, List<AnnotationEntry> annotationEntries, String valueBindingExpression) {
+ protected void addFieldAccessAnnotations(Class entity,
+ List<AnnotationEntry> annotationEntries,
+ String valueBindingExpression)
+ {
AnnotationEntry templateEntry;
- for (Field field : entity.getDeclaredFields()) {
+ for (Field field : entity.getDeclaredFields())
+ {
templateEntry = new AnnotationEntry();
templateEntry.setEntityClass(entity.getClass());
templateEntry.setValueBindingExpression(valueBindingExpression);
templateEntry.setBoundTo("[field]:" + field.getName());
- addAnnotationToAnnotationEntries(annotationEntries, Arrays.asList(field.getAnnotations()), templateEntry);
+ addAnnotationToAnnotationEntries(annotationEntries, Arrays
+ .asList(field.getAnnotations()), templateEntry);
}
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java Thu Aug 14 19:17:02 2008
@@ -21,15 +21,20 @@
/**
* @author Gerhard Petracek
*/
-public class DefaultValidationErrorMessageResolver extends org.apache.myfaces.extensions.validator.core.validation.message.resolver.DefaultValidationErrorMessageResolver {
- private static String BASE_NAME = null;
+public class DefaultValidationErrorMessageResolver
+ extends
+ org.apache.myfaces.extensions.validator.core.validation.message.resolver.DefaultValidationErrorMessageResolver
+{
+ private static String baseName = null;
@Override
- protected String getBaseName() {
- if (BASE_NAME == null) {
- BASE_NAME = super.getBaseName();
+ protected String getBaseName()
+ {
+ if (baseName == null)
+ {
+ baseName = super.getBaseName();
}
- return BASE_NAME;
+ return baseName;
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java Thu Aug 14 19:17:02 2008
@@ -25,7 +25,8 @@
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
import org.apache.myfaces.extensions.validator.crossval.annotation.TargetAlias;
-import org.apache.myfaces.extensions.validator.crossval.annotation.extractor.DefaultValueBindingScanningAnnotationExtractor;
+import org.apache.myfaces.extensions.validator.crossval.annotation.extractor.
+ DefaultValueBindingScanningAnnotationExtractor;
import org.apache.myfaces.extensions.validator.crossval.strategy.AbstractCompareStrategy;
import org.apache.myfaces.extensions.validator.util.ELUtils;
@@ -40,55 +41,91 @@
*
* @author Gerhard Petracek
*/
-public class AliasCompareStrategy implements ReferencingStrategy {
+public class AliasCompareStrategy implements ReferencingStrategy
+{
protected final Log logger = LogFactory.getLog(getClass());
- public boolean evalReferenceAndValidate(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage, String validationTarget, AbstractCompareStrategy compareStrategy) {
- if (validationTarget.startsWith("@")) {
- tryToValidateWithAlias(crossValidationStorageEntry, crossValidationStorage, validationTarget.substring(1), compareStrategy);
+ public boolean evalReferenceAndValidate(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage,
+ String validationTarget, AbstractCompareStrategy compareStrategy)
+ {
+ if (validationTarget.startsWith("@"))
+ {
+ tryToValidateWithAlias(crossValidationStorageEntry,
+ crossValidationStorage, validationTarget.substring(1),
+ compareStrategy);
return true;
- } else if (validationTarget.contains(":@*")) {
- if (validateBindingFormatWithAlias(validationTarget)) {
- tryToValidateBindingWithAlias(crossValidationStorageEntry, validationTarget, crossValidationStorage, compareStrategy, false);
+ }
+ else if (validationTarget.contains(":@*"))
+ {
+ if (validateBindingFormatWithAlias(validationTarget))
+ {
+ tryToValidateBindingWithAlias(crossValidationStorageEntry,
+ validationTarget, crossValidationStorage,
+ compareStrategy, false);
return true;
}
- } else if (validationTarget.contains(":@")) {
- if (validateBindingFormatWithAlias(validationTarget)) {
- tryToValidateBindingWithAlias(crossValidationStorageEntry, validationTarget, crossValidationStorage, compareStrategy, true);
+ }
+ else if (validationTarget.contains(":@"))
+ {
+ if (validateBindingFormatWithAlias(validationTarget))
+ {
+ tryToValidateBindingWithAlias(crossValidationStorageEntry,
+ validationTarget, crossValidationStorage,
+ compareStrategy, true);
return true;
}
}
return false;
}
- protected void tryToValidateWithAlias(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage, String validationTarget, AbstractCompareStrategy compareStrategy) {
+ protected void tryToValidateWithAlias(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage,
+ String validationTarget, AbstractCompareStrategy compareStrategy)
+ {
boolean validationExecuted = false;
boolean useModelValue = true;
- if (validationTarget.startsWith("*")) {
+ if (validationTarget.startsWith("*"))
+ {
useModelValue = false;
validationTarget = validationTarget.substring(1);
}
//search for TargetAlias annotations
- for (CrossValidationStorageEntry entry : crossValidationStorage.getCrossValidationStorageEntries()) {
-
- if (entry.getAnnotationEntry().getAnnotation() instanceof TargetAlias) {
- validationExecuted = validateTargetWithAlias(validationTarget, crossValidationStorageEntry, entry, useModelValue, compareStrategy);
+ for (CrossValidationStorageEntry entry : crossValidationStorage
+ .getCrossValidationStorageEntries())
+ {
+
+ if (entry.getAnnotationEntry().getAnnotation() instanceof TargetAlias)
+ {
+ validationExecuted = validateTargetWithAlias(validationTarget,
+ crossValidationStorageEntry, entry, useModelValue,
+ compareStrategy);
}
- if (validationExecuted) {
+ if (validationExecuted)
+ {
break;
}
}
}
- protected boolean tryToValidateBindingWithAlias(CrossValidationStorageEntry crossValidationStorageEntry, String targetProperty, CrossValidationStorage crossValidationStorage, AbstractCompareStrategy compareStrategy, boolean useModelValue) {
+ protected boolean tryToValidateBindingWithAlias(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ String targetProperty,
+ CrossValidationStorage crossValidationStorage,
+ AbstractCompareStrategy compareStrategy, boolean useModelValue)
+ {
String[] crossEntityReferenceWithBinding = extractCrossEntityReferenceWithBinding(targetProperty);
FacesContext facesContext = FacesContext.getCurrentInstance();
- if (!ELUtils.isExpressionValid(facesContext, crossEntityReferenceWithBinding[0])) {
+ if (!ELUtils.isExpressionValid(facesContext,
+ crossEntityReferenceWithBinding[0]))
+ {
return false;
}
@@ -99,35 +136,59 @@
int aliasStartIndex;
- if (useModelValue) {
+ if (useModelValue)
+ {
aliasStartIndex = crossEntityReferenceWithBinding[1].indexOf('@') + 1;
- } else {
+ }
+ else
+ {
aliasStartIndex = crossEntityReferenceWithBinding[1].indexOf('@') + 2;
}
- String targetAliasName = crossEntityReferenceWithBinding[1].substring(aliasStartIndex);
- for (AnnotationEntry entry : extractor.extractAnnotations(facesContext, crossEntityReferenceWithBinding[0])) {
- if (entry.getAnnotation() instanceof TargetAlias) {
+ String targetAliasName = crossEntityReferenceWithBinding[1]
+ .substring(aliasStartIndex);
+ for (AnnotationEntry entry : extractor.extractAnnotations(facesContext,
+ crossEntityReferenceWithBinding[0]))
+ {
+ if (entry.getAnnotation() instanceof TargetAlias)
+ {
alias = ((TargetAlias) entry.getAnnotation()).value();
- if (targetAliasName.equals(alias)) {
+ if (targetAliasName.equals(alias))
+ {
foundAnnotationEntry = entry;
break;
}
}
}
- if (foundAnnotationEntry == null) {
+ if (foundAnnotationEntry == null)
+ {
return false;
}
Object referencedBean = null;
Object validationTargetObject = null;
- if (useModelValue) {
- referencedBean = ELUtils.getValueOfExpression(facesContext, crossEntityReferenceWithBinding[0]);
- validationTargetObject = getValidationTargetObject(crossValidationStorageEntry, foundAnnotationEntry, referencedBean, crossValidationStorage);
- } else {
- for (CrossValidationStorageEntry entry : crossValidationStorage.getCrossValidationStorageEntries()) {
- if (foundAnnotationEntry.getAnnotation() instanceof TargetAlias && entry.getAnnotationEntry().getAnnotation() != null && entry.getAnnotationEntry().getAnnotation() instanceof TargetAlias) {
- if (((TargetAlias) foundAnnotationEntry.getAnnotation()).value().equals(((TargetAlias) entry.getAnnotationEntry().getAnnotation()).value())) {
+ if (useModelValue)
+ {
+ referencedBean = ELUtils.getValueOfExpression(facesContext,
+ crossEntityReferenceWithBinding[0]);
+ validationTargetObject = getValidationTargetObject(
+ crossValidationStorageEntry, foundAnnotationEntry,
+ referencedBean, crossValidationStorage);
+ }
+ else
+ {
+ for (CrossValidationStorageEntry entry : crossValidationStorage
+ .getCrossValidationStorageEntries())
+ {
+ if (foundAnnotationEntry.getAnnotation() instanceof TargetAlias
+ && entry.getAnnotationEntry().getAnnotation() != null
+ && entry.getAnnotationEntry().getAnnotation() instanceof TargetAlias)
+ {
+ if (((TargetAlias) foundAnnotationEntry.getAnnotation())
+ .value().equals(
+ ((TargetAlias) entry.getAnnotationEntry()
+ .getAnnotation()).value()))
+ {
validationTargetObject = entry.getConvertedObject();
break;
}
@@ -135,13 +196,22 @@
}
}
- validateFoundEntry(crossValidationStorageEntry, foundAnnotationEntry, referencedBean, crossValidationStorage, validationTargetObject, compareStrategy);
+ validateFoundEntry(crossValidationStorageEntry, foundAnnotationEntry,
+ referencedBean, crossValidationStorage, validationTargetObject,
+ compareStrategy);
return true;
}
- protected Object getValidationTargetObject(CrossValidationStorageEntry crossValidationStorageEntry, AnnotationEntry foundAnnotationEntry, Object referencedBean, CrossValidationStorage crossValidationStorage) {
- if (foundAnnotationEntry == null || foundAnnotationEntry.getBoundTo() == null || foundAnnotationEntry.getBoundTo().indexOf(":") < 0) {
+ protected Object getValidationTargetObject(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ AnnotationEntry foundAnnotationEntry, Object referencedBean,
+ CrossValidationStorage crossValidationStorage)
+ {
+ if (foundAnnotationEntry == null
+ || foundAnnotationEntry.getBoundTo() == null
+ || foundAnnotationEntry.getBoundTo().indexOf(":") < 0)
+ {
//TODO logging
return null;
}
@@ -149,89 +219,143 @@
Object validationTargetObject = null;
String boundTo = foundAnnotationEntry.getBoundTo();
String name = boundTo.substring(boundTo.indexOf(":") + 1);
- if (boundTo.startsWith("[method]")) {
- String baseValueBindingExpression = foundAnnotationEntry.getValueBindingExpression();
-
- String targetValueBindingExpression = baseValueBindingExpression.substring(0, baseValueBindingExpression.length() - 1) + "." + name + "}";
+ if (boundTo.startsWith("[method]"))
+ {
+ String baseValueBindingExpression = foundAnnotationEntry
+ .getValueBindingExpression();
+
+ String targetValueBindingExpression = baseValueBindingExpression
+ .substring(0, baseValueBindingExpression.length() - 1)
+ + "." + name + "}";
FacesContext facesContext = FacesContext.getCurrentInstance();
- if (ELUtils.isExpressionValid(facesContext, targetValueBindingExpression)) {
- validationTargetObject = ELUtils.getValueOfExpression(facesContext, targetValueBindingExpression);
+ if (ELUtils.isExpressionValid(facesContext,
+ targetValueBindingExpression))
+ {
+ validationTargetObject = ELUtils.getValueOfExpression(
+ facesContext, targetValueBindingExpression);
}
- } else if (boundTo.startsWith("[field]")) {
- try {
+ }
+ else if (boundTo.startsWith("[field]"))
+ {
+ try
+ {
Field foundField;
- try {
- foundField = referencedBean.getClass().getDeclaredField(name);
+ try
+ {
+ foundField = referencedBean.getClass().getDeclaredField(
+ name);
foundField.setAccessible(true);
validationTargetObject = foundField.get(referencedBean);
- } catch (NoSuchFieldException e) {
- foundField = referencedBean.getClass().getDeclaredField("_" + name);
+ }
+ catch (NoSuchFieldException e)
+ {
+ foundField = referencedBean.getClass().getDeclaredField(
+ "_" + name);
foundField.setAccessible(true);
validationTargetObject = foundField.get(referencedBean);
}
- } catch (Exception e) {
- logger.warn("couldn't access field " + name + " details: boundTo=" + boundTo, e);
+ }
+ catch (Exception e)
+ {
+ logger.warn("couldn't access field " + name
+ + " details: boundTo=" + boundTo, e);
}
}
return validationTargetObject;
}
- protected void validateFoundEntry(CrossValidationStorageEntry crossValidationStorageEntry, AnnotationEntry foundAnnotationEntry, Object referencedBean, CrossValidationStorage crossValidationStorage, Object validationTargetObject, AbstractCompareStrategy compareStrategy) {
+ protected void validateFoundEntry(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ AnnotationEntry foundAnnotationEntry, Object referencedBean,
+ CrossValidationStorage crossValidationStorage,
+ Object validationTargetObject,
+ AbstractCompareStrategy compareStrategy)
+ {
boolean violationFound = false;
- if (compareStrategy.isViolation(crossValidationStorageEntry.getConvertedObject(), validationTargetObject, crossValidationStorageEntry.getAnnotationEntry().getAnnotation())) {
+ if (compareStrategy.isViolation(crossValidationStorageEntry
+ .getConvertedObject(), validationTargetObject,
+ crossValidationStorageEntry.getAnnotationEntry()
+ .getAnnotation()))
+ {
//TODO use compareStrategy#useTargetComponentToDisplayErrorMsg
- compareStrategy.processTargetComponentAfterViolation(crossValidationStorageEntry, null);
+ compareStrategy.processTargetComponentAfterViolation(
+ crossValidationStorageEntry, null);
violationFound = true;
}
- if (violationFound) {
- compareStrategy.processSourceComponentAfterViolation(crossValidationStorageEntry);
+ if (violationFound)
+ {
+ compareStrategy
+ .processSourceComponentAfterViolation(crossValidationStorageEntry);
}
}
//TODO
- protected boolean validateTargetWithAlias(String validationTarget, CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorageEntry entry, boolean useModelValue, AbstractCompareStrategy compareStrategy) {
+ protected boolean validateTargetWithAlias(String validationTarget,
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorageEntry entry, boolean useModelValue,
+ AbstractCompareStrategy compareStrategy)
+ {
boolean validationExecuted = false;
boolean violationFound = false;
- if (validationTarget.equals(((TargetAlias) entry.getAnnotationEntry().getAnnotation()).value())) {
+ if (validationTarget.equals(((TargetAlias) entry.getAnnotationEntry()
+ .getAnnotation()).value()))
+ {
//get an object to store all results
Object validationTargetObject;
- if (useModelValue) {
- validationTargetObject = ELUtils.getValueOfExpression(FacesContext.getCurrentInstance(), entry.getAnnotationEntry().getValueBindingExpression());
- } else {
+ if (useModelValue)
+ {
+ validationTargetObject = ELUtils.getValueOfExpression(
+ FacesContext.getCurrentInstance(), entry
+ .getAnnotationEntry()
+ .getValueBindingExpression());
+ }
+ else
+ {
validationTargetObject = entry.getConvertedObject();
}
- if (compareStrategy.isViolation(crossValidationStorageEntry.getConvertedObject(), validationTargetObject, crossValidationStorageEntry.getAnnotationEntry().getAnnotation())) {
+ if (compareStrategy.isViolation(crossValidationStorageEntry
+ .getConvertedObject(), validationTargetObject,
+ crossValidationStorageEntry.getAnnotationEntry()
+ .getAnnotation()))
+ {
violationFound = true;
- compareStrategy.processTargetComponentAfterViolation(crossValidationStorageEntry, entry);
+ compareStrategy.processTargetComponentAfterViolation(
+ crossValidationStorageEntry, entry);
}
validationExecuted = true;
}
- if (violationFound) {
- compareStrategy.processSourceComponentAfterViolation(crossValidationStorageEntry);
+ if (violationFound)
+ {
+ compareStrategy
+ .processSourceComponentAfterViolation(crossValidationStorageEntry);
}
return validationExecuted;
}
- protected boolean validateBindingFormatWithAlias(String targetProperty) {
+ protected boolean validateBindingFormatWithAlias(String targetProperty)
+ {
int bindingStartIndex = targetProperty.indexOf("#{");
int bindingEndIndex = targetProperty.indexOf("}");
int separatorIndex = targetProperty.indexOf(":@");
- return (bindingStartIndex > -1 && bindingEndIndex > -1 && separatorIndex > -1 && bindingStartIndex < bindingEndIndex && bindingEndIndex < separatorIndex);
+ return (bindingStartIndex > -1 && bindingEndIndex > -1
+ && separatorIndex > -1 && bindingStartIndex < bindingEndIndex && bindingEndIndex < separatorIndex);
}
- protected String[] extractCrossEntityReferenceWithBinding(String targetProperty) {
+ protected String[] extractCrossEntityReferenceWithBinding(
+ String targetProperty)
+ {
String[] result = new String[2];
result[0] = targetProperty.substring(0, targetProperty.indexOf(":"));
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java Thu Aug 14 19:17:02 2008
@@ -36,64 +36,102 @@
*
* @author Gerhard Petracek
*/
-public class ELCompareStrategy implements ReferencingStrategy {
+public class ELCompareStrategy implements ReferencingStrategy
+{
protected final Log logger = LogFactory.getLog(getClass());
- public boolean evalReferenceAndValidate(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage, String validationTarget, AbstractCompareStrategy compareStrategy) {
- if (validationTarget.startsWith("#{") && validationTarget.endsWith("}") && validateValueBindingFormat(validationTarget)) {
- tryToValidateValueBinding(crossValidationStorageEntry, validationTarget, crossValidationStorage, compareStrategy);
+ public boolean evalReferenceAndValidate(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage,
+ String validationTarget, AbstractCompareStrategy compareStrategy)
+ {
+ if (validationTarget.startsWith("#{") && validationTarget.endsWith("}")
+ && validateValueBindingFormat(validationTarget))
+ {
+ tryToValidateValueBinding(crossValidationStorageEntry,
+ validationTarget, crossValidationStorage, compareStrategy);
return true;
}
return false;
}
- protected boolean tryToValidateValueBinding(CrossValidationStorageEntry crossValidationStorageEntry, String validationTarget, CrossValidationStorage crossValidationStorage, AbstractCompareStrategy compareStrategy) {
+ protected boolean tryToValidateValueBinding(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ String validationTarget,
+ CrossValidationStorage crossValidationStorage,
+ AbstractCompareStrategy compareStrategy)
+ {
boolean violationFound = false;
FacesContext facesContext = FacesContext.getCurrentInstance();
- if (!ELUtils.isExpressionValid(facesContext, validationTarget)) {
+ if (!ELUtils.isExpressionValid(facesContext, validationTarget))
+ {
return false;
}
- if (compareStrategy.isViolation(crossValidationStorageEntry.getConvertedObject(), ELUtils.getValueOfExpression(facesContext, validationTarget), crossValidationStorageEntry.getAnnotationEntry().getAnnotation())) {
+ if (compareStrategy.isViolation(crossValidationStorageEntry
+ .getConvertedObject(), ELUtils.getValueOfExpression(
+ facesContext, validationTarget), crossValidationStorageEntry
+ .getAnnotationEntry().getAnnotation()))
+ {
ProcessedInformationEntry validationTargetEntry;
- Map<String, ProcessedInformationEntry> valueBindingConvertedValueMapping = ExtValUtils.getOrInitValueBindingConvertedValueMapping();
+ Map<String, ProcessedInformationEntry> valueBindingConvertedValueMapping = ExtValUtils
+ .getOrInitValueBindingConvertedValueMapping();
- validationTargetEntry = valueBindingConvertedValueMapping.get(validationTarget);
+ validationTargetEntry = valueBindingConvertedValueMapping
+ .get(validationTarget);
CrossValidationStorageEntry tmpCrossValidationStorageEntry = null;
- if (validationTargetEntry != null) {
+ if (validationTargetEntry != null)
+ {
tmpCrossValidationStorageEntry = new CrossValidationStorageEntry();
//TODO test
- if (compareStrategy.useTargetComponentToDisplayErrorMsg(crossValidationStorageEntry)) {
- tmpCrossValidationStorageEntry.setComponent(validationTargetEntry.getComponent());
- } else {
- tmpCrossValidationStorageEntry.setComponent(crossValidationStorageEntry.getComponent());
+ if (compareStrategy
+ .useTargetComponentToDisplayErrorMsg(crossValidationStorageEntry))
+ {
+ tmpCrossValidationStorageEntry
+ .setComponent(validationTargetEntry.getComponent());
}
- tmpCrossValidationStorageEntry.setConvertedObject(validationTargetEntry.getConvertedValue());
- tmpCrossValidationStorageEntry.setValidationStrategy(compareStrategy);
+ else
+ {
+ tmpCrossValidationStorageEntry
+ .setComponent(crossValidationStorageEntry
+ .getComponent());
+ }
+ tmpCrossValidationStorageEntry
+ .setConvertedObject(validationTargetEntry
+ .getConvertedValue());
+ tmpCrossValidationStorageEntry
+ .setValidationStrategy(compareStrategy);
}
- compareStrategy.processTargetComponentAfterViolation(crossValidationStorageEntry, tmpCrossValidationStorageEntry);
+ compareStrategy
+ .processTargetComponentAfterViolation(
+ crossValidationStorageEntry,
+ tmpCrossValidationStorageEntry);
violationFound = true;
}
- if (violationFound) {
- compareStrategy.processSourceComponentAfterViolation(crossValidationStorageEntry);
+ if (violationFound)
+ {
+ compareStrategy
+ .processSourceComponentAfterViolation(crossValidationStorageEntry);
}
return true;
}
- protected boolean validateValueBindingFormat(String targetProperty) {
+ protected boolean validateValueBindingFormat(String targetProperty)
+ {
int bindingStartIndex = targetProperty.indexOf("#{");
int bindingEndIndex = targetProperty.indexOf("}");
int separatorIndex = targetProperty.indexOf(".");
- return (bindingStartIndex > -1 && bindingEndIndex > -1 && separatorIndex > -1 && bindingStartIndex < bindingEndIndex && bindingEndIndex > separatorIndex);
+ return (bindingStartIndex > -1 && bindingEndIndex > -1
+ && separatorIndex > -1 && bindingStartIndex < bindingEndIndex && bindingEndIndex > separatorIndex);
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java Thu Aug 14 19:17:02 2008
@@ -35,63 +35,104 @@
*
* @author Gerhard Petracek
*/
-public class LocalCompareStrategy implements ReferencingStrategy {
+public class LocalCompareStrategy implements ReferencingStrategy
+{
protected final Log logger = LogFactory.getLog(getClass());
- public boolean evalReferenceAndValidate(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage, String validationTarget, AbstractCompareStrategy compareStrategy) {
- tryToValidateLocally(crossValidationStorageEntry, validationTarget, compareStrategy);
+ public boolean evalReferenceAndValidate(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage,
+ String validationTarget, AbstractCompareStrategy compareStrategy)
+ {
+ tryToValidateLocally(crossValidationStorageEntry, validationTarget,
+ compareStrategy);
//TODO
return true;
}
- protected void tryToValidateLocally(CrossValidationStorageEntry crossValidationStorageEntry, String validationTarget, AbstractCompareStrategy compareStrategy) {
+ protected void tryToValidateLocally(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ String validationTarget, AbstractCompareStrategy compareStrategy)
+ {
boolean violationFound = false;
- String baseValueBindingExpression = crossValidationStorageEntry.getAnnotationEntry().getValueBindingExpression();
- baseValueBindingExpression = baseValueBindingExpression.substring(0, baseValueBindingExpression.lastIndexOf("."));
+ String baseValueBindingExpression = crossValidationStorageEntry
+ .getAnnotationEntry().getValueBindingExpression();
+ baseValueBindingExpression = baseValueBindingExpression.substring(0,
+ baseValueBindingExpression.lastIndexOf("."));
String targetValueBindingExpression;
FacesContext facesContext = FacesContext.getCurrentInstance();
- Map<String, ProcessedInformationEntry> valueBindingConvertedValueMapping = ExtValUtils.getOrInitValueBindingConvertedValueMapping();
+ Map<String, ProcessedInformationEntry> valueBindingConvertedValueMapping = ExtValUtils
+ .getOrInitValueBindingConvertedValueMapping();
ProcessedInformationEntry validationTargetEntry;
- targetValueBindingExpression = baseValueBindingExpression + "." + validationTarget + "}";
+ targetValueBindingExpression = baseValueBindingExpression + "."
+ + validationTarget + "}";
- if (!ELUtils.isExpressionValid(facesContext, targetValueBindingExpression)) {
+ if (!ELUtils.isExpressionValid(facesContext,
+ targetValueBindingExpression))
+ {
return;
}
- if (!valueBindingConvertedValueMapping.containsKey(targetValueBindingExpression)) {
+ if (!valueBindingConvertedValueMapping
+ .containsKey(targetValueBindingExpression))
+ {
return;
}
- validationTargetEntry = compareStrategy.resolveValidationTargetEntry(valueBindingConvertedValueMapping, targetValueBindingExpression, crossValidationStorageEntry.getBean());
-
- if (validationTargetEntry == null) {
- logger.warn("couldn't find converted object for " + targetValueBindingExpression);
+ validationTargetEntry = compareStrategy.resolveValidationTargetEntry(
+ valueBindingConvertedValueMapping,
+ targetValueBindingExpression, crossValidationStorageEntry
+ .getBean());
+
+ if (validationTargetEntry == null)
+ {
+ logger.warn("couldn't find converted object for "
+ + targetValueBindingExpression);
return;
}
- if (compareStrategy.isViolation(crossValidationStorageEntry.getConvertedObject(), validationTargetEntry.getConvertedValue(), crossValidationStorageEntry.getAnnotationEntry().getAnnotation())) {
+ if (compareStrategy.isViolation(crossValidationStorageEntry
+ .getConvertedObject(), validationTargetEntry
+ .getConvertedValue(), crossValidationStorageEntry
+ .getAnnotationEntry().getAnnotation()))
+ {
CrossValidationStorageEntry tmpCrossValidationStorageEntry = new CrossValidationStorageEntry();
- if (compareStrategy.useTargetComponentToDisplayErrorMsg(crossValidationStorageEntry)) {
- tmpCrossValidationStorageEntry.setComponent(validationTargetEntry.getComponent());
- } else {
- tmpCrossValidationStorageEntry.setComponent(crossValidationStorageEntry.getComponent());
+ if (compareStrategy
+ .useTargetComponentToDisplayErrorMsg(crossValidationStorageEntry))
+ {
+ tmpCrossValidationStorageEntry
+ .setComponent(validationTargetEntry.getComponent());
}
- tmpCrossValidationStorageEntry.setConvertedObject(validationTargetEntry.getConvertedValue());
- tmpCrossValidationStorageEntry.setValidationStrategy(compareStrategy);
-
- compareStrategy.processTargetComponentAfterViolation(crossValidationStorageEntry, tmpCrossValidationStorageEntry);
+ else
+ {
+ tmpCrossValidationStorageEntry
+ .setComponent(crossValidationStorageEntry
+ .getComponent());
+ }
+ tmpCrossValidationStorageEntry
+ .setConvertedObject(validationTargetEntry
+ .getConvertedValue());
+ tmpCrossValidationStorageEntry
+ .setValidationStrategy(compareStrategy);
+
+ compareStrategy
+ .processTargetComponentAfterViolation(
+ crossValidationStorageEntry,
+ tmpCrossValidationStorageEntry);
violationFound = true;
}
- if (violationFound) {
- compareStrategy.processSourceComponentAfterViolation(crossValidationStorageEntry);
+ if (violationFound)
+ {
+ compareStrategy
+ .processSourceComponentAfterViolation(crossValidationStorageEntry);
}
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java Thu Aug 14 19:17:02 2008
@@ -25,6 +25,11 @@
/**
* @author Gerhard Petracek
*/
-public interface ReferencingStrategy {
- boolean evalReferenceAndValidate(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage, String validationTarget, AbstractCompareStrategy abstractCompareStrategy);
+public interface ReferencingStrategy
+{
+ boolean evalReferenceAndValidate(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage,
+ String validationTarget,
+ AbstractCompareStrategy abstractCompareStrategy);
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java Thu Aug 14 19:17:02 2008
@@ -18,6 +18,17 @@
*/
package org.apache.myfaces.extensions.validator.crossval.strategy;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.ValidatorException;
+
import org.apache.myfaces.extensions.validator.core.ProcessedInformationEntry;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
@@ -28,31 +39,34 @@
import org.apache.myfaces.extensions.validator.util.ClassUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
-import javax.faces.application.FacesMessage;
-import javax.faces.context.FacesContext;
-import javax.faces.validator.ValidatorException;
-import java.lang.annotation.Annotation;
-import java.util.*;
-
/**
* @author Gerhard Petracek
*/
-public abstract class AbstractCompareStrategy extends AbstractCrossValidationStrategy {
+public abstract class AbstractCompareStrategy extends
+ AbstractCrossValidationStrategy
+{
protected static List<ReferencingStrategy> referencingStrategies;
protected Map<Object, Object> violationResultStorage = new HashMap<Object, Object>();
- public AbstractCompareStrategy() {
+ public AbstractCompareStrategy()
+ {
initReferencingStrategies();
}
- protected void initReferencingStrategies() {
- if (referencingStrategies == null) {
+ protected void initReferencingStrategies()
+ {
+ if (referencingStrategies == null)
+ {
referencingStrategies = new ArrayList<ReferencingStrategy>();
- String customReferencingStrategyClassName = ExtValUtils.getBasePackage() + "ReferencingStrategy";
- ReferencingStrategy customReferencingStrategy = (ReferencingStrategy) ClassUtils.tryToInstantiateClassForName(customReferencingStrategyClassName);
+ String customReferencingStrategyClassName = ExtValUtils
+ .getBasePackage()
+ + "ReferencingStrategy";
+ ReferencingStrategy customReferencingStrategy = (ReferencingStrategy) ClassUtils
+ .tryToInstantiateClassForName(customReferencingStrategyClassName);
- if (customReferencingStrategy != null) {
+ if (customReferencingStrategy != null)
+ {
referencingStrategies.add(customReferencingStrategy);
}
@@ -62,22 +76,37 @@
}
}
- public void processCrossValidation(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage) throws ValidatorException {
+ public void processCrossValidation(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage)
+ throws ValidatorException
+ {
initValidation(crossValidationStorageEntry);
- String[] validationTargets = getValidationTargets(crossValidationStorageEntry.getAnnotationEntry().getAnnotation());
+ String[] validationTargets = getValidationTargets(crossValidationStorageEntry
+ .getAnnotationEntry().getAnnotation());
- for (String validationTarget : validationTargets) {
+ for (String validationTarget : validationTargets)
+ {
validationTarget = validationTarget.trim();
//select validation method
- tryToValidate(crossValidationStorageEntry, crossValidationStorage, validationTarget);
+ tryToValidate(crossValidationStorageEntry, crossValidationStorage,
+ validationTarget);
}
}
- private boolean tryToValidate(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage, String validationTarget) {
- for (ReferencingStrategy referencingStrategy : referencingStrategies) {
- if (referencingStrategy.evalReferenceAndValidate(crossValidationStorageEntry, crossValidationStorage, validationTarget, this)) {
+ private boolean tryToValidate(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage,
+ String validationTarget)
+ {
+ for (ReferencingStrategy referencingStrategy : referencingStrategies)
+ {
+ if (referencingStrategy.evalReferenceAndValidate(
+ crossValidationStorageEntry, crossValidationStorage,
+ validationTarget, this))
+ {
return true;
}
}
@@ -87,58 +116,84 @@
//TODO
//has to be public for custom referencing strategies!!!
- public final void processTargetComponentAfterViolation(CrossValidationStorageEntry entryOfSource, CrossValidationStorageEntry entryOfTarget) {
- if(!handleTargetViolation(entryOfSource, entryOfTarget)) {
+ public final void processTargetComponentAfterViolation(
+ CrossValidationStorageEntry entryOfSource,
+ CrossValidationStorageEntry entryOfTarget)
+ {
+ if (!handleTargetViolation(entryOfSource, entryOfTarget))
+ {
return;
}
FacesContext facesContext = FacesContext.getCurrentInstance();
//get validation error messages for the target component
- String summary = getErrorMessageSummary(entryOfSource.getAnnotationEntry().getAnnotation(), true);
- String details = getErrorMessageDetails(entryOfSource.getAnnotationEntry().getAnnotation(), true);
-
- //validation target isn't bound to a component withing the current page (see validateFoundEntry, tryToValidateLocally and tryToValidateBindingOnly)
- if (entryOfTarget == null) {
+ String summary = getErrorMessageSummary(entryOfSource
+ .getAnnotationEntry().getAnnotation(), true);
+ String details = getErrorMessageDetails(entryOfSource
+ .getAnnotationEntry().getAnnotation(), true);
+
+ //validation target isn't bound to a component withing the current page
+ //(see validateFoundEntry, tryToValidateLocally and tryToValidateBindingOnly)
+ if (entryOfTarget == null)
+ {
entryOfTarget = entryOfSource;
}
FacesMessage message;
- if (entryOfTarget.getAnnotationEntry() != null) {
- message = getTargetComponentErrorMessage(entryOfTarget.getAnnotationEntry().getAnnotation(), summary, details);
- } else {
+ if (entryOfTarget.getAnnotationEntry() != null)
+ {
+ message = getTargetComponentErrorMessage(entryOfTarget
+ .getAnnotationEntry().getAnnotation(), summary, details);
+ }
+ else
+ {
//TODO document possible side effects
//due to a missing target annotation (see: tryToValidateLocally)
- message = getTargetComponentErrorMessage(entryOfSource.getAnnotationEntry().getAnnotation(), summary, details);
+ message = getTargetComponentErrorMessage(entryOfSource
+ .getAnnotationEntry().getAnnotation(), summary, details);
}
- if (message.getSummary() != null || message.getDetail() != null) {
- facesContext.addMessage(entryOfTarget.getComponent().getClientId(facesContext), message);
+ if (message.getSummary() != null || message.getDetail() != null)
+ {
+ facesContext.addMessage(entryOfTarget.getComponent().getClientId(
+ facesContext), message);
}
}
//has to be public for custom referencing strategies!!!
- public final void processSourceComponentAfterViolation(CrossValidationStorageEntry entryOfSource) {
- if(!handleSourceViolation(entryOfSource)) {
+ public final void processSourceComponentAfterViolation(
+ CrossValidationStorageEntry entryOfSource)
+ {
+ if (!handleSourceViolation(entryOfSource))
+ {
return;
}
//get validation error messages for the current component
- String summary = getErrorMessageSummary(entryOfSource.getAnnotationEntry().getAnnotation(), false);
- String details = getErrorMessageDetails(entryOfSource.getAnnotationEntry().getAnnotation(), false);
+ String summary = getErrorMessageSummary(entryOfSource
+ .getAnnotationEntry().getAnnotation(), false);
+ String details = getErrorMessageDetails(entryOfSource
+ .getAnnotationEntry().getAnnotation(), false);
- FacesMessage message = getSourceComponentErrorMessage(entryOfSource.getAnnotationEntry().getAnnotation(), summary, details);
+ FacesMessage message = getSourceComponentErrorMessage(entryOfSource
+ .getAnnotationEntry().getAnnotation(), summary, details);
- if (message.getSummary() != null || message.getDetail() != null) {
+ if (message.getSummary() != null || message.getDetail() != null)
+ {
//TODO
throw new ValidatorException(message);
- } else {
+ }
+ else
+ {
throw new ValidatorException(new FacesMessage());
}
}
//has to be public for custom referencing strategies!!!
- public FacesMessage getSourceComponentErrorMessage(Annotation annotation, String summary, String details) {
+ public FacesMessage getSourceComponentErrorMessage(Annotation annotation,
+ String summary, String details)
+ {
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
@@ -149,7 +204,9 @@
}
//has to be public for custom referencing strategies!!!
- public FacesMessage getTargetComponentErrorMessage(Annotation foundAnnotation, String summary, String details) {
+ public FacesMessage getTargetComponentErrorMessage(
+ Annotation foundAnnotation, String summary, String details)
+ {
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
@@ -160,22 +217,31 @@
}
//has to be public for custom referencing strategies!!!
- public ProcessedInformationEntry resolveValidationTargetEntry(Map<String, ProcessedInformationEntry> valueBindingConvertedValueMapping, String targetValueBinding, Object bean) {
- ProcessedInformationEntry processedInformationEntry = valueBindingConvertedValueMapping.get(targetValueBinding);
+ public ProcessedInformationEntry resolveValidationTargetEntry(
+ Map<String, ProcessedInformationEntry> valueBindingConvertedValueMapping,
+ String targetValueBinding, Object bean)
+ {
+ ProcessedInformationEntry processedInformationEntry = valueBindingConvertedValueMapping
+ .get(targetValueBinding);
//simple case
- if (processedInformationEntry.getFurtherEntries() == null) {
+ if (processedInformationEntry.getFurtherEntries() == null)
+ {
return processedInformationEntry;
}
//process complex component entries (e.g. a table)
//supported: cross-component but no cross-entity validation (= locale validation)
- if (processedInformationEntry.getBean().equals(bean)) {
+ if (processedInformationEntry.getBean().equals(bean))
+ {
return processedInformationEntry;
}
- for (ProcessedInformationEntry entry : processedInformationEntry.getFurtherEntries()) {
- if (entry.getBean().equals(bean)) {
+ for (ProcessedInformationEntry entry : processedInformationEntry
+ .getFurtherEntries())
+ {
+ if (entry.getBean().equals(bean))
+ {
return entry;
}
}
@@ -183,21 +249,33 @@
return null;
}
- protected String getErrorMessageSummary(Annotation annotation, boolean isTargetComponent) {
- return resolveMessage(getValidationErrorMsgKey(annotation, isTargetComponent));
+ protected String getErrorMessageSummary(Annotation annotation,
+ boolean isTargetComponent)
+ {
+ return resolveMessage(getValidationErrorMsgKey(annotation,
+ isTargetComponent));
}
- protected String getErrorMessageDetails(Annotation annotation, boolean isTargetComponent) {
- try {
+ protected String getErrorMessageDetails(Annotation annotation,
+ boolean isTargetComponent)
+ {
+ try
+ {
String key = getValidationErrorMsgKey(annotation, isTargetComponent);
- return (key != null) ? resolveMessage(key + DETAIL_MESSAGE_KEY_POSTFIX) : null;
- } catch (MissingResourceException e) {
- logger.warn("couldn't find key " + getValidationErrorMsgKey(annotation, isTargetComponent) + DETAIL_MESSAGE_KEY_POSTFIX, e);
+ return (key != null) ? resolveMessage(key
+ + DETAIL_MESSAGE_KEY_POSTFIX) : null;
+ }
+ catch (MissingResourceException e)
+ {
+ logger.warn("couldn't find key "
+ + getValidationErrorMsgKey(annotation, isTargetComponent)
+ + DETAIL_MESSAGE_KEY_POSTFIX, e);
}
return null;
}
- protected String getValidationErrorMsgKey(Annotation annotation) {
+ protected String getValidationErrorMsgKey(Annotation annotation)
+ {
return getValidationErrorMsgKey(annotation, false);
}
@@ -208,18 +286,27 @@
* the usage of this method requires a new instance
* -> in case of validation strategy beans application/singleton isn't allowed
*/
- protected void initValidation(CrossValidationStorageEntry crossValidationStorageEntry) {
+ protected void initValidation(
+ CrossValidationStorageEntry crossValidationStorageEntry)
+ {
}
- protected boolean handleTargetViolation(CrossValidationStorageEntry entryOfSource, CrossValidationStorageEntry entryOfTarget) {
+ protected boolean handleTargetViolation(
+ CrossValidationStorageEntry entryOfSource,
+ CrossValidationStorageEntry entryOfTarget)
+ {
return true;
}
- protected boolean handleSourceViolation(CrossValidationStorageEntry entryOfSource) {
+ protected boolean handleSourceViolation(
+ CrossValidationStorageEntry entryOfSource)
+ {
return true;
}
- public boolean useTargetComponentToDisplayErrorMsg(CrossValidationStorageEntry crossValidationStorageEntry) {
+ public boolean useTargetComponentToDisplayErrorMsg(
+ CrossValidationStorageEntry crossValidationStorageEntry)
+ {
return handleTargetViolation(crossValidationStorageEntry, null);
}
@@ -227,13 +314,15 @@
* abstract methods
*/
- protected abstract String getValidationErrorMsgKey(Annotation annotation, boolean isTargetComponent);
+ protected abstract String getValidationErrorMsgKey(Annotation annotation,
+ boolean isTargetComponent);
/*
* implements the specific validation logic
*/
- public abstract boolean isViolation(Object object1, Object object2, Annotation annotation);
+ public abstract boolean isViolation(Object object1, Object object2,
+ Annotation annotation);
/*
* returns the referenced validation targets of the annotation
@@ -241,4 +330,4 @@
* -> method returns an array with one value ("finalExam")
*/
public abstract String[] getValidationTargets(Annotation annotation);
-}
\ No newline at end of file
+}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java Thu Aug 14 19:17:02 2008
@@ -31,16 +31,25 @@
/**
* @author Gerhard Petracek
*/
-public abstract class AbstractCrossValidationStrategy extends AbstractValidationStrategy implements CrossValidationStrategy {
+public abstract class AbstractCrossValidationStrategy extends
+ AbstractValidationStrategy implements CrossValidationStrategy
+{
//init cross-validation
- public void processValidation(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) throws ValidatorException {
- CrossValidationStorageEntry entry = getCrossValidationStorageEntry(facesContext, uiComponent, annotationEntry, convertedObject);
+ public void processValidation(FacesContext facesContext,
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
+ CrossValidationStorageEntry entry = getCrossValidationStorageEntry(
+ facesContext, uiComponent, annotationEntry, convertedObject);
CrossValidationUtils.getOrInitCrossValidationStorage().add(entry);
}
- public CrossValidationStorageEntry getCrossValidationStorageEntry(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) {
+ public CrossValidationStorageEntry getCrossValidationStorageEntry(
+ FacesContext facesContext, UIComponent uiComponent,
+ AnnotationEntry annotationEntry, Object convertedObject)
+ {
CrossValidationStorageEntry entry = new CrossValidationStorageEntry();
entry.setAnnotationEntry(annotationEntry);
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java Thu Aug 14 19:17:02 2008
@@ -30,8 +30,14 @@
/**
* @author Gerhard Petracek
*/
-public interface CrossValidationStrategy extends ValidationStrategy {
- CrossValidationStorageEntry getCrossValidationStorageEntry(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject);
+public interface CrossValidationStrategy extends ValidationStrategy
+{
+ CrossValidationStorageEntry getCrossValidationStorageEntry(
+ FacesContext facesContext, UIComponent uiComponent,
+ AnnotationEntry annotationEntry, Object convertedObject);
- void processCrossValidation(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage) throws ValidatorException;
+ void processCrossValidation(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage)
+ throws ValidatorException;
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java Thu Aug 14 19:17:02 2008
@@ -31,7 +31,8 @@
/**
* @author Gerhard Petracek
*/
-public class DateIsStrategy extends AbstractCompareStrategy {
+public class DateIsStrategy extends AbstractCompareStrategy
+{
//TODO
protected static final String TOO_EARLY = "early";
protected static final String TOO_LATE = "late";
@@ -39,115 +40,170 @@
protected static final String RESULT_KEY = "result";
protected static final String COMPARED_VALUE_KEY = "target value";
- public boolean useTargetComponentToDisplayErrorMsg(CrossValidationStorageEntry crossValidationStorageEntry) {
+ public boolean useTargetComponentToDisplayErrorMsg(
+ CrossValidationStorageEntry crossValidationStorageEntry)
+ {
return true;
}
//TODO
- public boolean isViolation(Object object1, Object object2, Annotation annotation) {
+ public boolean isViolation(Object object1, Object object2,
+ Annotation annotation)
+ {
boolean violationFound;
- if (((DateIs) annotation).type().equals(DateIsType.same)) {
+ if (((DateIs) annotation).type().equals(DateIsType.same))
+ {
violationFound = object1 != null && !object1.equals(object2);
- if (violationFound) {
- this.violationResultStorage.put(RESULT_KEY, NOT_EQUAL_DATE_TIME);
+ if (violationFound)
+ {
+ this.violationResultStorage
+ .put(RESULT_KEY, NOT_EQUAL_DATE_TIME);
}
- } else if (((DateIs) annotation).type().equals(DateIsType.before)) {
- violationFound = object1 != null && object2 != null && (!new Date(((Date) object1).getTime()).before((Date) object2) || object1.equals(object2));
+ }
+ else if (((DateIs) annotation).type().equals(DateIsType.before))
+ {
+ violationFound = object1 != null
+ && object2 != null
+ && (!new Date(((Date) object1).getTime())
+ .before((Date) object2) || object1.equals(object2));
- if (violationFound) {
+ if (violationFound)
+ {
this.violationResultStorage.put(RESULT_KEY, TOO_LATE);
}
- } else {
- violationFound = object1 != null && object2 != null && (!new Date(((Date) object1).getTime()).after((Date) object2) || object1.equals(object2));
+ }
+ else
+ {
+ violationFound = object1 != null
+ && object2 != null
+ && (!new Date(((Date) object1).getTime())
+ .after((Date) object2) || object1.equals(object2));
- if (violationFound) {
+ if (violationFound)
+ {
this.violationResultStorage.put(RESULT_KEY, TOO_EARLY);
}
}
- if (violationFound) {
+ if (violationFound)
+ {
this.violationResultStorage.put(COMPARED_VALUE_KEY, object1);
}
return violationFound;
}
- public String[] getValidationTargets(Annotation annotation) {
+ public String[] getValidationTargets(Annotation annotation)
+ {
return ((DateIs) annotation).valueOf();
}
/*
* protected
*/
- protected String getValidationErrorMsgKey(Annotation annotation, boolean isTargetComponent) {
- if (!isTargetComponent) {
+ protected String getValidationErrorMsgKey(Annotation annotation,
+ boolean isTargetComponent)
+ {
+ if (!isTargetComponent)
+ {
return null;
}
String result = (String) this.violationResultStorage.get(RESULT_KEY);
- if (TOO_EARLY.equals(result)) {
+ if (TOO_EARLY.equals(result))
+ {
return getNotAfterErrorMsgKey((DateIs) annotation);
- } else if (TOO_LATE.equals(result)) {
+ }
+ else if (TOO_LATE.equals(result))
+ {
return getNotBeforeErrorMsgKey((DateIs) annotation);
- } else {
+ }
+ else
+ {
return getNotEqualErrorMsgKey((DateIs) annotation);
}
}
@Override
- protected String getErrorMessageSummary(Annotation annotation, boolean isTargetComponent) {
- if (!isTargetComponent) {
+ protected String getErrorMessageSummary(Annotation annotation,
+ boolean isTargetComponent)
+ {
+ if (!isTargetComponent)
+ {
return super.getErrorMessageSummary(annotation, isTargetComponent);
}
- return getErrorMessage(getValidationErrorMsgKey(annotation, isTargetComponent), annotation, isTargetComponent);
+ return getErrorMessage(getValidationErrorMsgKey(annotation,
+ isTargetComponent), annotation, isTargetComponent);
}
@Override
- protected String getErrorMessageDetails(Annotation annotation, boolean isTargetComponent) {
- if (!isTargetComponent) {
+ protected String getErrorMessageDetails(Annotation annotation,
+ boolean isTargetComponent)
+ {
+ if (!isTargetComponent)
+ {
return super.getErrorMessageDetails(annotation, isTargetComponent);
}
- try {
- return getErrorMessage(getValidationErrorMsgKey(annotation, isTargetComponent) + DETAIL_MESSAGE_KEY_POSTFIX, annotation, isTargetComponent);
- } catch (MissingResourceException e) {
- logger.warn("couldn't find key " + getValidationErrorMsgKey(annotation, isTargetComponent) + DETAIL_MESSAGE_KEY_POSTFIX, e);
+ try
+ {
+ return getErrorMessage(getValidationErrorMsgKey(annotation,
+ isTargetComponent)
+ + DETAIL_MESSAGE_KEY_POSTFIX, annotation, isTargetComponent);
+ }
+ catch (MissingResourceException e)
+ {
+ logger.warn("couldn't find key "
+ + getValidationErrorMsgKey(annotation, isTargetComponent)
+ + DETAIL_MESSAGE_KEY_POSTFIX, e);
}
return null;
}
//TODO
- protected String getErrorMessage(String key, Annotation annotation, boolean isTargetComponent) {
+ protected String getErrorMessage(String key, Annotation annotation,
+ boolean isTargetComponent)
+ {
String message = resolveMessage(key);
- DateFormat dateFormat = DateFormat.getDateInstance(((DateIs) annotation).errorMessageDateStyle(), FacesContext.getCurrentInstance().getViewRoot().getLocale());
+ DateFormat dateFormat = DateFormat.getDateInstance(
+ ((DateIs) annotation).errorMessageDateStyle(), FacesContext
+ .getCurrentInstance().getViewRoot().getLocale());
//replace placeholder with the value of the other component
- return message.replace("{0}", dateFormat.format((Date) this.violationResultStorage.get(COMPARED_VALUE_KEY)));
+ return message.replace("{0}", dateFormat
+ .format((Date) this.violationResultStorage
+ .get(COMPARED_VALUE_KEY)));
}
/*
* private
*/
- private String getNotAfterErrorMsgKey(DateIs annotation) {
- if (annotation.validationErrorMsgKey().equals("")) {
+ private String getNotAfterErrorMsgKey(DateIs annotation)
+ {
+ if (annotation.validationErrorMsgKey().equals(""))
+ {
return annotation.notAfterErrorMsgKey();
}
return annotation.validationErrorMsgKey();
}
- private String getNotBeforeErrorMsgKey(DateIs annotation) {
- if (annotation.validationErrorMsgKey().equals("")) {
+ private String getNotBeforeErrorMsgKey(DateIs annotation)
+ {
+ if (annotation.validationErrorMsgKey().equals(""))
+ {
return annotation.notBeforeErrorMsgKey();
}
return annotation.validationErrorMsgKey();
}
- private String getNotEqualErrorMsgKey(DateIs annotation) {
- if (annotation.validationErrorMsgKey().equals("")) {
+ private String getNotEqualErrorMsgKey(DateIs annotation)
+ {
+ if (annotation.validationErrorMsgKey().equals(""))
+ {
return annotation.notEqualErrorMsgKey();
}
return annotation.validationErrorMsgKey();
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java Thu Aug 14 19:17:02 2008
@@ -26,21 +26,29 @@
/**
* @author Gerhard Petracek
*/
-public class EqualsStrategy extends AbstractCompareStrategy {
+public class EqualsStrategy extends AbstractCompareStrategy
+{
- public boolean useTargetComponentToDisplayErrorMsg(CrossValidationStorageEntry crossValidationStorageEntry) {
+ public boolean useTargetComponentToDisplayErrorMsg(
+ CrossValidationStorageEntry crossValidationStorageEntry)
+ {
return true;
}
- protected String getValidationErrorMsgKey(Annotation annotation, boolean isTargetComponent) {
+ protected String getValidationErrorMsgKey(Annotation annotation,
+ boolean isTargetComponent)
+ {
return ((Equals) annotation).validationErrorMsgKey();
}
- public boolean isViolation(Object object1, Object object2, Annotation annotation) {
+ public boolean isViolation(Object object1, Object object2,
+ Annotation annotation)
+ {
return object1 != null && !object1.equals(object2);
}
- public String[] getValidationTargets(Annotation annotation) {
+ public String[] getValidationTargets(Annotation annotation)
+ {
return ((Equals) annotation).value();
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java Thu Aug 14 19:17:02 2008
@@ -25,20 +25,26 @@
/**
* @author Gerhard Petracek
*/
-public class NotEqualsStrategy extends EqualsStrategy {
+public class NotEqualsStrategy extends EqualsStrategy
+{
@Override
- protected String getValidationErrorMsgKey(Annotation annotation, boolean isTargetComponent) {
+ protected String getValidationErrorMsgKey(Annotation annotation,
+ boolean isTargetComponent)
+ {
return ((NotEquals) annotation).validationErrorMsgKey();
}
@Override
- public boolean isViolation(Object object1, Object object2, Annotation annotation) {
+ public boolean isViolation(Object object1, Object object2,
+ Annotation annotation)
+ {
return !super.isViolation(object1, object2, annotation);
}
@Override
- public String[] getValidationTargets(Annotation annotation) {
+ public String[] getValidationTargets(Annotation annotation)
+ {
return ((NotEquals) annotation).value();
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java Thu Aug 14 19:17:02 2008
@@ -27,29 +27,43 @@
/**
* @author Gerhard Petracek
*/
-public class RequiredIfStrategy extends AbstractCompareStrategy {
+public class RequiredIfStrategy extends AbstractCompareStrategy
+{
- public boolean useTargetComponentToDisplayErrorMsg(CrossValidationStorageEntry crossValidationStorageEntry) {
+ public boolean useTargetComponentToDisplayErrorMsg(
+ CrossValidationStorageEntry crossValidationStorageEntry)
+ {
return false;
}
- protected String getValidationErrorMsgKey(Annotation annotation, boolean isTargetComponent) {
+ protected String getValidationErrorMsgKey(Annotation annotation,
+ boolean isTargetComponent)
+ {
return ((RequiredIf) annotation).validationErrorMsgKey();
}
- public boolean isViolation(Object object1, Object object2, Annotation annotation) {
+ public boolean isViolation(Object object1, Object object2,
+ Annotation annotation)
+ {
boolean violationFound = false;
- if (((RequiredIf) annotation).is().equals(RequiredIfType.empty)) {
- violationFound = (object2 == null || object2.equals("")) && (object1 == null || object1.equals(""));
- } else if (((RequiredIf) annotation).is().equals(RequiredIfType.not_empty)) {
- violationFound = (object2 != null && !object2.equals("")) && (object1 == null || object1.equals(""));
+ if (((RequiredIf) annotation).is().equals(RequiredIfType.empty))
+ {
+ violationFound = (object2 == null || object2.equals(""))
+ && (object1 == null || object1.equals(""));
+ }
+ else if (((RequiredIf) annotation).is()
+ .equals(RequiredIfType.not_empty))
+ {
+ violationFound = (object2 != null && !object2.equals(""))
+ && (object1 == null || object1.equals(""));
}
return violationFound;
}
- public String[] getValidationTargets(Annotation annotation) {
+ public String[] getValidationTargets(Annotation annotation)
+ {
return ((RequiredIf) annotation).valueOf();
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/TargetAliasStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/TargetAliasStrategy.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/TargetAliasStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/TargetAliasStrategy.java Thu Aug 14 19:17:02 2008
@@ -27,13 +27,19 @@
/**
* @author Gerhard Petracek
*/
-public class TargetAliasStrategy extends AbstractCrossValidationStrategy {
- public void processCrossValidation(CrossValidationStorageEntry crossValidationStorageEntry, CrossValidationStorage crossValidationStorage) throws ValidatorException {
+public class TargetAliasStrategy extends AbstractCrossValidationStrategy
+{
+ public void processCrossValidation(
+ CrossValidationStorageEntry crossValidationStorageEntry,
+ CrossValidationStorage crossValidationStorage)
+ throws ValidatorException
+ {
//do nothing - it's just a marker - the inherited functionality is required and enough
}
//TODO
- protected String getValidationErrorMsgKey(Annotation annotation) {
+ protected String getValidationErrorMsgKey(Annotation annotation)
+ {
//do nothing - it's just a marker - the inherited functionality is required and enough
return null;
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java?rev=686111&r1=686110&r2=686111&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java Thu Aug 14 19:17:02 2008
@@ -26,20 +26,31 @@
/**
* @author Gerhard Petracek
*/
-public class CrossValidationUtils {
- public static final String CROSS_VALIDATION_STORAGE_KEY = CrossValidationStorage.class.getName();
+public class CrossValidationUtils
+{
+ public static final String CROSS_VALIDATION_STORAGE_KEY = CrossValidationStorage.class
+ .getName();
- public static CrossValidationStorage getOrInitCrossValidationStorage() {
- Map requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
+ public static CrossValidationStorage getOrInitCrossValidationStorage()
+ {
+ Map requestMap = FacesContext.getCurrentInstance().getExternalContext()
+ .getRequestMap();
- if (!requestMap.containsKey(CROSS_VALIDATION_STORAGE_KEY)) {
+ if (!requestMap.containsKey(CROSS_VALIDATION_STORAGE_KEY))
+ {
resetCrossValidationStorage();
}
- return (CrossValidationStorage) requestMap.get(CROSS_VALIDATION_STORAGE_KEY);
+ return (CrossValidationStorage) requestMap
+ .get(CROSS_VALIDATION_STORAGE_KEY);
}
- public static void resetCrossValidationStorage() {
- FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put(CROSS_VALIDATION_STORAGE_KEY, new CrossValidationStorage());
+ public static void resetCrossValidationStorage()
+ {
+ FacesContext
+ .getCurrentInstance()
+ .getExternalContext()
+ .getRequestMap()
+ .put(CROSS_VALIDATION_STORAGE_KEY, new CrossValidationStorage());
}
}