Revision: 9601
Author: ncha...@google.com
Date: Mon Jan 24 10:40:07 2011
Log: Include class level constraints in the BeanDescriptor.
All BeanDescriptor TCK tests now pass.
[JSR 303 TCK Result] 65 of 257 (25.29%) Pass with 25 Failures and 4 Errors.
Review at http://gwt-code-reviews.appspot.com/1319801
Review by: rchan...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=9601
Modified:
/trunk/user/src/com/google/gwt/validation/client/impl/GwtBeanDescriptorImpl.java
/trunk/user/src/com/google/gwt/validation/rebind/GwtSpecificValidatorCreator.java
/trunk/user/test/org/hibernate/jsr303/tck/tests/metadata/BeanDescriptorGwtTest.java
=======================================
---
/trunk/user/src/com/google/gwt/validation/client/impl/GwtBeanDescriptorImpl.java
Tue Dec 14 08:48:08 2010
+++
/trunk/user/src/com/google/gwt/validation/client/impl/GwtBeanDescriptorImpl.java
Mon Jan 24 10:40:07 2011
@@ -15,6 +15,7 @@
*/
package com.google.gwt.validation.client.impl;
+import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -34,21 +35,31 @@
/**
* Builder for {@link GwtBeanDescriptors}.
- *
+ *
* @param <T> the bean Type
*/
public static final class Builder<T> {
private final Class<T> clazz;
- private final Map<String, PropertyDescriptor> descriptorMap = new
HashMap<String, PropertyDescriptor>();
+ private final Map<String, PropertyDescriptor> descriptorMap =
+ new HashMap<String, PropertyDescriptor>();
+ private final Set<ConstraintDescriptor<? extends Annotation>>
constraints =
+ new HashSet<ConstraintDescriptor<? extends Annotation>>();
private boolean isConstrained;
private Builder(Class<T> clazz) {
this.clazz = clazz;
}
+
+ public Builder<T> add(
+ ConstraintDescriptor<? extends Annotation> constraintDescriptor) {
+ constraints.add(constraintDescriptor);
+ return this;
+ }
public GwtBeanDescriptorImpl<T> build() {
- return new GwtBeanDescriptorImpl<T>(clazz, isConstrained,
descriptorMap);
+ return new GwtBeanDescriptorImpl<T>(clazz, isConstrained,
descriptorMap,
+ constraints);
}
public Builder<T> put(String key, PropertyDescriptor value) {
@@ -73,11 +84,13 @@
private final boolean isBeanConstrained;
private GwtBeanDescriptorImpl(Class<T> clazz, boolean isConstrained,
- Map<String, PropertyDescriptor> descriptorMap) {
+ Map<String, PropertyDescriptor> descriptorMap,
+ Set<ConstraintDescriptor<?>> constraints) {
super();
this.clazz = clazz;
this.isBeanConstrained = isConstrained;
this.descriptorMap.putAll(descriptorMap);
+ this.constraints.addAll(constraints);
}
public ConstraintFinder findConstraints() {
@@ -109,15 +122,4 @@
public boolean isBeanConstrained() {
return isBeanConstrained;
}
-
- protected void setDescriptorMap(Map<String, PropertyDescriptor> map) {
- descriptorMap.clear();
- descriptorMap.putAll(map);
- constraints.clear();
- for (PropertyDescriptor p : descriptorMap.values()) {
- if (p.hasConstraints()) {
- constraints.addAll(p.getConstraintDescriptors());
- }
- }
- }
-}
+}
=======================================
---
/trunk/user/src/com/google/gwt/validation/rebind/GwtSpecificValidatorCreator.java
Wed Jan 19 06:58:02 2011
+++
/trunk/user/src/com/google/gwt/validation/rebind/GwtSpecificValidatorCreator.java
Mon Jan 24 10:40:07 2011
@@ -491,6 +491,12 @@
// .setConstrained(true)
sw.println(".setConstrained(" + beanDescriptor.isBeanConstrained()
+ ")");
+
+ int count = 0;
+ for (ConstraintDescriptor<? extends Annotation>constraint :
beanDescriptor.getConstraintDescriptors()) {
+ // .add(c0)
+ sw.println(".add(" + constraintDescriptorVar("this", count++) + ")");
+ }
// .put("myProperty", myProperty_pd)
for (PropertyDescriptor p : beanDescriptor.getConstrainedProperties())
{
@@ -612,8 +618,7 @@
int count = 0;
for (ConstraintDescriptor<?> constraint :
p.getConstraintDescriptors()) {
writeConstraintDescriptor(sw, constraint,
- constraintDescriptorVar(p.getPropertyName(), count));
- count++; // index starts at zero.
+ constraintDescriptorVar(p.getPropertyName(), count++));
}
writePropertyDescriptor(sw, p);
if (p.isCascaded()) {
@@ -622,20 +627,19 @@
: createBeanHelper(p.getElementClass()));
}
}
-
- // Now write the BeanDescriptor after we already have the
PropertyDescriptor
- writeBeanDescriptor(sw);
- sw.println();
// Create a variable for each constraint of this class.
int count = 0;
for (ConstraintDescriptor<?> constraint :
beanHelper.getBeanDescriptor().getConstraintDescriptors()) {
-
writeConstraintDescriptor(sw, constraint,
- constraintDescriptorVar("this", count));
- count++; // index starts at zero.
- }
+ constraintDescriptorVar("this", count++));
+ }
+
+ // Now write the BeanDescriptor after we already have the
+ // PropertyDescriptors and class constraints
+ writeBeanDescriptor(sw);
+ sw.println();
}
private void writeFieldWrapperMethod(SourceWriter sw, JField field) {
@@ -882,7 +886,7 @@
+ " for type " + clazz);
}
}
- count++; // index starts at 0
+ count++;
}
// validate all super classes and interfaces
@@ -1300,7 +1304,7 @@
writeValidateConstraint(sw, p, elementClass, constraint,
constraintDescriptorVar);
}
- count++; // index starts at zero
+ count++;
}
sw.outdent();
sw.println("}");
=======================================
---
/trunk/user/test/org/hibernate/jsr303/tck/tests/metadata/BeanDescriptorGwtTest.java
Tue Jan 11 14:19:47 2011
+++
/trunk/user/test/org/hibernate/jsr303/tck/tests/metadata/BeanDescriptorGwtTest.java
Mon Jan 24 10:40:07 2011
@@ -17,8 +17,6 @@
import com.google.gwt.junit.client.GWTTestCase;
-import org.hibernate.jsr303.tck.util.client.Failing;
-
/**
* Test wrapper for {@link BeanDescriptorTest}.
*/
@@ -54,7 +52,6 @@
delegate.testGetConstraintsForNullProperty();
}
- @Failing(issue = 5802)
public void testIsBeanConstrainedDueToConstraintOnEntity() {
delegate.testIsBeanConstrainedDueToConstraintOnEntity();
}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors