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/14 23:27:19 UTC
svn commit: r686048 [5/6] - in
/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces: ./ 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/a...
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java Thu Aug 14 14:27:15 2008
@@ -33,7 +33,8 @@
/**
* @author Gerhard Petracek
*/
-public class JpaValidationStrategy extends AbstractValidationStrategy {
+public class JpaValidationStrategy extends AbstractValidationStrategy
+{
private static final String VALIDATE_REQUIRED = "required";
private static final String VALIDATE_LENGTH = "length";
@@ -41,76 +42,112 @@
private String violation;
private int maxLength;
- public void processValidation(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) throws ValidatorException {
+ public void processValidation(FacesContext facesContext,
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
Annotation annotation = annotationEntry.getAnnotation();
- if (annotation instanceof Column) {
+ if (annotation instanceof Column)
+ {
validateColumnAnnotation((Column) annotation, convertedObject);
- } else if (annotation instanceof Basic) {
+ }
+ else if (annotation instanceof Basic)
+ {
validateBasicAnnotation((Basic) annotation, convertedObject);
- } else if (annotation instanceof OneToOne) {
+ }
+ else if (annotation instanceof OneToOne)
+ {
validateOneToOneAnnotation((OneToOne) annotation, convertedObject);
- } else if (annotation instanceof ManyToOne) {
+ }
+ else if (annotation instanceof ManyToOne)
+ {
validateManyToOneAnnotation((ManyToOne) annotation, convertedObject);
}
}
- private void validateColumnAnnotation(Column column, Object convertedObject) throws ValidatorException {
- if (!column.nullable()) {
+ private void validateColumnAnnotation(Column column, Object convertedObject)
+ throws ValidatorException
+ {
+ if (!column.nullable())
+ {
checkRequiredConvertedObject(convertedObject);
}
- if (convertedObject == null) {
+ if (convertedObject == null)
+ {
return;
}
- if (convertedObject instanceof String && column.length() < ((String) convertedObject).length()) {
+ if (convertedObject instanceof String
+ && column.length() < ((String) convertedObject).length())
+ {
this.violation = VALIDATE_LENGTH;
this.maxLength = column.length();
throw new ValidatorException(getValidationErrorFacesMassage(null));
}
}
- private void validateBasicAnnotation(Basic basic, Object convertedObject) throws ValidatorException {
- if (!basic.optional()) {
+ private void validateBasicAnnotation(Basic basic, Object convertedObject)
+ throws ValidatorException
+ {
+ if (!basic.optional())
+ {
checkRequiredConvertedObject(convertedObject);
}
}
- private void validateOneToOneAnnotation(OneToOne oneToOne, Object convertedObject) {
- if (!oneToOne.optional()) {
+ private void validateOneToOneAnnotation(OneToOne oneToOne,
+ Object convertedObject)
+ {
+ if (!oneToOne.optional())
+ {
//TODO
checkRequiredConvertedObject(convertedObject);
}
}
- private void validateManyToOneAnnotation(ManyToOne manyToOne, Object convertedObject) {
- if (!manyToOne.optional()) {
+ private void validateManyToOneAnnotation(ManyToOne manyToOne,
+ Object convertedObject)
+ {
+ if (!manyToOne.optional())
+ {
//TODO
checkRequiredConvertedObject(convertedObject);
}
}
- private void checkRequiredConvertedObject(Object convertedObject) throws ValidatorException {
- if (convertedObject == null || convertedObject.equals("")) {
+ private void checkRequiredConvertedObject(Object convertedObject)
+ throws ValidatorException
+ {
+ if (convertedObject == null || convertedObject.equals(""))
+ {
this.violation = VALIDATE_REQUIRED;
throw new ValidatorException(getValidationErrorFacesMassage(null));
}
}
- protected String getValidationErrorMsgKey(Annotation annotation) {
- if (VALIDATE_LENGTH.equals(this.violation)) {
+ protected String getValidationErrorMsgKey(Annotation annotation)
+ {
+ if (VALIDATE_LENGTH.equals(this.violation))
+ {
return "field_too_long";
- } else {
+ }
+ else
+ {
return "field_required";
}
}
- protected String getErrorMessageDetails(Annotation annotation) {
+ protected String getErrorMessageDetails(Annotation annotation)
+ {
String message = super.getErrorMessageDetails(annotation);
- if (VALIDATE_LENGTH.equals(this.violation)) {
+ if (VALIDATE_LENGTH.equals(this.violation))
+ {
return message.replace("{0}", "" + this.maxLength);
- } else {
+ }
+ else
+ {
return message;
}
}
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java Thu Aug 14 14:27:15 2008
@@ -30,9 +30,13 @@
/**
* @author Gerhard Petracek
*/
-public class LengthStrategy extends AbstractValidatorAdapter {
+public class LengthStrategy extends AbstractValidatorAdapter
+{
- protected void processValidation(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) throws ValidatorException {
+ protected void processValidation(FacesContext facesContext,
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
Length annotation = annotationEntry.getAnnotation(Length.class);
LengthValidator lengthValidator = new LengthValidator();
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java Thu Aug 14 14:27:15 2008
@@ -30,9 +30,13 @@
/**
* @author Gerhard Petracek
*/
-public class LongRangeStrategy extends AbstractValidatorAdapter {
+public class LongRangeStrategy extends AbstractValidatorAdapter
+{
- protected void processValidation(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) throws ValidatorException {
+ protected void processValidation(FacesContext facesContext,
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
LongRange annotation = annotationEntry.getAnnotation(LongRange.class);
LongRangeValidator longRangeValidator = new LongRangeValidator();
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RegexStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RegexStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RegexStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RegexStrategy.java Thu Aug 14 14:27:15 2008
@@ -32,28 +32,33 @@
/**
* @author Gerhard Petracek
*/
-public class RegexStrategy extends AbstractValidationStrategy {
+public class RegexStrategy extends AbstractValidationStrategy
+{
protected void processValidation(FacesContext facesContext,
- UIComponent uiComponent,
- AnnotationEntry annotationEntry,
- Object convertedObject) throws ValidatorException {
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
Regex annotation = annotationEntry.getAnnotation(Regex.class);
- for (String expression : annotation.value()) {
- if (convertedObject == null || !Pattern.compile(expression).matcher(convertedObject.toString()).matches()) {
- throw new ValidatorException(
- new FacesMessage(
- FacesMessage.SEVERITY_ERROR,
- getErrorMessageSummary(annotation),
- getErrorMessageDetails(annotation)
- .replace("{0}", expression)));
+ for (String expression : annotation.value())
+ {
+ if (convertedObject == null
+ || !Pattern.compile(expression).matcher(
+ convertedObject.toString()).matches())
+ {
+ throw new ValidatorException(new FacesMessage(
+ FacesMessage.SEVERITY_ERROR,
+ getErrorMessageSummary(annotation),
+ getErrorMessageDetails(annotation).replace("{0}",
+ expression)));
}
}
}
- protected String getValidationErrorMsgKey(Annotation annotation) {
+ protected String getValidationErrorMsgKey(Annotation annotation)
+ {
return ((Regex) annotation).validationErrorMsgKey();
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java Thu Aug 14 14:27:15 2008
@@ -30,15 +30,23 @@
/**
* @author Gerhard Petracek
*/
-public class RequiredStrategy extends AbstractValidationStrategy {
+public class RequiredStrategy extends AbstractValidationStrategy
+{
- public void processValidation(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) throws ValidatorException {
- if (convertedObject == null || convertedObject.equals("")) {
- throw new ValidatorException(getValidationErrorFacesMassage(annotationEntry.getAnnotation()));
+ public void processValidation(FacesContext facesContext,
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
+ if (convertedObject == null || convertedObject.equals(""))
+ {
+ throw new ValidatorException(
+ getValidationErrorFacesMassage(annotationEntry
+ .getAnnotation()));
}
}
- protected String getValidationErrorMsgKey(Annotation annotation) {
+ protected String getValidationErrorMsgKey(Annotation annotation)
+ {
return ((Required) annotation).validationErrorMsgKey();
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java Thu Aug 14 14:27:15 2008
@@ -30,17 +30,25 @@
/**
* @author Gerhard Petracek
*/
-public class ValidatorStrategy extends AbstractValidatorAdapter {
+public class ValidatorStrategy extends AbstractValidatorAdapter
+{
- protected void processValidation(FacesContext facesContext, UIComponent uiComponent, AnnotationEntry annotationEntry, Object convertedObject) throws ValidatorException {
+ protected void processValidation(FacesContext facesContext,
+ UIComponent uiComponent, AnnotationEntry annotationEntry,
+ Object convertedObject) throws ValidatorException
+ {
- Class[] validatorClasses = annotationEntry.getAnnotation(Validator.class).value();
+ Class[] validatorClasses = annotationEntry.getAnnotation(
+ Validator.class).value();
javax.faces.validator.Validator validator;
- for (Class validatorClassName : validatorClasses) {
- validator = (javax.faces.validator.Validator) ClassUtils.tryToInstantiateClass(validatorClassName);
+ for (Class validatorClassName : validatorClasses)
+ {
+ validator = (javax.faces.validator.Validator) ClassUtils
+ .tryToInstantiateClass(validatorClassName);
- if (validator == null) {
+ if (validator == null)
+ {
logger.warn(validatorClassName.getName() + " not found");
continue;
}
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java Thu Aug 14 14:27:15 2008
@@ -32,55 +32,87 @@
/**
* @author Gerhard Petracek
*/
-public class CrossValidationPhaseListener implements PhaseListener {
+public class CrossValidationPhaseListener implements PhaseListener
+{
private boolean isInitialized = false;
- public void afterPhase(PhaseEvent event) {
+ public void afterPhase(PhaseEvent event)
+ {
- try {
- CrossValidationStorage crossValidationStorage = CrossValidationUtils.getOrInitCrossValidationStorage();
- for (CrossValidationStorageEntry entry : crossValidationStorage.getCrossValidationStorageEntries()) {
- try {
- entry.getValidationStrategy().processCrossValidation(entry, crossValidationStorage);
- } catch (ValidatorException e) {
+ try
+ {
+ CrossValidationStorage crossValidationStorage = CrossValidationUtils
+ .getOrInitCrossValidationStorage();
+ for (CrossValidationStorageEntry entry : crossValidationStorage
+ .getCrossValidationStorageEntries())
+ {
+ try
+ {
+ entry.getValidationStrategy().processCrossValidation(entry,
+ crossValidationStorage);
+ }
+ catch (ValidatorException e)
+ {
FacesMessage facesMessage = e.getFacesMessage();
- if (facesMessage != null && facesMessage.getSummary() != null && facesMessage.getDetail() != null) {
+ if (facesMessage != null
+ && facesMessage.getSummary() != null
+ && facesMessage.getDetail() != null)
+ {
UIComponent component = entry.getComponent();
String clientId = null;
//TODO
- if (component != null) {
- clientId = component.getClientId(event.getFacesContext());
+ if (component != null)
+ {
+ clientId = component.getClientId(event
+ .getFacesContext());
}
- event.getFacesContext().addMessage(clientId, facesMessage);
+ event.getFacesContext().addMessage(clientId,
+ facesMessage);
}
event.getFacesContext().renderResponse();
- } catch (MissingResourceException e) {
- event.getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "custom validation message not found", e.toString()));
+ }
+ catch (MissingResourceException e)
+ {
+ event.getFacesContext().addMessage(
+ null,
+ new FacesMessage(FacesMessage.SEVERITY_ERROR,
+ "custom validation message not found", e
+ .toString()));
event.getFacesContext().renderResponse();
throw e;
}
}
- } finally {
+ }
+ finally
+ {
CrossValidationUtils.resetCrossValidationStorage();
}
}
- public void beforePhase(PhaseEvent event) {
- if (!isInitialized) {
- if (WebXmlParameter.DEACTIVATE_CROSSVALIDATION != null && WebXmlParameter.DEACTIVATE_CROSSVALIDATION.equalsIgnoreCase("true")) {
+ public void beforePhase(PhaseEvent event)
+ {
+ if (!isInitialized)
+ {
+ if (WebXmlParameter.DEACTIVATE_CROSSVALIDATION != null
+ && WebXmlParameter.DEACTIVATE_CROSSVALIDATION
+ .equalsIgnoreCase("true"))
+ {
ExtValUtils.deregisterPhaseListener(this);
- } else {
+ }
+ else
+ {
isInitialized = true;
}
}
}
- public PhaseId getPhaseId() {
+ public PhaseId getPhaseId()
+ {
return PhaseId.ANY_PHASE;
}
}
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorage.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorage.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorage.java Thu Aug 14 14:27:15 2008
@@ -24,18 +24,24 @@
/**
* @author Gerhard Petracek
*/
-public class CrossValidationStorage {
- private List<CrossValidationStorageEntry> crossValidationStorageEntries = new ArrayList<CrossValidationStorageEntry>();
+public class CrossValidationStorage
+{
+ private List<CrossValidationStorageEntry> crossValidationStorageEntries =
+ new ArrayList<CrossValidationStorageEntry>();
- public void add(CrossValidationStorageEntry entry) {
+ public void add(CrossValidationStorageEntry entry)
+ {
this.crossValidationStorageEntries.add(entry);
}
- public List<CrossValidationStorageEntry> getCrossValidationStorageEntries() {
+ public List<CrossValidationStorageEntry> getCrossValidationStorageEntries()
+ {
return crossValidationStorageEntries;
}
- public void setCrossValidationStorageEntries(List<CrossValidationStorageEntry> crossValidationStorageEntries) {
+ public void setCrossValidationStorageEntries(
+ List<CrossValidationStorageEntry> crossValidationStorageEntries)
+ {
this.crossValidationStorageEntries = crossValidationStorageEntries;
}
}
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java Thu Aug 14 14:27:15 2008
@@ -26,7 +26,8 @@
/**
* @author Gerhard Petracek
*/
-public class CrossValidationStorageEntry {
+public class CrossValidationStorageEntry
+{
private AnnotationEntry annotationEntry;
//for complex components (e.g. a table) stores the object of entry (#{entry.property})
private Object bean;
@@ -34,43 +35,53 @@
private Object convertedObject;
private CrossValidationStrategy validationStrategy;
- public AnnotationEntry getAnnotationEntry() {
+ public AnnotationEntry getAnnotationEntry()
+ {
return annotationEntry;
}
- public void setAnnotationEntry(AnnotationEntry annotationEntry) {
+ public void setAnnotationEntry(AnnotationEntry annotationEntry)
+ {
this.annotationEntry = annotationEntry;
}
- public Object getBean() {
+ public Object getBean()
+ {
return bean;
}
- public void setBean(Object bean) {
+ public void setBean(Object bean)
+ {
this.bean = bean;
}
- public UIComponent getComponent() {
+ public UIComponent getComponent()
+ {
return component;
}
- public void setComponent(UIComponent component) {
+ public void setComponent(UIComponent component)
+ {
this.component = component;
}
- public Object getConvertedObject() {
+ public Object getConvertedObject()
+ {
return convertedObject;
}
- public void setConvertedObject(Object convertedObject) {
+ public void setConvertedObject(Object convertedObject)
+ {
this.convertedObject = convertedObject;
}
- public CrossValidationStrategy getValidationStrategy() {
+ public CrossValidationStrategy getValidationStrategy()
+ {
return validationStrategy;
}
- public void setValidationStrategy(CrossValidationStrategy validationStrategy) {
+ public void setValidationStrategy(CrossValidationStrategy validationStrategy)
+ {
this.validationStrategy = validationStrategy;
}
}
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/WebXmlParameter.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/WebXmlParameter.java Thu Aug 14 14:27:15 2008
@@ -25,6 +25,8 @@
*
* @author Gerhard Petracek
*/
-public interface WebXmlParameter {
- static final String DEACTIVATE_CROSSVALIDATION = WebXmlUtils.getInitParameter("DEACTIVATE_CROSSVALIDATION");
+public interface WebXmlParameter
+{
+ static final String DEACTIVATE_CROSSVALIDATION = WebXmlUtils
+ .getInitParameter("DEACTIVATE_CROSSVALIDATION");
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java Thu Aug 14 14:27:15 2008
@@ -28,10 +28,11 @@
/**
* @author Gerhard Petracek
*/
-@Target({METHOD, FIELD})
+@Target( { METHOD, FIELD })
@Retention(RUNTIME)
//TODO DateIsEntry (value, type)
-public @interface DateIs {
+public @interface DateIs
+{
String[] valueOf();
/*
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java Thu Aug 14 14:27:15 2008
@@ -21,6 +21,8 @@
/**
* @author Gerhard Petracek
*/
-public enum DateIsType {
- before, after, same //TODO: beforeOrSame, afterOrSame
+public enum DateIsType
+{
+ before, after, same
+ //TODO: beforeOrSame, afterOrSame
}
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/Equals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/Equals.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/Equals.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/Equals.java Thu Aug 14 14:27:15 2008
@@ -27,9 +27,10 @@
/**
* @author Gerhard Petracek
*/
-@Target({METHOD, FIELD})
+@Target( { METHOD, FIELD })
@Retention(RUNTIME)
-public @interface Equals {
+public @interface Equals
+{
String[] value();
String validationErrorMsgKey() default "duplicated_content_required";
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/NotEquals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/NotEquals.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/NotEquals.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/NotEquals.java Thu Aug 14 14:27:15 2008
@@ -27,9 +27,10 @@
/**
* @author Gerhard Petracek
*/
-@Target({METHOD, FIELD})
+@Target( { METHOD, FIELD })
@Retention(RUNTIME)
-public @interface NotEquals {
+public @interface NotEquals
+{
String[] value();
String validationErrorMsgKey() default "duplicated_content_denied";
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIf.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIf.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIf.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIf.java Thu Aug 14 14:27:15 2008
@@ -27,10 +27,11 @@
/**
* @author Gerhard Petracek
*/
-@Target({METHOD, FIELD})
+@Target( { METHOD, FIELD })
@Retention(RUNTIME)
//TODO DateIsEntry (value, type)
-public @interface RequiredIf {
+public @interface RequiredIf
+{
String[] valueOf();
/*
Modified: myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/RequiredIfType.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/TargetAlias.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/resolver/DefaultValidationErrorMessageResolver.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/AliasCompareStrategy.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java Thu Aug 14 14:27:15 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/branches/jsf_1.1_layout_myfaces/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/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java?rev=686048&r1=686047&r2=686048&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1_layout_myfaces/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ReferencingStrategy.java Thu Aug 14 14:27:15 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