[
http://opensource.atlassian.com/projects/hibernate/browse/HV-274?page=com...
]
Hardy Ferentschik commented on HV-274:
--------------------------------------
Here is a first draft on how this could look like. Entry point would be
{{HibernateValidatorConfiguration}}
{noformat}
public void testProgrammaticApi() {
HibernateValidatorConfiguration config = ( HibernateValidatorConfiguration )
TestUtil.getConfiguration();
// class constraint
config.addConstraint( ShoppingCartConstraint.class )
.forGroups( Group1.class )
.onType( ShoppingCart.class );
// field constraint
config.addConstraint( Size.class )
.withMessage( "foo" )
.andPayload( DummyPayload.class )
.andParameter( "min", 0 )
.andParameter( "max", 10 )
.onField( "items" )
.ofType( ShoppingCart.class );
// getter constraint
config.addConstraint( Pattern.class )
.withParameter( "regexp", "[0-9]{10}" )
.onGetter( "cartNo" )
.ofType( ShoppingCart.class );
}
public interface Group1 {
}
public class DummyPayload implements Payload {
}
{noformat}
Maybe it would be worth to define a {{ConstraintParameter}} class (basically a key/value
pair wrapper) and then have a {{withParameters(ConstraintParameter... parameters)}} vararg
method.
This is not a 100% type safe approach. To get type-safety one would need meta classes
listing the properties of each class similar to the JPA 2 typesafe criteria query. I think
we should aim for a simple first version though (which does not require any additional
metadata generators)
Write a programmatic mapping API for constraint declarations
------------------------------------------------------------
Key: HV-274
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HV-274
Project: Hibernate Validator
Issue Type: New Feature
Components: engine
Affects Versions: 4.0.2.GA
Reporter: Emmanuel Bernard
Assignee: Hardy Ferentschik
Fix For: 4.1.0
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira