[hibernate-commits] Hibernate SVN: r10809 - in branches/Branch_3_2/HibernateExt/metadata/src: java/org/hibernate/validator java/org/hibernate/validator/resources test/org/hibernate/test/annotations/collectionelement test/org/hibernate/validator/test test/org/hibernate/validator/test/validator
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Tue Nov 14 23:41:40 EST 2006
Author: epbernard
Date: 2006-11-14 23:41:36 -0500 (Tue, 14 Nov 2006)
New Revision: 10809
Added:
branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmpty.java
branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmptyValidator.java
branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/
branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/Car.java
branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/NotEmptyTest.java
Modified:
branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages.properties
branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages_fr.properties
branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java
Log:
ANN-493 @NotEmpty
Added: branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmpty.java
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmpty.java 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmpty.java 2006-11-15 04:41:36 UTC (rev 10809)
@@ -0,0 +1,22 @@
+//$Id: $
+package org.hibernate.validator;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Check that a String is not empty (not null and length > 0)
+ * or that a Collection (or array) is not empty (not null and length > 0)
+ *
+ * @author Emmanuel Bernard
+ */
+ at Documented
+ at ValidatorClass(NotEmptyValidator.class)
+ at Target({ElementType.METHOD, ElementType.FIELD})
+ at Retention( RetentionPolicy.RUNTIME )
+public @interface NotEmpty {
+ String message() default "{validator.notEmpty}";
+}
Added: branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmptyValidator.java
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmptyValidator.java 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/NotEmptyValidator.java 2006-11-15 04:41:36 UTC (rev 10809)
@@ -0,0 +1,35 @@
+//$Id: $
+package org.hibernate.validator;
+
+import java.io.Serializable;
+import java.lang.reflect.Array;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Check the non emptyness of the element
+ *
+ * @author Gavin King
+ */
+public class NotEmptyValidator implements Validator<NotEmpty>, Serializable {
+
+ public void initialize(NotEmpty parameters) {
+ }
+
+ public boolean isValid(Object value) {
+ if ( value == null ) return false;
+ if ( value.getClass().isArray() ) {
+ return Array.getLength( value ) > 0;
+ }
+ else if ( value instanceof Collection ) {
+ return ( (Collection) value ).size() > 0;
+ }
+ else if ( value instanceof Map ) {
+ return ( (Map) value ).size() > 0;
+ }
+ else {
+ return ( (String) value ).length() > 0;
+ }
+ }
+
+}
Modified: branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages.properties
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages.properties 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages.properties 2006-11-15 04:41:36 UTC (rev 10809)
@@ -9,4 +9,5 @@
validator.pattern=must match "{regex}"
validator.range=must be between {min} and {max}
validator.size=size must be between {min} and {max}
-validator.email=not a well-formed email address
\ No newline at end of file
+validator.email=not a well-formed email address
+validator.notEmpty=may not be null or empty
\ No newline at end of file
Modified: branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages_fr.properties
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages_fr.properties 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages_fr.properties 2006-11-15 04:41:36 UTC (rev 10809)
@@ -9,4 +9,5 @@
validator.pattern=doit suivre "{regex}"
validator.range=doit être entre {min} et {max}
validator.size=le nombre d'éléments doit être entre {min} et {max}
-validator.email=Address email mal formée
\ No newline at end of file
+validator.email=Address email mal formée
+validator.notEmpty=ne peut pas être nul ou vide
\ No newline at end of file
Modified: branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java 2006-11-15 04:41:36 UTC (rev 10809)
@@ -15,8 +15,9 @@
public void testSimpleElement() throws Exception {
assertEquals(
- "BoyFavoriteNumbers",
- getCfg().getCollectionMapping( Boy.class.getName() + '.' + "favoriteNumbers" ).getCollectionTable().getName()
+ "BoyFavoriteNumbers",
+ getCfg().getCollectionMapping( Boy.class.getName() + '.' + "favoriteNumbers" )
+ .getCollectionTable().getName()
);
Session s = openSession();
s.getTransaction().begin();
@@ -28,7 +29,7 @@
boy.getScorePerNickName().put( "Johnny", new Integer( 3 ) );
boy.getScorePerNickName().put( "Thing", new Integer( 5 ) );
int[] favNbrs = new int[4];
- for ( int index = 0; index < favNbrs.length - 1 ; index++ ) {
+ for ( int index = 0; index < favNbrs.length - 1; index++ ) {
favNbrs[index] = index * 3;
}
boy.setFavoriteNumbers( favNbrs );
@@ -47,8 +48,8 @@
assertNotNull( boy.getFavoriteNumbers() );
assertEquals( 3, boy.getFavoriteNumbers()[1] );
assertTrue( boy.getCharacters().contains( Character.CRAFTY ) );
- List result = s.createQuery( "select boy from Boy boy join boy.nickNames names where names = :name")
- .setParameter( "name", "Thing").list();
+ List result = s.createQuery( "select boy from Boy boy join boy.nickNames names where names = :name" )
+ .setParameter( "name", "Thing" ).list();
assertEquals( 1, result.size() );
s.delete( boy );
tx.commit();
@@ -110,7 +111,50 @@
}
+ public void testLazyCollectionofElements() throws Exception {
+ assertEquals(
+ "BoyFavoriteNumbers",
+ getCfg().getCollectionMapping( Boy.class.getName() + '.' + "favoriteNumbers" )
+ .getCollectionTable().getName()
+ );
+ Session s = openSession();
+ s.getTransaction().begin();
+ Boy boy = new Boy();
+ boy.setFirstName( "John" );
+ boy.setLastName( "Doe" );
+ boy.getNickNames().add( "Johnny" );
+ boy.getNickNames().add( "Thing" );
+ boy.getScorePerNickName().put( "Johnny", new Integer( 3 ) );
+ boy.getScorePerNickName().put( "Thing", new Integer( 5 ) );
+ int[] favNbrs = new int[4];
+ for ( int index = 0; index < favNbrs.length - 1; index++ ) {
+ favNbrs[index] = index * 3;
+ }
+ boy.setFavoriteNumbers( favNbrs );
+ boy.getCharacters().add( Character.GENTLE );
+ boy.getCharacters().add( Character.CRAFTY );
+ s.persist( boy );
+ s.getTransaction().commit();
+ s.clear();
+ Transaction tx = s.beginTransaction();
+ boy = (Boy) s.get( Boy.class, boy.getId() );
+ assertNotNull( boy.getNickNames() );
+ assertTrue( boy.getNickNames().contains( "Thing" ) );
+ assertNotNull( boy.getScorePerNickName() );
+ assertTrue( boy.getScorePerNickName().containsKey( "Thing" ) );
+ assertEquals( new Integer( 5 ), boy.getScorePerNickName().get( "Thing" ) );
+ assertNotNull( boy.getFavoriteNumbers() );
+ assertEquals( 3, boy.getFavoriteNumbers()[1] );
+ assertTrue( boy.getCharacters().contains( Character.CRAFTY ) );
+ List result = s.createQuery( "select boy from Boy boy join boy.nickNames names where names = :name" )
+ .setParameter( "name", "Thing" ).list();
+ assertEquals( 1, result.size() );
+ s.delete( boy );
+ tx.commit();
+ s.close();
+ }
+
protected Class[] getMappings() {
return new Class[]{
Boy.class,
Added: branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/Car.java
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/Car.java 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/Car.java 2006-11-15 04:41:36 UTC (rev 10809)
@@ -0,0 +1,14 @@
+//$Id: $
+package org.hibernate.validator.test.validator;
+
+import org.hibernate.validator.NotEmpty;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class Car {
+ @NotEmpty
+ public String name;
+ @NotEmpty
+ public String[] insurances;
+}
Added: branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/NotEmptyTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/NotEmptyTest.java 2006-11-14 23:19:28 UTC (rev 10808)
+++ branches/Branch_3_2/HibernateExt/metadata/src/test/org/hibernate/validator/test/validator/NotEmptyTest.java 2006-11-15 04:41:36 UTC (rev 10809)
@@ -0,0 +1,46 @@
+//$Id: $
+package org.hibernate.validator.test.validator;
+
+import java.util.ResourceBundle;
+import java.util.Locale;
+import java.util.Date;
+import java.io.Serializable;
+import java.math.BigInteger;
+
+import junit.framework.TestCase;
+import org.hibernate.validator.test.Address;
+import org.hibernate.validator.test.Brother;
+import org.hibernate.validator.test.Tv;
+import org.hibernate.validator.test.Vase;
+import org.hibernate.validator.test.Site;
+import org.hibernate.validator.test.Contact;
+import org.hibernate.validator.test.ValidatorTest;
+import org.hibernate.validator.ClassValidator;
+import org.hibernate.validator.InvalidValue;
+import org.hibernate.validator.MessageInterpolator;
+import org.hibernate.validator.Validator;
+
+/**
+ * @author Gavin King
+ */
+public class NotEmptyTest extends TestCase {
+
+ public void testBigInteger() throws Exception {
+ Car car = new Car();
+ ClassValidator<Car> classValidator = new ClassValidator<Car>( Car.class );
+ InvalidValue[] invalidValues = classValidator.getInvalidValues( car );
+ assertEquals( 2, invalidValues.length );
+ car.name = "";
+ invalidValues = classValidator.getInvalidValues( car );
+ assertEquals( 2, invalidValues.length );
+ car.name = "350Z";
+ invalidValues = classValidator.getInvalidValues( car );
+ assertEquals( 1, invalidValues.length );
+ car.insurances = new String[0];
+ invalidValues = classValidator.getInvalidValues( car );
+ assertEquals( 1, invalidValues.length );
+ car.insurances = new String[1];
+ invalidValues = classValidator.getInvalidValues( car );
+ assertEquals( 0, invalidValues.length );
+ }
+}
More information about the hibernate-commits
mailing list