You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2009/11/22 19:26:35 UTC

svn commit: r883118 - /myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java

Author: gpetracek
Date: Sun Nov 22 18:26:35 2009
New Revision: 883118

URL: http://svn.apache.org/viewvc?rev=883118&view=rev
Log:
EXTVAL-72 implementation

Modified:
    myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java

Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/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/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java?rev=883118&r1=883117&r2=883118&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java Sun Nov 22 18:26:35 2009
@@ -64,22 +64,38 @@
         return annotation.validationErrorMsgKey();
     }
 
-    public boolean isViolation(Object object1, Object object2, RequiredIf annotation)
+    public boolean isViolation(Object source, Object target, RequiredIf annotation)
     {
         boolean violationFound = false;
 
         if (annotation.is().equals(RequiredIfType.empty))
         {
-            violationFound = (object2 == null || object2.equals("")) && (object1 == null || object1.equals(""));
+            violationFound = (isTargetEmpty(target) || Boolean.FALSE.equals(target)) && isSourceEmpty(source);
         }
         else if (annotation.is().equals(RequiredIfType.not_empty))
         {
-            violationFound = (object2 != null && !object2.equals("")) && (object1 == null || object1.equals(""));
+            violationFound = (isTargetNotEmpty(target) && isSourceEmpty(source) && !(target instanceof Boolean)) ||
+                    (Boolean.TRUE.equals(target) && isSourceEmpty(source));
         }
 
         return violationFound;
     }
 
+    private boolean isTargetEmpty(Object target)
+    {
+        return target == null || target.equals("");
+    }
+
+    private boolean isSourceEmpty(Object source)
+    {
+        return source == null || source.equals("");
+    }
+
+    private boolean isTargetNotEmpty(Object target)
+    {
+        return target != null && !target.equals("");
+    }
+
     public String[] getValidationTargets(RequiredIf annotation)
     {
         return annotation.valueOf();