Author: epbernard
Date: 2008-12-02 06:03:35 -0500 (Tue, 02 Dec 2008)
New Revision: 15632
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/BeanDescriptorImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/metadata/
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaDataProviderImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ElementDescriptorImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java
validator/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java
validator/trunk/validation-api/src/main/java/javax/validation/Validator.java
Log:
BVAL-77 move metadata methods to BeanValidation
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaDataProviderImpl.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaDataProviderImpl.java 2008-12-02
09:57:05 UTC (rev 15631)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaDataProviderImpl.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -41,6 +41,7 @@
import org.hibernate.validation.impl.ConstraintDescriptorImpl;
import org.hibernate.validation.impl.ConstraintFactoryImpl;
import org.hibernate.validation.impl.ElementDescriptorImpl;
+import org.hibernate.validation.impl.BeanDescriptorImpl;
import org.hibernate.validation.util.LoggerFactory;
import org.hibernate.validation.util.ReflectionHelper;
@@ -65,7 +66,7 @@
/**
* The main element descriptor for <code>beanClass</code>.
*/
- private ElementDescriptorImpl beanDescriptor;
+ private BeanDescriptorImpl<T> beanDescriptor;
/**
* List of constraints.
@@ -109,7 +110,7 @@
* for this validator and create meta data.
*/
private void createMetaData() {
- beanDescriptor = new ElementDescriptorImpl( beanClass, false, "" );
+ beanDescriptor = new BeanDescriptorImpl<T>( beanClass, this );
List<Class> classes = new ArrayList<Class>();
computeClassHierarchy( beanClass, classes );
for ( Class current : classes ) {
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-12-02
09:57:05 UTC (rev 15631)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -334,7 +334,11 @@
return new HashSet<ConstraintViolation<T>>( failingConstraintViolations );
}
+ public BeanDescriptor getConstraintsForClass(Class<?> clazz) {
+ return factory.getMetadataProvider( clazz ).getBeanDescriptor();
+ }
+
private <T> void validateValue(Class<T> beanType, Object object,
PropertyIterator propertyIter, List<ConstraintViolationImpl<T>>
failingConstraintViolations, String... groups) {
ConstraintDescriptorImpl constraintDescriptor = getConstraintDescriptorForPath(
beanType, propertyIter );
@@ -492,27 +496,6 @@
/**
- * @todo add child validation
- */
- public boolean hasConstraints(Class<?> clazz) {
- return factory.getMetadataProvider( clazz ).getConstraintMetaDataList().size() > 0;
- }
-
- public BeanDescriptor getConstraintsForClass(Class<?> clazz) {
- return factory.getMetadataProvider( clazz ).getBeanDescriptor();
- }
-
- public PropertyDescriptor getConstraintsForProperty(Class<?> clazz, String
propertyName) {
- return factory.getMetadataProvider( clazz ).getPropertyDescriptors().get( propertyName
);
- }
-
- public Set<String> getPropertiesWithConstraints(Class<?> clazz) {
- final MetaDataProviderImpl<?> dataProvider = factory.getMetadataProvider( clazz
);
- return Collections.unmodifiableSet( dataProvider.getPropertyDescriptors().keySet() );
- }
-
-
- /**
* Checks whether the provided group name is a group sequence and if so expands the
group name and add the expanded
* groups names to <code>expandedGroupName </code>
*
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/BeanDescriptorImpl.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/BeanDescriptorImpl.java
(rev 0)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/BeanDescriptorImpl.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -0,0 +1,35 @@
+package org.hibernate.validation.impl;
+
+import java.util.Set;
+import java.util.Collections;
+import javax.validation.BeanDescriptor;
+import javax.validation.PropertyDescriptor;
+
+import org.hibernate.validation.engine.MetaDataProvider;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class BeanDescriptorImpl<T> extends ElementDescriptorImpl implements
BeanDescriptor {
+ private final MetaDataProvider<T> metadataProvider;
+
+ public BeanDescriptorImpl(Class<T> returnType, MetaDataProvider<T>
metadataProvider) {
+ super(returnType, false, "");
+ this.metadataProvider = metadataProvider;
+ }
+
+ /**
+ * @todo add child validation
+ */
+ public boolean hasConstraints() {
+ return metadataProvider.getConstraintMetaDataList().size() > 0;
+ }
+
+ public PropertyDescriptor getConstraintsForProperty(String propertyName) {
+ return metadataProvider.getPropertyDescriptors().get( propertyName );
+ }
+
+ public Set<String> getPropertiesWithConstraints() {
+ return Collections.unmodifiableSet( metadataProvider.getPropertyDescriptors().keySet()
);
+ }
+}
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ElementDescriptorImpl.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ElementDescriptorImpl.java 2008-12-02
09:57:05 UTC (rev 15631)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ElementDescriptorImpl.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -35,14 +35,14 @@
* @todo Handle problem in descirbing cyclic dependecies for propertyPath
*/
//FIXME I implement both interfaces on the same object as a quick hack, we need to fix
that.
-public class ElementDescriptorImpl implements PropertyDescriptor, BeanDescriptor {
- private final Class returnType;
+public class ElementDescriptorImpl implements PropertyDescriptor {
+ private final Class<?> returnType;
private final boolean cascaded;
private final List<ConstraintDescriptor> constraintDescriptors = new
ArrayList<ConstraintDescriptor>();
private final String propertyPath;
- public ElementDescriptorImpl(Class returnType, boolean cascaded, String propertyPath) {
+ public ElementDescriptorImpl(Class<?> returnType, boolean cascaded, String
propertyPath) {
this.returnType = returnType;
this.cascaded = cascaded;
this.propertyPath = propertyPath;
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java 2008-12-02
09:57:05 UTC (rev 15631)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -70,7 +70,7 @@
@Test
public void testWrongMethodName() {
try {
- getHibernateValidator().hasConstraints( Boy.class );
+ getHibernateValidator().getConstraintsForClass( Boy.class ).hasConstraints();
fail();
}
catch ( ValidationException e ) {
@@ -85,19 +85,19 @@
@Test(expected = IllegalArgumentException.class)
public void testNullParamterToValidatorImplConstructor() {
- getHibernateValidator().hasConstraints( null );
+ getHibernateValidator().getConstraintsForClass( null );
}
@Test
public void testUnconstraintClass() {
Validator validator = getHibernateValidator();
- assertTrue( "There should be no constraints", !validator.hasConstraints(
Unconstraint.class ) );
+ assertTrue( "There should be no constraints",
!validator.getConstraintsForClass( Unconstraint.class ).hasConstraints() );
}
@Test
public void testHasConstraints() {
Validator validator = getHibernateValidator();
- assertTrue( "There should be constraints", validator.hasConstraints(
Customer.class ) );
+ assertTrue( "There should be constraints", validator.getConstraintsForClass(
Customer.class ).hasConstraints() );
}
@Test(expected = IllegalArgumentException.class)
@@ -271,7 +271,7 @@
@Test(expected = ValidationException.class)
public void testInvalidSequenceName() {
Validator validator = getHibernateValidator();
- validator.hasConstraints( EnglishDictonary.class );
+ validator.getConstraintsForClass( EnglishDictonary.class ).hasConstraints();
}
@Test
Modified:
validator/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java
===================================================================
---
validator/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java 2008-12-02
09:57:05 UTC (rev 15631)
+++
validator/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -1,9 +1,31 @@
package javax.validation;
+import java.util.Set;
+
/**
* Describe a constrained Java Bean and the constraints associated to it.
*
* @author Emmanuel Bernard
*/
public interface BeanDescriptor extends ElementDescriptor {
+ /**
+ * return true if at least one constraint declaration is present for the given bean
+ * or if one property is marked for validation cascade
+ */
+ boolean hasConstraints();
+
+ /**
+ * Return the property level constraints for a given propertyName
+ * or null if either the property does not exist or has no constraint
+ * The returned object (and associated objects including ConstraintDescriptors)
+ * are immutable.
+ *
+ * @param propertyName property evaludated
+ */
+ PropertyDescriptor getConstraintsForProperty(String propertyName);
+
+ /**
+ * return the property names having at least a constraint defined
+ */
+ Set<String> getPropertiesWithConstraints();
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/Validator.java
===================================================================
---
validator/trunk/validation-api/src/main/java/javax/validation/Validator.java 2008-12-02
09:57:05 UTC (rev 15631)
+++
validator/trunk/validation-api/src/main/java/javax/validation/Validator.java 2008-12-02
11:03:35 UTC (rev 15632)
@@ -73,14 +73,6 @@
<T> Set<ConstraintViolation<T>> validateValue(Class<T> beanType,
String propertyName, Object value, String... groups);
/**
- * return true if at least one constraint declaration is present for the given bean
- * or if one property is marked for validation cascade
- *
- * @param clazz class type evaluated
- */
- boolean hasConstraints(Class<?> clazz);
-
- /**
* Return the class level constraints
* The returned object (and associated objects including ConstraintDescriptors)
* are immutable.
@@ -88,23 +80,4 @@
* @param clazz class type evaluated
*/
BeanDescriptor getConstraintsForClass(Class<?> clazz);
-
- /**
- * Return the property level constraints for a given propertyName
- * or null if either the property does not exist or has no constraint
- * The returned object (and associated objects including ConstraintDescriptors)
- * are immutable.
- *
- * @param clazz class type evaluated
- * @param propertyName property evaludated
- */
- PropertyDescriptor getConstraintsForProperty(Class<?> clazz, String
propertyName);
-
- /**
- * return the property names having at least a constraint defined
- *
- * @param clazz class type evaluated
- */
- Set<String> getPropertiesWithConstraints(Class<?> clazz);
-
}