You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by mb...@apache.org on 2010/11/01 22:28:31 UTC

svn commit: r1029847 - /incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/constraints/dynamic/NullValue.java

Author: mbenson
Date: Mon Nov  1 21:28:30 2010
New Revision: 1029847

URL: http://svn.apache.org/viewvc?rev=1029847&view=rev
Log:
NullValue appender was incorrectly merging to parent groups

Modified:
    incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/constraints/dynamic/NullValue.java

Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/constraints/dynamic/NullValue.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/constraints/dynamic/NullValue.java?rev=1029847&r1=1029846&r2=1029847&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/constraints/dynamic/NullValue.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/constraints/dynamic/NullValue.java Mon Nov  1 21:28:30 2010
@@ -41,10 +41,10 @@ import javax.validation.ConstraintValida
 import javax.validation.Payload;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Null;
+import javax.validation.groups.Default;
 
 import org.apache.bval.jsr303.dynamic.ConstraintAppender;
-import org.apache.bval.jsr303.groups.Group;
-import org.apache.bval.jsr303.groups.Groups;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.proxy2.stub.AnnotationFactory;
 import org.apache.commons.proxy2.stub.StubConfigurer;
@@ -236,34 +236,37 @@ public @interface NullValue {
         }
 
         private static void addRulesByGroup(Map<Class<?>, Rule> toMap, NullValue fromConstraint) {
-            Groups groups = GROUPS_COMPUTER.computeGroups(fromConstraint.groups());
-            for (Group g : groups.getGroups()) {
+            for (Class<?> group : groups(fromConstraint)) {
                 Rule particle = fromConstraint.value();
-                if (particle == Rule.ALLOW && toMap.containsKey(g.getGroup())) {
-                    if (toMap.get(g.getGroup()) != particle) {
-                        //mutual annihilation: ALLOW + any other == none
-                        toMap.remove(g.getGroup());
+                if (particle == Rule.ALLOW && toMap.containsKey(group)) {
+                    if (toMap.get(group) != particle) {
+                        // mutual annihilation: ALLOW + any other == none
+                        toMap.remove(group);
                     }
                     continue;
                 }
-                toMap.put(g.getGroup(), particle);
+                toMap.put(group, particle);
             }
         }
 
         private static void addConstraintByGroup(Map<Class<?>, Set<NullValue>> toMap, NullValue constraint,
             Map<Class<?>, Rule> rulesByGroup) {
-            Groups groups = GROUPS_COMPUTER.computeGroups(constraint.groups());
-            for (Group g : groups.getGroups()) {
-                if (constraint.value() != rulesByGroup.get(g.getGroup())) {
+            for (Class<?> group : groups(constraint)) {
+                if (constraint.value() != rulesByGroup.get(group)) {
                     continue;
                 }
-                Set<NullValue> set = toMap.get(g.getGroup());
+                Set<NullValue> set = toMap.get(group);
                 if (set == null) {
                     set = new HashSet<NullValue>();
-                    toMap.put(g.getGroup(), set);
+                    toMap.put(group, set);
                 }
                 set.add(constraint);
             }
         }
+        
+        private static Class<?>[] groups(NullValue fromConstraint) {
+            Class<?>[] result = fromConstraint.groups();
+            return ArrayUtils.isEmpty(result) ? ArrayUtils.<Class<?>> toArray(Default.class) : result;
+        }
     }
 }