Hibernate SVN: r15824 - in validator/trunk: validation-api/src/main/java/javax/validation and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2009-01-26 20:29:23 -0500 (Mon, 26 Jan 2009)
New Revision: 15824
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorContextImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorContext.java
Removed:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java
…
[View More]Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
Log:
BVAL-92 improvement in building Validator
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java 2009-01-27 01:13:37 UTC (rev 15823)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java 2009-01-27 01:29:23 UTC (rev 15824)
@@ -1,53 +0,0 @@
-package org.hibernate.validation.impl;
-
-import javax.validation.MessageInterpolator;
-import javax.validation.TraversableResolver;
-import javax.validation.Validator;
-import javax.validation.ValidatorBuilder;
-
-import org.hibernate.validation.engine.ValidatorImpl;
-
-/**
- * @author Emmanuel Bernard
- */
-public class ValidatorBuilderImpl implements ValidatorBuilder {
- private MessageInterpolator messageInterpolator;
- private TraversableResolver traversableResolver;
- private final MessageInterpolator factoryMessageInterpolator;
- private final TraversableResolver factoryTraversableResolver;
- private final ValidatorFactoryImpl validatorFactory;
-
- public ValidatorBuilderImpl(ValidatorFactoryImpl validatorFactory,
- MessageInterpolator factoryMessageInterpolator,
- TraversableResolver factoryTraversableResolver) {
- this.validatorFactory = validatorFactory;
- this.factoryMessageInterpolator = factoryMessageInterpolator;
- this.factoryTraversableResolver = factoryTraversableResolver;
- messageInterpolator( factoryMessageInterpolator );
- traversableResolver(factoryTraversableResolver);
- }
-
- public ValidatorBuilder messageInterpolator(MessageInterpolator messageInterpolator) {
- if ( messageInterpolator == null) {
- this.messageInterpolator = factoryMessageInterpolator;
- }
- else {
- this.messageInterpolator = messageInterpolator;
- }
- return this;
- }
-
- public ValidatorBuilder traversableResolver(TraversableResolver traversableResolver) {
- if (traversableResolver == null) {
- this.traversableResolver = factoryTraversableResolver;
- }
- else {
- this.traversableResolver = traversableResolver;
- }
- return this;
- }
-
- public Validator getValidator() {
- return new ValidatorImpl( validatorFactory );
- }
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorContextImpl.java (from rev 15817, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorContextImpl.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorContextImpl.java 2009-01-27 01:29:23 UTC (rev 15824)
@@ -0,0 +1,53 @@
+package org.hibernate.validation.impl;
+
+import javax.validation.MessageInterpolator;
+import javax.validation.TraversableResolver;
+import javax.validation.Validator;
+import javax.validation.ValidatorContext;
+
+import org.hibernate.validation.engine.ValidatorImpl;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class ValidatorContextImpl implements ValidatorContext {
+ private MessageInterpolator messageInterpolator;
+ private TraversableResolver traversableResolver;
+ private final MessageInterpolator factoryMessageInterpolator;
+ private final TraversableResolver factoryTraversableResolver;
+ private final ValidatorFactoryImpl validatorFactory;
+
+ public ValidatorContextImpl(ValidatorFactoryImpl validatorFactory,
+ MessageInterpolator factoryMessageInterpolator,
+ TraversableResolver factoryTraversableResolver) {
+ this.validatorFactory = validatorFactory;
+ this.factoryMessageInterpolator = factoryMessageInterpolator;
+ this.factoryTraversableResolver = factoryTraversableResolver;
+ messageInterpolator( factoryMessageInterpolator );
+ traversableResolver(factoryTraversableResolver);
+ }
+
+ public ValidatorContext messageInterpolator(MessageInterpolator messageInterpolator) {
+ if ( messageInterpolator == null) {
+ this.messageInterpolator = factoryMessageInterpolator;
+ }
+ else {
+ this.messageInterpolator = messageInterpolator;
+ }
+ return this;
+ }
+
+ public ValidatorContext traversableResolver(TraversableResolver traversableResolver) {
+ if (traversableResolver == null) {
+ this.traversableResolver = factoryTraversableResolver;
+ }
+ else {
+ this.traversableResolver = traversableResolver;
+ }
+ return this;
+ }
+
+ public Validator getValidator() {
+ return new ValidatorImpl( validatorFactory );
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorContextImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-27 01:13:37 UTC (rev 15823)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-27 01:29:23 UTC (rev 15824)
@@ -23,7 +23,7 @@
import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
import javax.validation.Validator;
-import javax.validation.ValidatorBuilder;
+import javax.validation.ValidatorContext;
import javax.validation.spi.ConfigurationState;
import org.hibernate.validation.engine.BeanMetaDataImpl;
@@ -55,15 +55,15 @@
* {@inheritDoc}
*/
public Validator getValidator() {
- return defineValidatorState().getValidator();
+ return usingContext().getValidator();
}
public MessageInterpolator getMessageInterpolator() {
return messageInterpolator;
}
- public ValidatorBuilder defineValidatorState() {
- return new ValidatorBuilderImpl(this, messageInterpolator, traversableResolver);
+ public ValidatorContext usingContext() {
+ return new ValidatorContextImpl(this, messageInterpolator, traversableResolver);
}
public <T> BeanMetaDataImpl<T> getBeanMetaData(Class<T> beanClass) {
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java 2009-01-27 01:13:37 UTC (rev 15823)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java 2009-01-27 01:29:23 UTC (rev 15824)
@@ -1,31 +0,0 @@
-package javax.validation;
-
-/**
- * Return a Validator corresponding to the initialized state.
- *
- * @author Emmanuel Bernard
- */
-public interface ValidatorBuilder {
- /**
- * Defines the message interpolator implementation used by the Validator.
- * If unset, the message interpolator of the ValidatorFactory is used.
- *
- * @return self following the chaining method pattern
- */
- ValidatorBuilder messageInterpolator(MessageInterpolator messageInterpolator);
-
- /**
- * Defines the traversable resolver implementation used by the Validator.
- * If unset, the traversable resolver of the ValidatorFactory is used.
- *
- * @return self following the chaining method pattern
- */
- ValidatorBuilder traversableResolver(TraversableResolver traversableResolver);
-
- /**
- * @return an initialized <code>Validator</code> instance respecting the defined state.
- * Validator instances can be pooled and shared by the implementation.
- */
- Validator getValidator();
-
-}
Copied: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorContext.java (from rev 15817, validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorContext.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorContext.java 2009-01-27 01:29:23 UTC (rev 15824)
@@ -0,0 +1,30 @@
+package javax.validation;
+
+/**
+ * Return a Validator corresponding to the initialized state.
+ *
+ * @author Emmanuel Bernard
+ */
+public interface ValidatorContext {
+ /**
+ * Defines the message interpolator implementation used by the Validator.
+ * If unset, the message interpolator of the ValidatorFactory is used.
+ *
+ * @return self following the chaining method pattern
+ */
+ ValidatorContext messageInterpolator(MessageInterpolator messageInterpolator);
+
+ /**
+ * Defines the traversable resolver implementation used by the Validator.
+ * If unset, the traversable resolver of the ValidatorFactory is used.
+ *
+ * @return self following the chaining method pattern
+ */
+ ValidatorContext traversableResolver(TraversableResolver traversableResolver);
+
+ /**
+ * @return an initialized <code>Validator</code> instance respecting the defined state.
+ * Validator instances can be pooled and shared by the implementation.
+ */
+ Validator getValidator();
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorContext.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2009-01-27 01:13:37 UTC (rev 15823)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2009-01-27 01:29:23 UTC (rev 15824)
@@ -34,12 +34,12 @@
Validator getValidator();
/**
- * Define the validator state and return a
+ * Define the validator context and return a
* Validator compliant with this state
*
- * @return a ValidatorBuilder
+ * @return a ValidatorContext
*/
- ValidatorBuilder defineValidatorState();
+ ValidatorContext usingContext();
/**
* Returns the MessageInterpolator instance configured at initialization time
[View Less]
16 years, 2 months
Hibernate SVN: r15823 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/impl and 5 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2009-01-26 20:13:37 -0500 (Mon, 26 Jan 2009)
New Revision: 15823
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorConfiguration.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConfigurationImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/Configuration.java
validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBootstrap.java
…
[View More] validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/ProviderSpecificBootstrap.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ConfigurationState.java
Removed:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorFactoryBuilder.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java
validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/HibernateValidationProvider.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java
validator/trunk/validation-api/src/main/java/javax/validation/Validation.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
Log:
BVAL-92 improvement in building ValidatorFactory
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorConfiguration.java (from rev 15817, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorFactoryBuilder.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorConfiguration.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorConfiguration.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -0,0 +1,12 @@
+package org.hibernate.validation;
+
+import javax.validation.Configuration;
+
+/**
+ * Uniquely identify Hibernate Validator in the Bean Validation bootstrap strategy
+ * Also contains Hibernate Validator specific configurations
+ *
+ * @author Emmanuel Bernard
+ */
+public interface HibernateValidatorConfiguration extends Configuration<HibernateValidatorConfiguration> {
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorConfiguration.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorFactoryBuilder.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorFactoryBuilder.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorFactoryBuilder.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -1,12 +0,0 @@
-package org.hibernate.validation;
-
-import javax.validation.ValidatorFactoryBuilder;
-
-/**
- * Uniquely identify Hibernate Validator in the Bean Validation bootstrap strategy
- * Also contains Hibernate Validator specific configurations
- *
- * @author Emmanuel Bernard
- */
-public interface HibernateValidatorFactoryBuilder extends ValidatorFactoryBuilder<HibernateValidatorFactoryBuilder> {
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConfigurationImpl.java (from rev 15818, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConfigurationImpl.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConfigurationImpl.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -0,0 +1,145 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.impl;
+
+import java.io.InputStream;
+import java.util.List;
+import javax.validation.ConstraintValidatorFactory;
+import javax.validation.MessageInterpolator;
+import javax.validation.TraversableResolver;
+import javax.validation.ValidationException;
+import javax.validation.ValidationProviderResolver;
+import javax.validation.ValidatorFactory;
+import javax.validation.Configuration;
+import javax.validation.bootstrap.DefaultValidationProviderResolver;
+import javax.validation.spi.BootstrapState;
+import javax.validation.spi.ValidationProvider;
+import javax.validation.spi.ConfigurationState;
+
+import org.hibernate.validation.HibernateValidatorConfiguration;
+import org.hibernate.validation.Version;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class ConfigurationImpl implements HibernateValidatorConfiguration, ConfigurationState {
+
+ static {
+ Version.touch();
+ }
+
+ //FIXME not sure why it is like that. We should cache these instances somehow. Static?
+ private final MessageInterpolator defaultMessageInterpolator = new ResourceBundleMessageInterpolator();
+ private final TraversableResolver defaultTraversableResolver = new DefaultTraversableResolver();
+
+ private MessageInterpolator messageInterpolator;
+ private ConstraintValidatorFactory constraintValidatorFactory = new ConstraintValidatorFactoryImpl();
+ private String configurationFile = "META-INF/validation.xml";
+ private final ValidationProvider provider;
+ private final ValidationProviderResolver providerResolver;
+ private TraversableResolver traversableResolver;
+
+ public ConfigurationImpl(BootstrapState state) {
+ if ( state.getValidationProviderResolver() == null ) {
+ this.providerResolver = new DefaultValidationProviderResolver();
+ }
+ else {
+ this.providerResolver = state.getValidationProviderResolver();
+ }
+ this.provider = null;
+ this.messageInterpolator = defaultMessageInterpolator;
+ this.traversableResolver = defaultTraversableResolver;
+ }
+
+ public ConfigurationImpl(ValidationProvider provider) {
+ if ( provider == null ) {
+ throw new ValidationException( "Assertion error: inconsistent ConfigurationImpl construction" );
+ }
+ this.provider = provider;
+ this.providerResolver = null;
+ this.messageInterpolator = defaultMessageInterpolator;
+ this.traversableResolver = defaultTraversableResolver;
+ }
+
+ public ConfigurationImpl messageInterpolator(MessageInterpolator interpolator) {
+ this.messageInterpolator = interpolator;
+ return this;
+ }
+
+ public ConfigurationImpl traversableResolver(TraversableResolver resolver) {
+ this.traversableResolver = resolver;
+ return this;
+ }
+
+ public ConfigurationImpl constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
+ this.constraintValidatorFactory = constraintValidatorFactory;
+ return this;
+ }
+
+ public ValidatorFactory buildValidatorFactory() {
+ if ( isSpecificProvider() ) {
+ return provider.buildValidatorFactory( this );
+ }
+ else {
+ //read provider name from configuration
+ Class<? extends Configuration<?>> providerClass = null;
+
+ if ( providerClass != null ) {
+ for ( ValidationProvider provider : providerResolver.getValidationProviders() ) {
+ if ( provider.isSuitable( providerClass ) ) {
+ return provider.buildValidatorFactory( this );
+ }
+ }
+ throw new ValidationException( "Unable to find provider: " + providerClass );
+ }
+ else {
+ List<ValidationProvider> providers = providerResolver.getValidationProviders();
+ assert providers.size() != 0; //I run therefore I am
+ return providers.get( 0 ).buildValidatorFactory( this );
+ }
+ }
+ }
+
+ private boolean isSpecificProvider() {
+ return provider != null;
+ }
+
+ public MessageInterpolator getMessageInterpolator() {
+ return messageInterpolator;
+ }
+
+ public ConstraintValidatorFactory getConstraintValidatorFactory() {
+ return constraintValidatorFactory;
+ }
+
+ public TraversableResolver getTraversableResolver() {
+ return traversableResolver;
+ }
+
+ public ConfigurationImpl customConfiguration(InputStream stream) {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public MessageInterpolator getDefaultMessageInterpolator() {
+ return defaultMessageInterpolator;
+ }
+
+ public InputStream getConfigurationStream() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConfigurationImpl.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/HibernateValidationProvider.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/HibernateValidationProvider.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/HibernateValidationProvider.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -18,14 +18,13 @@
package org.hibernate.validation.impl;
import javax.validation.ValidationException;
-import javax.validation.ValidatorFactoryBuilder;
+import javax.validation.Configuration;
import javax.validation.ValidatorFactory;
import javax.validation.spi.ValidationProvider;
-import javax.validation.spi.ValidatorFactoryConfiguration;
+import javax.validation.spi.ConfigurationState;
import javax.validation.spi.BootstrapState;
-import org.hibernate.validation.HibernateValidatorFactoryBuilder;
-import org.hibernate.validation.Version;
+import org.hibernate.validation.HibernateValidatorConfiguration;
/**
* Default implementation of <code>ValidationProvider</code> within Hibernate validator.
@@ -38,31 +37,31 @@
/**
* {@inheritDoc}
*/
- public boolean isSuitable(Class<? extends ValidatorFactoryBuilder<?>> builderClass) {
- return builderClass == HibernateValidatorFactoryBuilder.class;
+ public boolean isSuitable(Class<? extends Configuration<?>> builderClass) {
+ return builderClass == HibernateValidatorConfiguration.class;
}
- public <T extends ValidatorFactoryBuilder<T>> T createSpecializedValidatorFactoryBuilder(BootstrapState state, Class<T> builderClass) {
- if ( !isSuitable( builderClass ) ) {
+ public <T extends Configuration<T>> T createSpecializedConfiguration(BootstrapState state, Class<T> configurationClass) {
+ if ( !isSuitable( configurationClass ) ) {
throw new ValidationException(
- "Illegal call to createSpecializedValidatorFactoryBuilder() for a non suitable provider"
+ "Illegal call to createSpecializedConfiguration() for a non suitable provider"
);
}
//cast protected by isSuitable call
- return builderClass.cast( new ValidatorFactoryBuilderImpl( this ) );
+ return configurationClass.cast( new ConfigurationImpl( this ) );
}
/**
* {@inheritDoc}
*/
- public ValidatorFactoryBuilder<?> createGenericValidatorFactoryBuilder(BootstrapState state) {
- return new ValidatorFactoryBuilderImpl( state );
+ public Configuration<?> createGenericConfiguration(BootstrapState state) {
+ return new ConfigurationImpl( state );
}
/**
* {@inheritDoc}
*/
- public ValidatorFactory buildValidatorFactory(ValidatorFactoryConfiguration configuration) {
- return new ValidatorFactoryImpl( configuration );
+ public ValidatorFactory buildValidatorFactory(ConfigurationState configurationState) {
+ return new ValidatorFactoryImpl( configurationState );
}
}
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -1,145 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.impl;
-
-import java.io.InputStream;
-import java.util.List;
-import javax.validation.ConstraintValidatorFactory;
-import javax.validation.MessageInterpolator;
-import javax.validation.TraversableResolver;
-import javax.validation.ValidationException;
-import javax.validation.ValidationProviderResolver;
-import javax.validation.ValidatorFactory;
-import javax.validation.ValidatorFactoryBuilder;
-import javax.validation.bootstrap.DefaultValidationProviderResolver;
-import javax.validation.spi.BootstrapState;
-import javax.validation.spi.ValidationProvider;
-import javax.validation.spi.ValidatorFactoryConfiguration;
-
-import org.hibernate.validation.HibernateValidatorFactoryBuilder;
-import org.hibernate.validation.Version;
-
-/**
- * @author Emmanuel Bernard
- */
-public class ValidatorFactoryBuilderImpl implements HibernateValidatorFactoryBuilder, ValidatorFactoryConfiguration {
-
- static {
- Version.touch();
- }
-
- //FIXME not sure why it is like that. We should cache these instances somehow. Static?
- private final MessageInterpolator defaultMessageInterpolator = new ResourceBundleMessageInterpolator();
- private final TraversableResolver defaultTraversableResolver = new DefaultTraversableResolver();
-
- private MessageInterpolator messageInterpolator;
- private ConstraintValidatorFactory constraintValidatorFactory = new ConstraintValidatorFactoryImpl();
- private String configurationFile = "META-INF/validation.xml";
- private final ValidationProvider provider;
- private final ValidationProviderResolver providerResolver;
- private TraversableResolver traversableResolver;
-
- public ValidatorFactoryBuilderImpl(BootstrapState state) {
- if ( state.getValidationProviderResolver() == null ) {
- this.providerResolver = new DefaultValidationProviderResolver();
- }
- else {
- this.providerResolver = state.getValidationProviderResolver();
- }
- this.provider = null;
- this.messageInterpolator = defaultMessageInterpolator;
- this.traversableResolver = defaultTraversableResolver;
- }
-
- public ValidatorFactoryBuilderImpl(ValidationProvider provider) {
- if ( provider == null ) {
- throw new ValidationException( "Assertion error: inconsistent ValidatorFactoryBuilderImpl construction" );
- }
- this.provider = provider;
- this.providerResolver = null;
- this.messageInterpolator = defaultMessageInterpolator;
- this.traversableResolver = defaultTraversableResolver;
- }
-
- public ValidatorFactoryBuilderImpl messageInterpolator(MessageInterpolator interpolator) {
- this.messageInterpolator = interpolator;
- return this;
- }
-
- public ValidatorFactoryBuilderImpl traversableResolver(TraversableResolver resolver) {
- this.traversableResolver = resolver;
- return this;
- }
-
- public ValidatorFactoryBuilderImpl constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
- this.constraintValidatorFactory = constraintValidatorFactory;
- return this;
- }
-
- public ValidatorFactory build() {
- if ( isSpecificProvider() ) {
- return provider.buildValidatorFactory( this );
- }
- else {
- //read provider name from configuration
- Class<? extends ValidatorFactoryBuilder<?>> providerClass = null;
-
- if ( providerClass != null ) {
- for ( ValidationProvider provider : providerResolver.getValidationProviders() ) {
- if ( provider.isSuitable( providerClass ) ) {
- return provider.buildValidatorFactory( this );
- }
- }
- throw new ValidationException( "Unable to find provider: " + providerClass );
- }
- else {
- List<ValidationProvider> providers = providerResolver.getValidationProviders();
- assert providers.size() != 0; //I run therefore I am
- return providers.get( 0 ).buildValidatorFactory( this );
- }
- }
- }
-
- private boolean isSpecificProvider() {
- return provider != null;
- }
-
- public MessageInterpolator getMessageInterpolator() {
- return messageInterpolator;
- }
-
- public ConstraintValidatorFactory getConstraintValidatorFactory() {
- return constraintValidatorFactory;
- }
-
- public TraversableResolver getTraversableResolver() {
- return traversableResolver;
- }
-
- public ValidatorFactoryBuilderImpl configure(InputStream stream) {
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-
- public MessageInterpolator getDefaultMessageInterpolator() {
- return defaultMessageInterpolator;
- }
-
- public InputStream getConfigurationStream() {
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -24,7 +24,7 @@
import javax.validation.TraversableResolver;
import javax.validation.Validator;
import javax.validation.ValidatorBuilder;
-import javax.validation.spi.ValidatorFactoryConfiguration;
+import javax.validation.spi.ConfigurationState;
import org.hibernate.validation.engine.BeanMetaDataImpl;
import org.hibernate.validation.engine.ValidatorFactoryImplementor;
@@ -44,10 +44,10 @@
= new ConcurrentHashMap<Class<?>, BeanMetaDataImpl<?>>(10);
- public ValidatorFactoryImpl(ValidatorFactoryConfiguration configuration) {
- this.messageInterpolator = configuration.getMessageInterpolator();
- this.constraintValidatorFactory = configuration.getConstraintValidatorFactory();
- this.traversableResolver = configuration.getTraversableResolver();
+ public ValidatorFactoryImpl(ConfigurationState configurationState) {
+ this.messageInterpolator = configurationState.getMessageInterpolator();
+ this.constraintValidatorFactory = configurationState.getConstraintValidatorFactory();
+ this.traversableResolver = configurationState.getTraversableResolver();
//do init metadata from XML form
}
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -30,10 +30,10 @@
import javax.validation.ValidationException;
import javax.validation.ValidationProviderResolver;
import javax.validation.Validator;
-import javax.validation.ValidatorFactoryBuilder;
+import javax.validation.Configuration;
import javax.validation.ValidatorFactory;
import javax.validation.ConstraintValidatorContext;
-import javax.validation.bootstrap.SpecializedBuilderFactory;
+import javax.validation.bootstrap.ProviderSpecificBootstrap;
import javax.validation.spi.ValidationProvider;
import static org.junit.Assert.assertEquals;
@@ -42,11 +42,11 @@
import static org.junit.Assert.fail;
import org.junit.Test;
-import org.hibernate.validation.HibernateValidatorFactoryBuilder;
+import org.hibernate.validation.HibernateValidatorConfiguration;
import org.hibernate.validation.constraints.NotNullConstraintValidator;
import org.hibernate.validation.eg.Customer;
import org.hibernate.validation.impl.ConstraintValidatorFactoryImpl;
-import org.hibernate.validation.impl.ValidatorFactoryBuilderImpl;
+import org.hibernate.validation.impl.ConfigurationImpl;
import org.hibernate.validation.impl.ValidatorFactoryImpl;
import org.hibernate.validation.impl.HibernateValidationProvider;
@@ -59,24 +59,24 @@
@Test
public void testBootstrapAsServiceWithBuilder() {
- HibernateValidatorFactoryBuilder builder = Validation
- .builderType( HibernateValidatorFactoryBuilder.class )
- .getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ HibernateValidatorConfiguration configuration = Validation
+ .byProvider( HibernateValidatorConfiguration.class )
+ .configure();
+ assertDefaultBuilderAndFactory( configuration );
}
@Test
public void testBootstrapAsServiceDefault() {
- ValidatorFactoryBuilder<?> builder = Validation.getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
+ assertDefaultFactory( factory );
}
@Test
- public void testGetCustomerValiator() {
- ValidatorFactoryBuilder<?> builder = Validation.getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ public void testGetCustomerValidator() {
+ Configuration<?> configuration = Validation.byDefaultProvider().configure();
+ assertDefaultBuilderAndFactory( configuration );
- ValidatorFactory factory = builder.build();
+ ValidatorFactory factory = configuration.buildValidatorFactory();
Validator validator = factory.getValidator();
Customer customer = new Customer();
@@ -96,10 +96,10 @@
public void testCustomMessageInterpolator() {
// first try with the default message resolver
- ValidatorFactoryBuilder<?> builder = Validation.getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ Configuration<?> configuration = Validation.byDefaultProvider().configure();
+ assertDefaultBuilderAndFactory( configuration );
- ValidatorFactory factory = builder.build();
+ ValidatorFactory factory = configuration.buildValidatorFactory();
Validator validator = factory.getValidator( );
Customer customer = new Customer();
@@ -110,9 +110,9 @@
ConstraintViolation<Customer> constraintViolation = constraintViolations.iterator().next();
assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
- //FIXME nothing guarantee that a builder can be reused
- // now we modify the builder, get a new factory and valiator and try again
- builder.messageInterpolator(
+ //FIXME nothing guarantee that a configuration can be reused
+ // now we modify the configuration, get a new factory and valiator and try again
+ configuration.messageInterpolator(
new MessageInterpolator() {
public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value) {
return "my custom message";
@@ -123,7 +123,7 @@
}
}
);
- factory = builder.build();
+ factory = configuration.buildValidatorFactory();
validator = factory.getValidator( );
constraintViolations = validator.validate( customer );
assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
@@ -134,10 +134,10 @@
@Test
public void testCustomConstraintValidatorFactory() {
- ValidatorFactoryBuilder<?> builder = Validation.getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ Configuration<?> configuration = Validation.byDefaultProvider().configure();
+ assertDefaultBuilderAndFactory( configuration );
- ValidatorFactory factory = builder.build();
+ ValidatorFactory factory = configuration.buildValidatorFactory();
Validator validator = factory.getValidator( );
Customer customer = new Customer();
@@ -148,9 +148,9 @@
ConstraintViolation<Customer> constraintViolation = constraintViolations.iterator().next();
assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
- //FIXME nothing guarantee that a builder can be reused
- // now we modify the builder, get a new factory and valiator and try again
- builder.constraintValidatorFactory(
+ //FIXME nothing guarantee that a configuration can be reused
+ // now we modify the configuration, get a new factory and valiator and try again
+ configuration.constraintValidatorFactory(
new ConstraintValidatorFactory() {
public <T extends ConstraintValidator> T getInstance(Class<T> key) {
if ( key == NotNullConstraintValidator.class ) {
@@ -160,7 +160,7 @@
}
}
);
- factory = builder.build();
+ factory = configuration.buildValidatorFactory();
validator = factory.getValidator( );
constraintViolations = validator.validate( customer );
assertEquals( "Wrong number of constraints", 0, constraintViolations.size() );
@@ -178,11 +178,11 @@
};
- HibernateValidatorFactoryBuilder builder = Validation
- .builderType( HibernateValidatorFactoryBuilder.class )
+ HibernateValidatorConfiguration configuration = Validation
+ .byProvider( HibernateValidatorConfiguration.class )
.providerResolver( resolver )
- .getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ .configure();
+ assertDefaultBuilderAndFactory( configuration );
}
@Test
@@ -197,11 +197,11 @@
};
- ValidatorFactoryBuilder<?> builder = Validation
- .defineBootstrapState()
+ Configuration<?> configuration = Validation
+ .byDefaultProvider()
.providerResolver( resolver )
- .getBuilder();
- assertDefaultBuilderAndFactory( builder );
+ .configure();
+ assertDefaultBuilderAndFactory( configuration );
}
@Test
@@ -213,29 +213,33 @@
}
};
- final SpecializedBuilderFactory<HibernateValidatorFactoryBuilder> specializedBuilderFactory =
+ final ProviderSpecificBootstrap<HibernateValidatorConfiguration> providerSpecificBootstrap =
Validation
- .builderType( HibernateValidatorFactoryBuilder.class)
+ .byProvider( HibernateValidatorConfiguration.class)
.providerResolver( resolver );
try {
- specializedBuilderFactory.getBuilder();
+ providerSpecificBootstrap.configure();
fail();
}
catch ( ValidationException e ) {
assertEquals(
"Wrong error message",
- "Unable to find provider: interface org.hibernate.validation.HibernateValidatorFactoryBuilder",
+ "Unable to find provider: interface org.hibernate.validation.HibernateValidatorConfiguration",
e.getMessage()
);
}
}
- private void assertDefaultBuilderAndFactory(ValidatorFactoryBuilder builder) {
- assertNotNull( builder );
- assertTrue( builder instanceof ValidatorFactoryBuilderImpl );
+ private void assertDefaultBuilderAndFactory(Configuration configuration) {
+ assertNotNull( configuration );
+ assertTrue( configuration instanceof ConfigurationImpl );
- ValidatorFactory factory = builder.build();
+ ValidatorFactory factory = configuration.buildValidatorFactory();
+ assertDefaultFactory(factory);
+ }
+
+ private void assertDefaultFactory(ValidatorFactory factory) {
assertNotNull( factory );
assertTrue( factory instanceof ValidatorFactoryImpl );
}
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -24,7 +24,7 @@
import static org.junit.Assert.assertEquals;
-import org.hibernate.validation.HibernateValidatorFactoryBuilder;
+import org.hibernate.validation.HibernateValidatorConfiguration;
/**
* Tests for the <code>ReflectionHelper</code>.
@@ -40,10 +40,10 @@
public static Validator getValidator() {
if ( hibernateValidator == null ) {
- HibernateValidatorFactoryBuilder builder = Validation
- .builderType( HibernateValidatorFactoryBuilder.class )
- .getBuilder();
- hibernateValidator = builder.build().getValidator();
+ HibernateValidatorConfiguration configuration = Validation
+ .byProvider( HibernateValidatorConfiguration.class )
+ .configure();
+ hibernateValidator = configuration.buildValidatorFactory().getValidator();
}
return hibernateValidator;
}
Copied: validator/trunk/validation-api/src/main/java/javax/validation/Configuration.java (from rev 15818, validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Configuration.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Configuration.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -0,0 +1,110 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.validation;
+
+import java.io.InputStream;
+
+/**
+ * Receives configuration information, selects the appropriate
+ * Bean Validation provider and build the appropriate
+ * ValidatorFactory.
+ * <p/>
+ * Usage:
+ * <pre>
+ * Configuration<?> configuration = //provided by one of the Validation bootstrap methods
+ * ValidatorFactory = configuration
+ * .messageInterpolator( new CustomMessageInterpolator() )
+ * .buildValidatorFactory();
+ * </pre>
+ * <p/>
+ * The ValidationProviderResolver is specified at Configuration time
+ * (see {@link javax.validation.spi.ValidationProvider}).
+ * If none is explicitely requested, the default ValidationProviderResolver is used.
+ * <p/>
+ * The provider is selected in the following way:
+ * - if a specific Configuration subclass is requested programmatically using
+ * Validation.byProvider(Class), find the first provider matching it
+ * - if a specific Configuration subclass is defined in META-INF/validation.xml,
+ * find the first provider matching it
+ * - otherwise, use the first provider returned by the ValidationProviderResolver
+ * <p/>
+ * Implementations are not meant to be thread-safe
+ *
+ * @author Emmanuel Bernard
+ */
+public interface Configuration<T extends Configuration<T>> {
+ /**
+ * Defines the message interpolator used. Has priority over the configuration
+ * based message interpolator.
+ *
+ * @param interpolator message interpolator implementation.
+ *
+ * @return <code>this</code> following the chaining method pattern.
+ */
+ T messageInterpolator(MessageInterpolator interpolator);
+
+ /**
+ * Defines the traversable resolver used. Has priority over the configuration
+ * based traversable resolver.
+ *
+ * @param resolver traversable resolver implementation.
+ *
+ * @return <code>this</code> following the chaining method pattern.
+ */
+ T traversableResolver(TraversableResolver resolver);
+
+ /**
+ * Defines the constraint validator factory. Has priority over the configuration
+ * based constraint factory.
+ *
+ * @param constraintValidatorFactory constraint factory inmplementation.
+ *
+ * @return <code>this</code> following the chaining method pattern.
+ */
+ T constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory);
+
+ /**
+ * Configure the ValidatorFactory based on <code>stream</code>
+ * If not specified, META-INF/validation.xml is used
+ * <p/>
+ * The stream should be closed by the client API after the
+ * ValidatorFactory has been returned
+ *
+ * @param stream configuration stream.
+ *
+ * @return <code>this</code> following the chaining method pattern.
+ */
+ T customConfiguration(InputStream stream);
+
+ /**
+ * Return an implementation of the MessageInterpolator interface following the
+ * default MessageInterpolator defined in the specification:
+ * - use the ValidationMessages resource bundle to load keys
+ * - use Locale.getDefault()
+ *
+ * @return default MessageInterpolator implementation compliant with the specification
+ */
+ MessageInterpolator getDefaultMessageInterpolator();
+
+ /**
+ * Build a ValidatorFactory implementation.
+ *
+ * @return ValidatorFactory
+ */
+ ValidatorFactory buildValidatorFactory();
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/Configuration.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Id
Modified: validator/trunk/validation-api/src/main/java/javax/validation/Validation.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Validation.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Validation.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -18,8 +18,8 @@
package javax.validation;
import javax.validation.bootstrap.DefaultValidationProviderResolver;
-import javax.validation.bootstrap.GenericBuilderFactory;
-import javax.validation.bootstrap.SpecializedBuilderFactory;
+import javax.validation.bootstrap.GenericBootstrap;
+import javax.validation.bootstrap.ProviderSpecificBootstrap;
import javax.validation.spi.BootstrapState;
import javax.validation.spi.ValidationProvider;
@@ -30,7 +30,7 @@
* <li>
* The easiest approach is to use the default Bean Validation provider.
* <pre>
- * ValidatorFactory factory = Validation.getBuilder().build();
+ * ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
* </pre>
* In this case {@link javax.validation.bootstrap.DefaultValidationProviderResolver}
* will be used to locate available providers.
@@ -49,11 +49,11 @@
* <code>ValidationProvider</code> is then determined in the same way
* as in the default bootstrapping case (see above).
* <pre>
- * ValidatorFactoryBuilder<?> builder = Validation
- * .defineBootstrapState()
+ * Configuration<?> configuration = Validation
+ * .byDefaultProvider()
* .providerResolver( new MyResolverStrategy() )
- * .getBuilder();
- * ValidatorFactory factory = builder.build();
+ * .configure();
+ * ValidatorFactory factory = configuration.buildValidatorFactory();
* </pre>
* </li>
*
@@ -61,15 +61,15 @@
* <li>
* The third approach allows you to specify explicitly and in
* a type safe fashion the expected provider by
- * using its specific <code>ValidatorFactoryBuilder</code> sub-interface.
+ * using its specific <code>Configuration</code> sub-interface.
*
* Optionally you can choose a custom <code>ValidationProviderResolver</code>.
* <pre>
- * ACMEValidatorFactoryBuilder builder = Validation
- * .builderType(ACMEValidatorFactoryBuilder.class)
+ * ACMEConfiguration configuration = Validation
+ * .byProvider(ACMEConfiguration.class)
* .providerResolver( new MyResolverStrategy() ) // optionally set the provider resolver
- * .getBuilder();
- * ValidatorFactory factory = builder.build();
+ * .configure();
+ * ValidatorFactory factory = configuration.buildValidatorFactory();
* </pre>
* </li>
* </ul>
@@ -91,77 +91,78 @@
public class Validation {
/**
- * Build a <code>ValidatorFactoryBuilder</code>. The actual provider
- * choice is given by the XML configuration. If the
- * XML configuration does not exsist the default is taken.
+ * Build and return a ValidatorFactory instanced based on the
+ * default Bean Validation provider and following the
+ * XML configuration.
* <p/>
* The provider list is resolved using the
* {@link javax.validation.bootstrap.DefaultValidationProviderResolver}.
+ * <p/> The code is semantically equivalent to
+ * <code>Validation.byDefaultProvider().configure().buildValidatorFactory()</code>
*
- * @return <code>ValidatorFactoryBuilder</code> instance.
+ * @return <code>ValidatorFactory</code> instance.
*/
- public static ValidatorFactoryBuilder<?> getBuilder() {
- return defineBootstrapState().getBuilder();
+ public static ValidatorFactory buildDefaultValidatorFactory() {
+ return byDefaultProvider().configure().buildValidatorFactory();
}
/**
- * Build a <code>ValidatorFactoryBuilder</code>. The provider list is resolved
+ * Build a <code>Configuration</code>. The provider list is resolved
* using the strategy provided to the bootstrap state.
* <pre>
- * ValidatorFactoryBuilder<?> builder = Validation
- * .defineBootstrapState()
+ * Configuration<?> configuration = Validation
+ * .byDefaultProvider()
* .providerResolver( new MyResolverStrategy() )
- * .getBuilder();
- * ValidatorFactory factory = builder.build();
+ * .configure();
+ * ValidatorFactory factory = configuration.buildValidatorFactory();
* </pre>
* The actual provider choice is given by the XML configuration. If the XML
* configuration does not exsist the first available provider will be returned.
*
- * @return instance building a generic <code>ValidatorFactoryBuilder</code>
+ * @return instance building a generic <code>Configuration</code>
* compliant with the bootstrap state provided.
*/
- public static GenericBuilderFactory defineBootstrapState() {
- return new GenericBuilderFactoryImpl();
+ public static GenericBootstrap byDefaultProvider() {
+ return new GenericBootstrapImpl();
}
/**
- * Build a <code>ValidatorFactoryBuilder</code> for a particular provider implementation.
+ * Build a <code>Configuration</code> for a particular provider implementation.
* Optionally override the provider resolution strategy used to determine the provider.
* <p/>
* Used by applications targeting a specific provider programmatically.
* <p/>
* <pre>
- * ACMEValidatorFactoryBuilder builder =
- * Validation.builderType(ACMEValidatorFactoryBuilder.class)
+ * ACMEConfiguration configuration =
+ * Validation.byProvider(ACMEConfiguration.class)
* .providerResolver( new MyResolverStrategy() )
- * .build();
+ * .configure();
* </pre>,
- * where <code>ACMEValidatorFactoryBuilder</code> is the
- * <code>ValidatorFactoryBuilder</code> sub interface uniquely identifying the
+ * where <code>ACMEConfiguration</code> is the
+ * <code>Configuration</code> sub interface uniquely identifying the
* ACME Bean Validation provider.
*
- * @param builderType the <code>ValidatorFactoryBuilder</code> sub interface
+ * @param configurationType the <code>Configuration</code> sub interface
* uniquely defining the targeted provider.
*
- * @return instance building a provider specific <code>ValidatorFactoryBuilder</code>
+ * @return instance building a provider specific <code>Configuration</code>
* sub interface implementation.
*
- * @see #getBuilder()
*/
- public static <T extends ValidatorFactoryBuilder<T>>
- SpecializedBuilderFactory<T> builderType(Class<T> builderType) {
- return new SpecializedBuilderFactoryImpl<T>( builderType );
+ public static <T extends Configuration<T>>
+ ProviderSpecificBootstrap<T> byProvider(Class<T> configurationType) {
+ return new ProviderSpecificBootstrapImpl<T>( configurationType );
}
//private class, not exposed
- private static class SpecializedBuilderFactoryImpl<T extends ValidatorFactoryBuilder<T>>
- implements SpecializedBuilderFactory<T> {
+ private static class ProviderSpecificBootstrapImpl<T extends Configuration<T>>
+ implements ProviderSpecificBootstrap<T> {
- private Class<T> builderType;
+ private Class<T> configurationType;
private ValidationProviderResolver resolver;
- public SpecializedBuilderFactoryImpl(Class<T> builderType) {
- this.builderType = builderType;
+ public ProviderSpecificBootstrapImpl(Class<T> configurationType) {
+ this.configurationType = configurationType;
}
/**
@@ -172,43 +173,43 @@
*
* @return self
*/
- public SpecializedBuilderFactory<T> providerResolver(ValidationProviderResolver resolver) {
+ public ProviderSpecificBootstrap<T> providerResolver(ValidationProviderResolver resolver) {
this.resolver = resolver;
return this;
}
/**
- * Determine the provider implementation suitable for builderType and delegate the creation
- * of this specific ValidatorFactoryBuilder subclass to the provider.
+ * Determine the provider implementation suitable for byProvider(Class)
+ * and delegate the creation of this specific Configuration subclass to the provider.
*
- * @return a ValidatorFactoryBuilder sub interface implementation
+ * @return a Configuration sub interface implementation
*/
- public T getBuilder() {
- if ( builderType == null ) {
+ public T configure() {
+ if ( configurationType == null ) {
throw new ValidationException(
- "builder is mandatory. Use getBuilder() to use the generic provider discovery mechanism"
+ "builder is mandatory. Use Validation.byDefaultProvider() to use the generic provider discovery mechanism"
);
}
if ( resolver == null ) {
resolver = new DefaultValidationProviderResolver();
}
for ( ValidationProvider provider : resolver.getValidationProviders() ) {
- if ( provider.isSuitable( builderType ) ) {
- GenericBuilderFactoryImpl state = new GenericBuilderFactoryImpl();
+ if ( provider.isSuitable( configurationType ) ) {
+ GenericBootstrapImpl state = new GenericBootstrapImpl();
state.providerResolver( resolver );
- return provider.createSpecializedValidatorFactoryBuilder( state, builderType );
+ return provider.createSpecializedConfiguration( state, configurationType );
}
}
- throw new ValidationException( "Unable to find provider: " + builderType );
+ throw new ValidationException( "Unable to find provider: " + configurationType );
}
}
//private class, not exposed
- private static class GenericBuilderFactoryImpl implements GenericBuilderFactory, BootstrapState {
+ private static class GenericBootstrapImpl implements GenericBootstrap, BootstrapState {
private ValidationProviderResolver resolver;
- public GenericBuilderFactory providerResolver(ValidationProviderResolver resolver) {
+ public GenericBootstrap providerResolver(ValidationProviderResolver resolver) {
this.resolver = resolver;
return this;
}
@@ -217,7 +218,7 @@
return resolver;
}
- public ValidatorFactoryBuilder<?> getBuilder() {
+ public Configuration<?> configure() {
ValidationProviderResolver resolver = this.resolver == null ?
new DefaultValidationProviderResolver() :
this.resolver;
@@ -226,7 +227,7 @@
//FIXME looks like an assertion error almost
throw new ValidationException( "Unable to find a default provider" );
}
- return resolver.getValidationProviders().get( 0 ).createGenericValidatorFactoryBuilder( this );
+ return resolver.getValidationProviders().get( 0 ).createGenericConfiguration( this );
}
}
}
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -1,110 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation;
-
-import java.io.InputStream;
-
-/**
- * Receives configuration information, selects the appropriate
- * Bean Validation provider and build the appropriate
- * ValidatorFactory.
- * <p/>
- * Usage:
- * <pre>
- * ValidatorFactoryBuilder<?> builder = //provided by one of the Validation bootstrap methods
- * ValidatorFactory = builder
- * .messageInterpolator( new CustomMessageInterpolator() )
- * .build();
- * </pre>
- * <p/>
- * The ValidationProviderResolver is specified at ValidatorFactoryBuilder time
- * (see {@link javax.validation.spi.ValidationProvider}).
- * If none is explicitely requested, the default ValidationProviderResolver is used.
- * <p/>
- * The provider is selected in the following way:
- * - if a specific ValidatorFactoryBuilder subclass is requested programmatically using
- * Validation.builderType(), find the first provider matching it
- * - if a specific ValidatorFactoryBuilder subclass is defined in META-INF/validation.xml,
- * find the first provider matching it
- * - otherwise, use the first provider returned by the ValidationProviderResolver
- * <p/>
- * Implementations are not meant to be thread-safe
- *
- * @author Emmanuel Bernard
- */
-public interface ValidatorFactoryBuilder<T extends ValidatorFactoryBuilder> {
- /**
- * Defines the message interpolator used. Has priority over the configuration
- * based message interpolator.
- *
- * @param interpolator message interpolator implementation.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T messageInterpolator(MessageInterpolator interpolator);
-
- /**
- * Defines the traversable resolver used. Has priority over the configuration
- * based traversable resolver.
- *
- * @param resolver traversable resolver implementation.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T traversableResolver(TraversableResolver resolver);
-
- /**
- * Defines the constraint validator factory. Has priority over the configuration
- * based constraint factory.
- *
- * @param constraintValidatorFactory constraint factory inmplementation.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory);
-
- /**
- * Configure the ValidatorFactory based on <code>stream</code>
- * If not specified, META-INF/validation.xml is used
- * <p/>
- * The stream should be closed by the client API after the
- * ValidatorFactory has been returned
- *
- * @param stream configuration stream.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T configure(InputStream stream);
-
- /**
- * Return an implementation of the MessageInterpolator interface following the
- * default MessageInterpolator defined in the specification:
- * - use the ValidationMessages resource bundle to load keys
- * - use Locale.getDefault()
- *
- * @return default MessageInterpolator implementation compliant with the specification
- */
- MessageInterpolator getDefaultMessageInterpolator();
-
- /**
- * Build a ValidatorFactory implementation.
- *
- * @return ValidatorFactory
- */
- ValidatorFactory build();
-}
Copied: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBootstrap.java (from rev 15817, validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBootstrap.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBootstrap.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -0,0 +1,35 @@
+package javax.validation.bootstrap;
+
+import javax.validation.ValidationProviderResolver;
+import javax.validation.Configuration;
+
+/**
+ * Defines the state used to bootstrap Bean Validation and
+ * creates a provider agnostic Configuration.
+ *
+ * @author Emmanuel Bernard
+ */
+public interface GenericBootstrap {
+ /**
+ * Defines the provider resolution strategy.
+ * This resolver returns the list of providers evaluated
+ * to build the Configuration
+ * <p/>
+ * If no resolver is defined, the default ValidationProviderResolver
+ * implementation is used.
+ *
+ * @return <code>this</code> following the chaining method pattern
+ */
+ GenericBootstrap providerResolver(ValidationProviderResolver resolver);
+
+ /**
+ * Returns a generic Configuration implementation.
+ * At this stage the provider used to build the ValidatorFactory is not defined.
+ * <p/>
+ * The Configuration implementation is provided by the first provider returned
+ * by the ValidationProviderResolver strategy.
+ *
+ * @return a Configuration implementation compliant with the bootstrap state
+ */
+ Configuration<?> configure();
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBootstrap.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -1,35 +0,0 @@
-package javax.validation.bootstrap;
-
-import javax.validation.ValidationProviderResolver;
-import javax.validation.ValidatorFactoryBuilder;
-
-/**
- * Defines the state used to bootstrap Bean Validation and create an appropriate
- * ValidatorFactoryBuilder
- *
- * @author Emmanuel Bernard
- */
-public interface GenericBuilderFactory {
- /**
- * Defines the provider resolution strategy.
- * This resolver returns the list of providers evaluated
- * to build the ValidatorFactoryBuilder
- * <p/>
- * If no resolver is defined, the default ValidationProviderResolver
- * implementation is used.
- *
- * @return <code>this</code> following the chaining method pattern
- */
- GenericBuilderFactory providerResolver(ValidationProviderResolver resolver);
-
- /**
- * Returns a generic ValidatorFactoryBuilder implementation.
- * At this stage the provider used to build the ValidatorFactory is not defined.
- * <p/>
- * The ValidatorFactoryBuilder implementation is provided by the first provider returned
- * by the ValidationProviderResolver strategy.
- *
- * @return a ValidatorFactoryBuilder implementation compliant with the bootstrap state
- */
- ValidatorFactoryBuilder<?> getBuilder();
-}
Copied: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/ProviderSpecificBootstrap.java (from rev 15817, validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/ProviderSpecificBootstrap.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/ProviderSpecificBootstrap.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -0,0 +1,38 @@
+package javax.validation.bootstrap;
+
+import javax.validation.ValidationProviderResolver;
+import javax.validation.Configuration;
+
+/**
+ * Defines the state used to bootstrap Bean Validation and
+ * creates a provider specific Configuration. The specific Configuration
+ * sub interface uniquely identifying a provider.
+ * <p/>
+ * The requested provider is the first provider suitable for T (as defined in
+ * {@link javax.validation.spi.ValidationProvider#isSuitable(Class)}). The
+ * list of providers evaluated is returned by {@link ValidationProviderResolver}.
+ * If no ValidationProviderResolver is defined, the
+ * default ValidationProviderResolver strategy is used.
+ *
+ * @author Emmanuel Bernard
+ */
+public interface ProviderSpecificBootstrap<T extends Configuration<T>> {
+
+ /**
+ * Optionally define the provider resolver implementation used.
+ * If not defined, use the default ValidationProviderResolver
+ *
+ * @param resolver ValidationProviderResolver implementation used
+ *
+ * @return self
+ */
+ public ProviderSpecificBootstrap<T> providerResolver(ValidationProviderResolver resolver);
+
+ /**
+ * Determine the provider implementation suitable for configurationType and delegate
+ * the creation of this specific Configuration subclass to the provider.
+ *
+ * @return a Configuration sub interface implementation
+ */
+ public T configure();
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/ProviderSpecificBootstrap.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -1,37 +0,0 @@
-package javax.validation.bootstrap;
-
-import javax.validation.ValidationProviderResolver;
-import javax.validation.ValidatorFactoryBuilder;
-
-/**
- * Build implementations of builderType, the specific ValidatorFactoryBuilder
- * sub interface uniquely identifying a provider.
- * <p/>
- * The requested provider is the first provider suitable for T (as defined in
- * {@link javax.validation.spi.ValidationProvider#isSuitable(Class)}). The
- * list of providers evaluated is returned by {@link ValidationProviderResolver}.
- * If no ValidationProviderResolver is defined, the
- * default ValidationProviderResolver strategy is used.
- *
- * @author Emmanuel Bernard
- */
-public interface SpecializedBuilderFactory<T extends ValidatorFactoryBuilder<T>> {
-
- /**
- * Optionally define the provider resolver implementation used.
- * If not defined, use the default ValidationProviderResolver
- *
- * @param resolver ValidationProviderResolver implementation used
- *
- * @return self
- */
- public SpecializedBuilderFactory<T> providerResolver(ValidationProviderResolver resolver);
-
- /**
- * Determine the provider implementation suitable for builderType and delegate
- * the creation of this specific ValidatorFactoryBuilder subclass to the provider.
- *
- * @return a ValidatorFactoryBuilder sub interface implementation
- */
- public T getBuilder();
-}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -3,7 +3,7 @@
import javax.validation.ValidationProviderResolver;
/**
- * Defines the state used to bootstrap the ValidatorFactoryBuilder
+ * Defines the state used to bootstrap the Configuration
*
* @author Emmanuel Bernard
*/
Copied: validator/trunk/validation-api/src/main/java/javax/validation/spi/ConfigurationState.java (from rev 15818, validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ConfigurationState.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ConfigurationState.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -0,0 +1,66 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.validation.spi;
+
+import java.io.InputStream;
+import javax.validation.ConstraintValidatorFactory;
+import javax.validation.MessageInterpolator;
+import javax.validation.TraversableResolver;
+
+/**
+ * Contract between a <code>Configuration</code> and a
+ * </code>ValidatorProvider</code> to create a <code>ValidatorFactory</code>.
+ * The configuration artifacts provided to the
+ * <code>Configuration</code> are passed along.
+ *
+ * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
+ */
+public interface ConfigurationState {
+ /**
+ * Message interpolator as defined by the client programmatically
+ * or null if undefined.
+ *
+ * @return message provider instance or null if not defined
+ */
+ MessageInterpolator getMessageInterpolator();
+
+ /**
+ * Returns the configuration stream defined by the client programmatically
+ * or null if undefined.
+ *
+ * @return the configuration input stream or null
+ */
+ InputStream getConfigurationStream();
+
+ /**
+ * Defines the constraint validator implementation factory as defined by
+ * the client programmatically or null if undefined
+ *
+ * @return factory instance or null if not defined
+ */
+ ConstraintValidatorFactory getConstraintValidatorFactory();
+
+ /**
+ * Traversable resolver as defined by the client programmatically
+ * or null if undefined.
+ *
+ * @return traversable provider instance or null if not defined
+ */
+ TraversableResolver getTraversableResolver();
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/spi/ConfigurationState.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Id
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -17,7 +17,7 @@
*/
package javax.validation.spi;
-import javax.validation.ValidatorFactoryBuilder;
+import javax.validation.Configuration;
import javax.validation.ValidatorFactory;
/**
@@ -33,56 +33,56 @@
/**
* This sub interface uniquely identify a provider.
*
- * @param builderClass targeted builder class.
+ * @param configurationClass targeted configuration class.
*
- * @return <code>true</code> if <code>builderClass</code> is the Bean Validation Provider
- * sub-interface for ValidatorFactoryBuilder
+ * @return <code>true</code> if <code>configurationClass</code> is the Bean Validation Provider
+ * sub-interface for Configuration
*/
- boolean isSuitable(Class<? extends ValidatorFactoryBuilder<?>> builderClass);
+ boolean isSuitable(Class<? extends Configuration<?>> configurationClass);
/**
- * Returns a ValidatorFactoryBuilder instance implementing the
- * <code>builderType</code> interface.
- * The ValidatorFactoryBuilder instance uses the current provider (<code>this</code>)
+ * Returns a Configuration instance implementing the
+ * <code>configurationClass</code> interface.
+ * The Configuration instance uses the current provider (<code>this</code>)
* to build the ValidatorFactory instance.
* <p/>
- * This method can only be called on providers returning true on <
- * code>#isSuitable(builderType)</code>
+ * This method can only be called on providers returning true on
+ * <code>#isSuitable(configurationClass)</code>
*
- * @param builderClass the Builder class type
+ * @param configurationClass the Configuration class type
* @param state bootstrap state
*
- * @return specific validator builder implementation
+ * @return specific Configuration implementation
*/
- <T extends ValidatorFactoryBuilder<T>> T createSpecializedValidatorFactoryBuilder(
+ <T extends Configuration<T>> T createSpecializedConfiguration(
BootstrapState state,
- Class<T> builderClass);
+ Class<T> configurationClass);
/**
- * Returns a ValidatorFactoryBuilder instance. This instance is not bound to
+ * Returns a Configuration instance. This instance is not bound to
* use the current provider. The choice of provider follows the algorithm described
- * in {@link javax.validation.ValidatorFactoryBuilder}
+ * in {@link javax.validation.Configuration}
* <p/>
* The ValidationProviderResolver used is provided by <code>state</code>.
* If null, the default ValidationProviderResolver is used.
*
* @param state bootstrap state
*
- * @return validator builder implementation
+ * @return Configuration implementation
*/
- ValidatorFactoryBuilder<?> createGenericValidatorFactoryBuilder(BootstrapState state);
+ Configuration<?> createGenericConfiguration(BootstrapState state);
/**
* Build a ValidatorFactory using the current provider implementation. The
* ValidatorFactory is assembled and follow the configuration passed
- * using ValidatorFactoryConfiguration.
+ * using ConfigurationState.
* <p>
* The returned ValidatorFactory is properly initialized and ready for use.
* </p>
*
- * @param configuration the configuration descriptor
+ * @param configurationState the configuration descriptor
*
* @return the instanciated ValidatorFactory
*/
- ValidatorFactory buildValidatorFactory(ValidatorFactoryConfiguration configuration);
+ ValidatorFactory buildValidatorFactory(ConfigurationState configurationState);
}
\ No newline at end of file
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2009-01-26 20:32:36 UTC (rev 15822)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2009-01-27 01:13:37 UTC (rev 15823)
@@ -1,66 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation.spi;
-
-import java.io.InputStream;
-import javax.validation.ConstraintValidatorFactory;
-import javax.validation.MessageInterpolator;
-import javax.validation.TraversableResolver;
-
-/**
- * Contract between a <code>ValidatorFactoryBuilder</code> and a
- * </code>ValidatorProvider</code> to create a <code>ValidatorFactory</code>.
- * The configuration artifacts provided to the
- * <code>ValidatorFactoryBuilder</code> are passed along.
- *
- * @author Emmanuel Bernard
- * @author Hardy Ferentschik
- */
-public interface ValidatorFactoryConfiguration {
- /**
- * Message interpolator as defined by the client programmatically
- * or null if undefined.
- *
- * @return message provider instance or null if not defined
- */
- MessageInterpolator getMessageInterpolator();
-
- /**
- * Returns the configuration stream defined by the client programmatically
- * or null if undefined.
- *
- * @return the configuration input stream or null
- */
- InputStream getConfigurationStream();
-
- /**
- * Defines the constraint validator implementation factory as defined by
- * the client programmatically or null if undefined
- *
- * @return factory instance or null if not defined
- */
- ConstraintValidatorFactory getConstraintValidatorFactory();
-
- /**
- * Traversable resolver as defined by the client programmatically
- * or null if undefined.
- *
- * @return traversable provider instance or null if not defined
- */
- TraversableResolver getTraversableResolver();
-}
[View Less]
16 years, 2 months
Hibernate SVN: r15822 - core/branches/Branch_3_2/src/org/hibernate/dialect.
by hibernate-commits@lists.jboss.org
Author: cbredesen
Date: 2009-01-26 15:32:36 -0500 (Mon, 26 Jan 2009)
New Revision: 15822
Modified:
core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle10gDialect.java
core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle8iDialect.java
Log:
HHH-3159 replace deprecated package 'oracle.jdbc.driver' with 'oracle.driver'
Modified: core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle10gDialect.java
===================================================================
--- core/…
[View More]branches/Branch_3_2/src/org/hibernate/dialect/Oracle10gDialect.java 2009-01-26 20:31:11 UTC (rev 15821)
+++ core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle10gDialect.java 2009-01-26 20:32:36 UTC (rev 15822)
@@ -9,7 +9,9 @@
* A dialect specifically for use with Oracle 10g.
* <p/>
* The main difference between this dialect and {@link Oracle9iDialect}
- * is the use of "ANSI join syntax" here...
+ * is the use of "ANSI join syntax". This dialect also retires the use
+ * of the <tt>oracle.jdbc.driver</tt> package in favor of
+ * <tt>oracle.jdbc</tt>.
*
* @author Steve Ebersole
*/
@@ -23,4 +25,12 @@
return new ANSIJoinFragment();
}
+ /*
+ * The package "oracle.jdbc.driver" was retired in 9.0.1 but works fine up
+ * through 10g. So as not to mess with 9i, we're changing it in 10g -- we
+ * may not need an 11g Dialect at all.
+ */
+ String getOracleTypesClassName() {
+ return "oracle.jdbc.OracleTypes";
+ }
}
\ No newline at end of file
Modified: core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle8iDialect.java
===================================================================
--- core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle8iDialect.java 2009-01-26 20:31:11 UTC (rev 15821)
+++ core/branches/Branch_3_2/src/org/hibernate/dialect/Oracle8iDialect.java 2009-01-26 20:32:36 UTC (rev 15822)
@@ -359,13 +359,17 @@
}
};
+
+ String getOracleTypesClassName() {
+ return "oracle.jdbc.driver.OracleTypes";
+ }
// not final-static to avoid possible classcast exceptions if using different oracle drivers.
int oracletypes_cursor_value = 0;
public int registerResultSetOutParameter(java.sql.CallableStatement statement,int col) throws SQLException {
if(oracletypes_cursor_value==0) {
try {
- Class types = ReflectHelper.classForName("oracle.jdbc.driver.OracleTypes");
+ Class types = ReflectHelper.classForName(getOracleTypesClassName());
oracletypes_cursor_value = types.getField("CURSOR").getInt(types.newInstance());
} catch (Exception se) {
throw new HibernateException("Problem while trying to load or access OracleTypes.CURSOR value",se);
[View Less]
16 years, 2 months
Hibernate SVN: r15821 - core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect.
by hibernate-commits@lists.jboss.org
Author: cbredesen
Date: 2009-01-26 15:31:11 -0500 (Mon, 26 Jan 2009)
New Revision: 15821
Modified:
core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java
core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java
Log:
HHH-3159 replace deprecated package 'oracle.jdbc.driver' with 'oracle.driver'
Modified: core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java
=====================================…
[View More]==============================
--- core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java 2009-01-26 20:30:09 UTC (rev 15820)
+++ core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java 2009-01-26 20:31:11 UTC (rev 15821)
@@ -32,7 +32,9 @@
* A dialect specifically for use with Oracle 10g.
* <p/>
* The main difference between this dialect and {@link Oracle9iDialect}
- * is the use of "ANSI join syntax" here...
+ * is the use of "ANSI join syntax". This dialect also retires the use
+ * of the <tt>oracle.jdbc.driver</tt> package in favor of
+ * <tt>oracle.jdbc</tt>.
*
* @author Steve Ebersole
*/
@@ -46,4 +48,12 @@
return new ANSIJoinFragment();
}
+ /*
+ * The package "oracle.jdbc.driver" was retired in 9.0.1 but works fine up
+ * through 10g. So as not to mess with 9i, we're changing it in 10g -- we
+ * may not need an 11g Dialect at all.
+ */
+ String getOracleTypesClassName() {
+ return "oracle.jdbc.OracleTypes";
+ }
}
Modified: core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java
===================================================================
--- core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java 2009-01-26 20:30:09 UTC (rev 15820)
+++ core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java 2009-01-26 20:31:11 UTC (rev 15821)
@@ -387,13 +387,17 @@
}
};
+
+ String getOracleTypesClassName() {
+ return "oracle.jdbc.driver.OracleTypes";
+ }
// not final-static to avoid possible classcast exceptions if using different oracle drivers.
int oracletypes_cursor_value = 0;
public int registerResultSetOutParameter(java.sql.CallableStatement statement,int col) throws SQLException {
if(oracletypes_cursor_value==0) {
try {
- Class types = ReflectHelper.classForName("oracle.jdbc.driver.OracleTypes");
+ Class types = ReflectHelper.classForName(getOracleTypesClassName());
oracletypes_cursor_value = types.getField("CURSOR").getInt(types.newInstance());
} catch (Exception se) {
throw new HibernateException("Problem while trying to load or access OracleTypes.CURSOR value",se);
[View Less]
16 years, 2 months
Hibernate SVN: r15820 - core/trunk/core/src/main/java/org/hibernate/dialect.
by hibernate-commits@lists.jboss.org
Author: cbredesen
Date: 2009-01-26 15:30:09 -0500 (Mon, 26 Jan 2009)
New Revision: 15820
Modified:
core/trunk/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java
core/trunk/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java
Log:
HHH-3159 replace 'oracle.jdbc.driver' with 'oracle.jdbc'
Modified: core/trunk/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java
===================================================================
--- core/trunk/core/src/main/…
[View More]java/org/hibernate/dialect/Oracle10gDialect.java 2009-01-26 03:09:52 UTC (rev 15819)
+++ core/trunk/core/src/main/java/org/hibernate/dialect/Oracle10gDialect.java 2009-01-26 20:30:09 UTC (rev 15820)
@@ -32,7 +32,9 @@
* A dialect specifically for use with Oracle 10g.
* <p/>
* The main difference between this dialect and {@link Oracle9iDialect}
- * is the use of "ANSI join syntax" here...
+ * is the use of "ANSI join syntax". This dialect also retires the use
+ * of the <tt>oracle.jdbc.driver</tt> package in favor of
+ * <tt>oracle.jdbc</tt>.
*
* @author Steve Ebersole
*/
@@ -46,4 +48,12 @@
return new ANSIJoinFragment();
}
+ /*
+ * The package "oracle.jdbc.driver" was retired in 9.0.1 but works fine up
+ * through 10g. So as not to mess with 9i, we're changing it in 10g -- we
+ * may not need an 11g Dialect at all.
+ */
+ String getOracleTypesClassName() {
+ return "oracle.jdbc.OracleTypes";
+ }
}
Modified: core/trunk/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java 2009-01-26 03:09:52 UTC (rev 15819)
+++ core/trunk/core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java 2009-01-26 20:30:09 UTC (rev 15820)
@@ -387,13 +387,17 @@
}
};
+
+ String getOracleTypesClassName() {
+ return "oracle.jdbc.driver.OracleTypes";
+ }
// not final-static to avoid possible classcast exceptions if using different oracle drivers.
int oracletypes_cursor_value = 0;
public int registerResultSetOutParameter(java.sql.CallableStatement statement,int col) throws SQLException {
if(oracletypes_cursor_value==0) {
try {
- Class types = ReflectHelper.classForName("oracle.jdbc.driver.OracleTypes");
+ Class types = ReflectHelper.classForName(getOracleTypesClassName());
oracletypes_cursor_value = types.getField("CURSOR").getInt(types.newInstance());
} catch (Exception se) {
throw new HibernateException("Problem while trying to load or access OracleTypes.CURSOR value",se);
[View Less]
16 years, 2 months
Hibernate SVN: r15819 - validator/trunk/validation-api/src/main/java/javax/validation.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2009-01-25 22:09:52 -0500 (Sun, 25 Jan 2009)
New Revision: 15819
Modified:
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java
Log:
BVAL-91 rename constraint related classes to make them more readable. Check the spec. Applied to the RI as well
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java
===================================================================
--- …
[View More]validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java 2009-01-26 03:04:28 UTC (rev 15818)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java 2009-01-26 03:09:52 UTC (rev 15819)
@@ -18,7 +18,6 @@
/**
* @return the current unexpanded default message
- * TODO: is it needed
*/
String getDefaultErrorMessage();
[View Less]
16 years, 2 months
Hibernate SVN: r15818 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/impl and 3 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2009-01-25 22:04:28 -0500 (Sun, 25 Jan 2009)
New Revision: 15818
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintValidatorFactoryImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorFactory.java
Removed:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/…
[View More]ConstraintFactory.java
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
Log:
BVAL-91 rename constraint related classes to make them more readable. Check the spec. Applied to the RI as well
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -33,7 +33,7 @@
import javax.validation.Valid;
import javax.validation.ValidationException;
import javax.validation.MessageInterpolator;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import org.slf4j.Logger;
@@ -57,7 +57,7 @@
private final MessageInterpolator messageInterpolator;
- private final ConstraintFactory constraintFactory;
+ private final ConstraintValidatorFactory constraintValidatorFactory;
/**
* The root bean class for this validator.
@@ -95,10 +95,10 @@
*/
private Map<Class<?>, List<Class<?>>> groupSequences = new HashMap<Class<?>, List<Class<?>>>();
- public BeanMetaDataImpl(Class<T> beanClass, MessageInterpolator messageInterpolator, ConstraintFactory constraintFactory) {
+ public BeanMetaDataImpl(Class<T> beanClass, MessageInterpolator messageInterpolator, ConstraintValidatorFactory constraintValidatorFactory) {
this.beanClass = beanClass;
this.messageInterpolator = messageInterpolator;
- this.constraintFactory = constraintFactory;
+ this.constraintValidatorFactory = constraintValidatorFactory;
createMetaData();
}
@@ -198,7 +198,8 @@
for ( ConstraintDescriptorImpl constraintDescription : fieldMetadata ) {
ReflectionHelper.setAccessibility( field );
MetaConstraint metaConstraint = new MetaConstraint( field, constraintDescription,
- messageInterpolator, constraintFactory );
+ messageInterpolator, constraintValidatorFactory
+ );
metaConstraintList.add( metaConstraint );
}
if ( field.isAnnotationPresent( Valid.class ) ) {
@@ -214,7 +215,8 @@
for ( ConstraintDescriptorImpl constraintDescription : methodMetadata ) {
ReflectionHelper.setAccessibility( method );
MetaConstraint metaConstraint = new MetaConstraint( method, constraintDescription,
- messageInterpolator, constraintFactory );
+ messageInterpolator, constraintValidatorFactory
+ );
metaConstraintList.add( metaConstraint );
}
if ( method.isAnnotationPresent( Valid.class ) ) {
@@ -228,7 +230,8 @@
List<ConstraintDescriptorImpl> classMetadata = findClassLevelConstraints( clazz );
for ( ConstraintDescriptorImpl constraintDescription : classMetadata ) {
MetaConstraint metaConstraint = new MetaConstraint( clazz, constraintDescription,
- messageInterpolator, constraintFactory );
+ messageInterpolator, constraintValidatorFactory
+ );
metaConstraintList.add( metaConstraint );
}
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -22,7 +22,7 @@
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintDescriptor;
import javax.validation.ValidationException;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import javax.validation.MessageInterpolator;
import org.slf4j.Logger;
@@ -44,24 +44,24 @@
private final List<ConstraintTree> children;
private ConstraintValidator constraintValidator;
private final ConstraintDescriptor descriptor;
- private final ConstraintFactory constraintFactory;
+ private final ConstraintValidatorFactory constraintValidatorFactory;
private final MessageInterpolator messageInterpolator;
- public ConstraintTree(ConstraintDescriptor descriptor, ConstraintFactory constraintFactory, MessageInterpolator messageInterpolator) {
- this( descriptor, null, constraintFactory, messageInterpolator );
+ public ConstraintTree(ConstraintDescriptor descriptor, ConstraintValidatorFactory constraintValidatorFactory, MessageInterpolator messageInterpolator) {
+ this( descriptor, null, constraintValidatorFactory, messageInterpolator );
}
- private ConstraintTree(ConstraintDescriptor descriptor, ConstraintTree parent, ConstraintFactory constraintFactory, MessageInterpolator messageInterpolator) {
+ private ConstraintTree(ConstraintDescriptor descriptor, ConstraintTree parent, ConstraintValidatorFactory constraintValidatorFactory, MessageInterpolator messageInterpolator) {
this.parent = parent;
this.descriptor = descriptor;
- this.constraintFactory = constraintFactory;
+ this.constraintValidatorFactory = constraintValidatorFactory;
this.messageInterpolator = messageInterpolator;
this.constraintValidator = getConstraint( descriptor );
children = new ArrayList<ConstraintTree>( descriptor.getComposingConstraints().size() );
for ( ConstraintDescriptor composingDescriptor : descriptor.getComposingConstraints() ) {
ConstraintTree treeNode = new ConstraintTree(
- composingDescriptor, this, constraintFactory, messageInterpolator
+ composingDescriptor, this, constraintValidatorFactory, messageInterpolator
);
children.add( treeNode );
}
@@ -147,7 +147,7 @@
ConstraintValidator constraintValidator;
try {
//unchecked
- constraintValidator = constraintFactory.getInstance( descriptor.getConstraintValidatorClass() );
+ constraintValidator = constraintValidatorFactory.getInstance( descriptor.getConstraintValidatorClass() );
}
catch ( RuntimeException e ) {
throw new ValidationException( "Unable to instantiate " + descriptor.getConstraintValidatorClass(), e );
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -24,7 +24,7 @@
import javax.validation.ConstraintDescriptor;
import javax.validation.ValidationException;
import javax.validation.MessageInterpolator;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import org.hibernate.validation.util.ReflectionHelper;
@@ -70,11 +70,11 @@
*/
private final ElementType elementType;
- public MetaConstraint(Type t, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
- this( t, null, null, ElementType.FIELD, constraintDescriptor, "", messageInterpolator, factory );
+ public MetaConstraint(Type t, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintValidatorFactory validatorFactory) {
+ this( t, null, null, ElementType.FIELD, constraintDescriptor, "", messageInterpolator, validatorFactory );
}
- public MetaConstraint(Method m, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
+ public MetaConstraint(Method m, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintValidatorFactory validatorFactory) {
this(
null,
m,
@@ -83,21 +83,23 @@
constraintDescriptor,
ReflectionHelper.getPropertyName( m ),
messageInterpolator,
- factory
+ validatorFactory
);
}
- public MetaConstraint(Field f, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
- this( null, null, f, ElementType.FIELD, constraintDescriptor, f.getName(), messageInterpolator, factory );
+ public MetaConstraint(Field f, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintValidatorFactory validatorFactory) {
+ this( null, null, f, ElementType.FIELD, constraintDescriptor, f.getName(), messageInterpolator,
+ validatorFactory
+ );
}
- private MetaConstraint(Type t, Method m, Field f, ElementType elementType, ConstraintDescriptor constraintDescriptor, String property, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
+ private MetaConstraint(Type t, Method m, Field f, ElementType elementType, ConstraintDescriptor constraintDescriptor, String property, MessageInterpolator messageInterpolator, ConstraintValidatorFactory validatorFactory) {
this.type = t;
this.method = m;
this.field = f;
this.elementType = elementType;
this.propertyName = property;
- constraintTree = new ConstraintTree( constraintDescriptor, factory, messageInterpolator );
+ constraintTree = new ConstraintTree( constraintDescriptor, validatorFactory, messageInterpolator );
}
/**
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -1,45 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.impl;
-
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintFactory;
-import javax.validation.ValidationException;
-
-/**
- * Default <code>ConstraintFactory</code> using a no-arg constructor.
- *
- * @author Emmanuel Bernard
- */
-public class ConstraintFactoryImpl implements ConstraintFactory {
-
- /**
- * {@inheritDoc}
- */
- public <T extends ConstraintValidator> T getInstance(Class<T> key) {
- try {
- return key.newInstance();
- }
- catch ( InstantiationException e ) {
- throw new ValidationException( "Unable to instanciate " + key, e );
- }
- catch ( IllegalAccessException e ) {
- throw new ValidationException( "Unable to instanciate " + key, e );
- }
- }
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintValidatorFactoryImpl.java (from rev 15817, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintValidatorFactoryImpl.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintValidatorFactoryImpl.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -0,0 +1,45 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.impl;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorFactory;
+import javax.validation.ValidationException;
+
+/**
+ * Default <code>ConstraintValidatorFactory</code> using a no-arg constructor.
+ *
+ * @author Emmanuel Bernard
+ */
+public class ConstraintValidatorFactoryImpl implements ConstraintValidatorFactory {
+
+ /**
+ * {@inheritDoc}
+ */
+ public <T extends ConstraintValidator> T getInstance(Class<T> key) {
+ try {
+ return key.newInstance();
+ }
+ catch ( InstantiationException e ) {
+ throw new ValidationException( "Unable to instanciate " + key, e );
+ }
+ catch ( IllegalAccessException e ) {
+ throw new ValidationException( "Unable to instanciate " + key, e );
+ }
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintValidatorFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -19,7 +19,7 @@
import java.io.InputStream;
import java.util.List;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
import javax.validation.ValidationException;
@@ -48,7 +48,7 @@
private final TraversableResolver defaultTraversableResolver = new DefaultTraversableResolver();
private MessageInterpolator messageInterpolator;
- private ConstraintFactory constraintFactory = new ConstraintFactoryImpl();
+ private ConstraintValidatorFactory constraintValidatorFactory = new ConstraintValidatorFactoryImpl();
private String configurationFile = "META-INF/validation.xml";
private final ValidationProvider provider;
private final ValidationProviderResolver providerResolver;
@@ -86,8 +86,8 @@
return this;
}
- public ValidatorFactoryBuilderImpl constraintFactory(ConstraintFactory constraintFactory) {
- this.constraintFactory = constraintFactory;
+ public ValidatorFactoryBuilderImpl constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
+ this.constraintValidatorFactory = constraintValidatorFactory;
return this;
}
@@ -123,8 +123,8 @@
return messageInterpolator;
}
- public ConstraintFactory getConstraintFactory() {
- return constraintFactory;
+ public ConstraintValidatorFactory getConstraintValidatorFactory() {
+ return constraintValidatorFactory;
}
public TraversableResolver getTraversableResolver() {
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -19,7 +19,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
import javax.validation.Validator;
@@ -37,7 +37,7 @@
private final MessageInterpolator messageInterpolator;
private final TraversableResolver traversableResolver;
- private final ConstraintFactory constraintFactory;
+ private final ConstraintValidatorFactory constraintValidatorFactory;
//TODO is there a way to replace ? by so kind of <T> to express the correlation?
private Map<Class<?>, BeanMetaDataImpl<?>> metadataProviders
@@ -46,7 +46,7 @@
public ValidatorFactoryImpl(ValidatorFactoryConfiguration configuration) {
this.messageInterpolator = configuration.getMessageInterpolator();
- this.constraintFactory = configuration.getConstraintFactory();
+ this.constraintValidatorFactory = configuration.getConstraintValidatorFactory();
this.traversableResolver = configuration.getTraversableResolver();
//do init metadata from XML form
}
@@ -72,7 +72,7 @@
@SuppressWarnings( "unchecked")
BeanMetaDataImpl<T> metadata = ( BeanMetaDataImpl<T> ) metadataProviders.get(beanClass);
if (metadata == null) {
- metadata = new BeanMetaDataImpl<T>(beanClass, messageInterpolator, constraintFactory);
+ metadata = new BeanMetaDataImpl<T>(beanClass, messageInterpolator, constraintValidatorFactory );
metadataProviders.put( beanClass, metadata );
}
return metadata;
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -23,7 +23,7 @@
import java.util.Locale;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintDescriptor;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import javax.validation.ConstraintViolation;
import javax.validation.MessageInterpolator;
import javax.validation.Validation;
@@ -45,7 +45,7 @@
import org.hibernate.validation.HibernateValidatorFactoryBuilder;
import org.hibernate.validation.constraints.NotNullConstraintValidator;
import org.hibernate.validation.eg.Customer;
-import org.hibernate.validation.impl.ConstraintFactoryImpl;
+import org.hibernate.validation.impl.ConstraintValidatorFactoryImpl;
import org.hibernate.validation.impl.ValidatorFactoryBuilderImpl;
import org.hibernate.validation.impl.ValidatorFactoryImpl;
import org.hibernate.validation.impl.HibernateValidationProvider;
@@ -132,7 +132,7 @@
}
@Test
- public void testCustomConstraintFactory() {
+ public void testCustomConstraintValidatorFactory() {
ValidatorFactoryBuilder<?> builder = Validation.getBuilder();
assertDefaultBuilderAndFactory( builder );
@@ -150,13 +150,13 @@
//FIXME nothing guarantee that a builder can be reused
// now we modify the builder, get a new factory and valiator and try again
- builder.constraintFactory(
- new ConstraintFactory() {
+ builder.constraintValidatorFactory(
+ new ConstraintValidatorFactory() {
public <T extends ConstraintValidator> T getInstance(Class<T> key) {
if ( key == NotNullConstraintValidator.class ) {
return ( T ) new BadlyBehavedNotNullConstraintValidator();
}
- return new ConstraintFactoryImpl().getInstance( key );
+ return new ConstraintValidatorFactoryImpl().getInstance( key );
}
}
);
Modified: validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -1,4 +1,4 @@
-// $Id$
+// $Id: Constraint.java 15817 2009-01-25 22:35:36Z epbernard $
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -41,5 +41,5 @@
/**
* @return The class implementing the constraint validation logic
*/
- public abstract Class<? extends ConstraintValidator> validatedBy();
+ public Class<? extends ConstraintValidator> validatedBy();
}
\ No newline at end of file
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -1,36 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation;
-
-/**
- * Instantiate a <code>ConstraintValidator</code> instance from its class.
- * The <code>ConstraintFactory</code> is <b>not</b> responsible for calling {@link ConstraintValidator#initialize(java.lang.annotation.Annotation)}.
- *
- * @author Dhanji R. Prasanna
- * @author Emmanuel Bernard
- * @author Hardy Ferentschik
- */
-public interface ConstraintFactory {
-
- /**
- * @param key The class of the constraint validator to instantiate.
- *
- * @return An constraint validator instance of the specified class.
- */
- <T extends ConstraintValidator> T getInstance(Class<T> key);
-}
Copied: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorFactory.java (from rev 15817, validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorFactory.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorFactory.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -0,0 +1,36 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.validation;
+
+/**
+ * Instantiate a <code>ConstraintValidator</code> instance from its class.
+ * The <code>ConstraintValidatorFactory</code> is <b>not</b> responsible for calling {@link ConstraintValidator#initialize(java.lang.annotation.Annotation)}.
+ *
+ * @author Dhanji R. Prasanna
+ * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
+ */
+public interface ConstraintValidatorFactory {
+
+ /**
+ * @param key The class of the constraint validator to instantiate.
+ *
+ * @return An constraint validator instance of the specified class.
+ */
+ <T extends ConstraintValidator> T getInstance(Class<T> key);
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -69,14 +69,14 @@
T traversableResolver(TraversableResolver resolver);
/**
- * Defines the constraint factory. Has priority over the configuration
+ * Defines the constraint validator factory. Has priority over the configuration
* based constraint factory.
*
- * @param constraintFactory constraint factory inmplementation.
+ * @param constraintValidatorFactory constraint factory inmplementation.
*
* @return <code>this</code> following the chaining method pattern.
*/
- T constraintFactory(ConstraintFactory constraintFactory);
+ T constraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory);
/**
* Configure the ValidatorFactory based on <code>stream</code>
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2009-01-25 22:35:36 UTC (rev 15817)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2009-01-26 03:04:28 UTC (rev 15818)
@@ -18,7 +18,7 @@
package javax.validation.spi;
import java.io.InputStream;
-import javax.validation.ConstraintFactory;
+import javax.validation.ConstraintValidatorFactory;
import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
@@ -49,12 +49,12 @@
InputStream getConfigurationStream();
/**
- * Defines the constraint implementation factory as defined by
+ * Defines the constraint validator implementation factory as defined by
* the client programmatically or null if undefined
*
* @return factory instance or null if not defined
*/
- ConstraintFactory getConstraintFactory();
+ ConstraintValidatorFactory getConstraintValidatorFactory();
/**
* Traversable resolver as defined by the client programmatically
[View Less]
16 years, 2 months
Hibernate SVN: r15817 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/engine and 11 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2009-01-25 17:35:36 -0500 (Sun, 25 Jan 2009)
New Revision: 15817
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraintValidator.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraintValidator.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraintValidator.java
validator/trunk/hibernate-…
[View More]validator/src/main/java/org/hibernate/validation/constraints/PatternConstraintValidator.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraintValidator.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraintValidator.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraintValidator.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraintValidator.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraintValidator.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraintValidator.java
validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java
validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraintValidator.java
validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraintValidator.java
Removed:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintContextImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraint.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraint.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraint.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraint.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraint.java
validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java
validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java
validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Length.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Pattern.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintDescriptorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/util/ReflectionHelper.java
validator/trunk/hibernate-validator/src/main/resources/org/hibernate/validation/BuiltinConstraintDefinitions.properties
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthConstraintTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotEmptyConstraintTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotNullConstraintTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternConstraintTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcode.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcode.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcode.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroups.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessage.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/ValidProperty.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ConstraintCompositionTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java
validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java
Log:
BVAL-91 rename constraint related classes to make them more readable. Check the spec. Applied to the RI as well
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Length.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Length.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Length.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -24,7 +24,7 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
/**
* Validate that the string is between min and max included
@@ -32,7 +32,7 @@
* @author Emmanuel Bernard
*/
@Documented
-(a)ConstraintValidator(LengthConstraint.class)
+@Constraint(validatedBy = LengthConstraintValidator.class)
@Target({ METHOD, FIELD, TYPE })
@Retention(RUNTIME)
public @interface Length {
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,50 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * Check that a string's length is between min and max.
- *
- * @author Emmanuel Bernard
- * @author Gavin King
- */
-public class LengthConstraint implements Constraint<Length> {
- private int min;
- private int max;
-
- public void initialize(Length parameters) {
- min = parameters.min();
- max = parameters.max();
- }
-
- public boolean isValid(Object value, ConstraintContext constraintContext) {
- if ( value == null ) {
- return true;
- }
- if ( !( value instanceof String ) ) {
- throw new IllegalArgumentException( "Expected String type." );
- }
- String string = ( String ) value;
- int length = string.length();
- return length >= min && length <= max;
- }
-
-}
\ No newline at end of file
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,50 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * Check that a string's length is between min and max.
+ *
+ * @author Emmanuel Bernard
+ * @author Gavin King
+ */
+public class LengthConstraintValidator implements ConstraintValidator<Length> {
+ private int min;
+ private int max;
+
+ public void initialize(Length parameters) {
+ min = parameters.min();
+ max = parameters.max();
+ }
+
+ public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
+ if ( value == null ) {
+ return true;
+ }
+ if ( !( value instanceof String ) ) {
+ throw new IllegalArgumentException( "Expected String type." );
+ }
+ String string = ( String ) value;
+ int length = string.length();
+ return length >= min && length <= max;
+ }
+
+}
\ No newline at end of file
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmpty.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -23,13 +23,13 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
/**
* @author Emmanuel Bernard
*/
@Documented
-(a)ConstraintValidator(NotEmptyConstraint.class)
+@Constraint(validatedBy = NotEmptyConstraintValidator.class)
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
public @interface NotEmpty {
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,43 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * @author Hardy Ferentschik
- * @todo Extend to not only support strings, but also collections and maps. Needs to be specified first though.
- */
-public class NotEmptyConstraint implements Constraint<NotEmpty> {
-
- public void initialize(NotEmpty parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- if ( object == null ) {
- return true;
- }
- if ( !( object instanceof String ) ) {
- throw new IllegalArgumentException( "Expected String type." );
- }
- String string = ( String ) object;
- int length = string.length();
- return length > 0;
- }
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,43 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ * @todo Extend to not only support strings, but also collections and maps. Needs to be specified first though.
+ */
+public class NotEmptyConstraintValidator implements ConstraintValidator<NotEmpty> {
+
+ public void initialize(NotEmpty parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ if ( object == null ) {
+ return true;
+ }
+ if ( !( object instanceof String ) ) {
+ throw new IllegalArgumentException( "Expected String type." );
+ }
+ String string = ( String ) object;
+ int length = string.length();
+ return length > 0;
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotEmptyConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,37 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-import javax.validation.constraints.NotNull;
-
-/**
- * Validate that the object is not <code>null</code>.
- *
- * @author Emmanuel Bernard
- */
-public class NotNullConstraint implements Constraint<NotNull> {
-
- public void initialize(NotNull parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- return object != null;
- }
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,37 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Validate that the object is not <code>null</code>.
+ *
+ * @author Emmanuel Bernard
+ */
+public class NotNullConstraintValidator implements ConstraintValidator<NotNull> {
+
+ public void initialize(NotNull parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ return object != null;
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/NotNullConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Pattern.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Pattern.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/Pattern.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -23,13 +23,13 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
/**
* @author Hardy Ferentschik
*/
@Documented
-(a)ConstraintValidator(PatternConstraint.class)
+@Constraint(validatedBy = PatternConstraintValidator.class)
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
public @interface Pattern {
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,49 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints;
-
-import java.util.regex.Matcher;
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * @author Hardy Ferentschik
- */
-public class PatternConstraint implements Constraint<Pattern> {
-
- private java.util.regex.Pattern pattern;
-
- public void initialize(Pattern parameters) {
- pattern = java.util.regex.Pattern.compile(
- parameters.regex(),
- parameters.flags()
- );
- }
-
- public boolean isValid(Object value, ConstraintContext constraintContext) {
- if ( value == null ) {
- return true;
- }
- if ( !( value instanceof String ) ) {
- throw new IllegalArgumentException( "Expected String type." );
- }
- String string = ( String ) value;
- Matcher m = pattern.matcher( string );
- return m.matches();
- }
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,49 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints;
+
+import java.util.regex.Matcher;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class PatternConstraintValidator implements ConstraintValidator<Pattern> {
+
+ private java.util.regex.Pattern pattern;
+
+ public void initialize(Pattern parameters) {
+ pattern = java.util.regex.Pattern.compile(
+ parameters.regex(),
+ parameters.flags()
+ );
+ }
+
+ public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
+ if ( value == null ) {
+ return true;
+ }
+ if ( !( value instanceof String ) ) {
+ throw new IllegalArgumentException( "Expected String type." );
+ }
+ String string = ( String ) value;
+ Matcher m = pattern.matcher( string );
+ return m.matches();
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,67 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints;
-
-import java.util.Collection;
-import java.lang.reflect.Array;
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-import javax.validation.constraints.Size;
-
-/**
- * Check that a string's length is between min and max.
- *
- * @author Emmanuel Bernard
- * @author Gavin King
- */
-public class SizeConstraint implements Constraint<Size> {
- private int min;
- private int max;
-
- public void initialize(Size parameters) {
- min = parameters.min();
- max = parameters.max();
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isValid(Object value, ConstraintContext constraintContext) {
- if ( value == null ) {
- return true;
- }
-
- int size;
- if ( value instanceof String ) {
- String string = ( String ) value;
- size = string.length();
-
- }
- else if ( value instanceof Collection ) {
- Collection collection = ( Collection ) value;
- size = collection.size();
- }
- else if ( value instanceof Array ) {
- size = Array.getLength( value );
- }
- else {
- throw new IllegalArgumentException( "Expected String type." );
- }
- return size >= min && size <= max;
- }
-}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,67 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints;
+
+import java.util.Collection;
+import java.lang.reflect.Array;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.constraints.Size;
+
+/**
+ * Check that a string's length is between min and max.
+ *
+ * @author Emmanuel Bernard
+ * @author Gavin King
+ */
+public class SizeConstraintValidator implements ConstraintValidator<Size> {
+ private int min;
+ private int max;
+
+ public void initialize(Size parameters) {
+ min = parameters.min();
+ max = parameters.max();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
+ if ( value == null ) {
+ return true;
+ }
+
+ int size;
+ if ( value instanceof String ) {
+ String string = ( String ) value;
+ size = string.length();
+
+ }
+ else if ( value instanceof Collection ) {
+ Collection collection = ( Collection ) value;
+ size = collection.size();
+ }
+ else if ( value instanceof Array ) {
+ size = Array.getLength( value );
+ }
+ else {
+ throw new IllegalArgumentException( "Expected String type." );
+ }
+ return size >= min && size <= max;
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintContextImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintContextImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintContextImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,84 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.engine;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import javax.validation.ConstraintContext;
-import javax.validation.ConstraintDescriptor;
-
-/**
- * @author Emmanuel Bernard
- */
-public class ConstraintContextImpl implements ConstraintContext {
- private final ConstraintDescriptor constraintDescriptor;
- private final List<ErrorMessage> errorMessages;
- private boolean defaultDisabled;
-
- public ConstraintContextImpl(ConstraintDescriptor constraintDescriptor) {
- this.constraintDescriptor = constraintDescriptor;
- this.errorMessages = new ArrayList<ErrorMessage>(3);
- }
-
- public void disableDefaultError() {
- defaultDisabled = true;
- }
-
- public String getDefaultErrorMessage() {
- return ( String ) constraintDescriptor.getParameters().get("message");
- }
-
- public void addError(String message) {
- //FIXME get the default property if property-level
- errorMessages.add( new ErrorMessage( message, null ) );
- }
-
- public void addError(String message, String property) {
- //FIXME: make sure the property is valid
- errorMessages.add( new ErrorMessage( message, property ) );
- }
-
- public List<ErrorMessage> getErrorMessages() {
- List<ErrorMessage> returnedErrorMessages = new ArrayList<ErrorMessage>( errorMessages.size() + 1 );
- Collections.copy( returnedErrorMessages, errorMessages );
- if ( ! defaultDisabled ) {
- //FIXME get the default property if property-level
- returnedErrorMessages.add( new ErrorMessage( getDefaultErrorMessage(), null) );
- }
- return returnedErrorMessages;
- }
-
- public static class ErrorMessage {
- private final String message;
- private final String property;
-
- private ErrorMessage(String message, String property) {
- this.message = message;
- this.property = property;
- }
-
- public String getMessage() {
- return message;
- }
-
- public String getProperty() {
- return property;
- }
- }
-}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -19,7 +19,7 @@
import java.util.List;
import java.util.ArrayList;
-import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
import javax.validation.ConstraintDescriptor;
import javax.validation.ValidationException;
import javax.validation.ConstraintFactory;
@@ -42,7 +42,7 @@
private final ConstraintTree parent;
private final List<ConstraintTree> children;
- private Constraint constraint;
+ private ConstraintValidator constraintValidator;
private final ConstraintDescriptor descriptor;
private final ConstraintFactory constraintFactory;
private final MessageInterpolator messageInterpolator;
@@ -56,7 +56,7 @@
this.descriptor = descriptor;
this.constraintFactory = constraintFactory;
this.messageInterpolator = messageInterpolator;
- this.constraint = getConstraint( descriptor );
+ this.constraintValidator = getConstraint( descriptor );
children = new ArrayList<ConstraintTree>( descriptor.getComposingConstraints().size() );
for ( ConstraintDescriptor composingDescriptor : descriptor.getComposingConstraints() ) {
@@ -83,8 +83,8 @@
return children.size() > 0;
}
- public Constraint getConstraint() {
- return constraint;
+ public ConstraintValidator getConstraint() {
+ return constraintValidator;
}
public ConstraintDescriptor getDescriptor() {
@@ -97,12 +97,12 @@
}
final Object leafBeanInstance = validationContext.peekValidatedObject();
- ConstraintContextImpl constraintContext = new ConstraintContextImpl( descriptor );
+ ConstraintValidatorContextImpl constraintContext = new ConstraintValidatorContextImpl( descriptor );
if ( log.isTraceEnabled() ) {
log.trace( "Validating value {} against constraint defined by {}", value, descriptor );
}
- if ( !constraint.isValid( value, constraintContext ) ) {
- for ( ConstraintContextImpl.ErrorMessage error : constraintContext.getErrorMessages() ) {
+ if ( !constraintValidator.isValid( value, constraintContext ) ) {
+ for ( ConstraintValidatorContextImpl.ErrorMessage error : constraintContext.getErrorMessages() ) {
final String message = error.getMessage();
createConstraintViolation( value, beanClass, validationContext, leafBeanInstance, message, descriptor );
}
@@ -143,22 +143,22 @@
}
@SuppressWarnings("unchecked")
- private Constraint getConstraint(ConstraintDescriptor descriptor) {
- Constraint constraint;
+ private ConstraintValidator getConstraint(ConstraintDescriptor descriptor) {
+ ConstraintValidator constraintValidator;
try {
//unchecked
- constraint = constraintFactory.getInstance( descriptor.getConstraintClass() );
+ constraintValidator = constraintFactory.getInstance( descriptor.getConstraintValidatorClass() );
}
catch ( RuntimeException e ) {
- throw new ValidationException( "Unable to instantiate " + descriptor.getConstraintClass(), e );
+ throw new ValidationException( "Unable to instantiate " + descriptor.getConstraintValidatorClass(), e );
}
try {
- constraint.initialize( descriptor.getAnnotation() );
+ constraintValidator.initialize( descriptor.getAnnotation() );
}
catch ( RuntimeException e ) {
- throw new ValidationException( "Unable to intialize " + constraint.getClass().getName(), e );
+ throw new ValidationException( "Unable to intialize " + constraintValidator.getClass().getName(), e );
}
- return constraint;
+ return constraintValidator;
}
}
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintContextImpl.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,84 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.engine;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintDescriptor;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class ConstraintValidatorContextImpl implements ConstraintValidatorContext {
+ private final ConstraintDescriptor constraintDescriptor;
+ private final List<ErrorMessage> errorMessages;
+ private boolean defaultDisabled;
+
+ public ConstraintValidatorContextImpl(ConstraintDescriptor constraintDescriptor) {
+ this.constraintDescriptor = constraintDescriptor;
+ this.errorMessages = new ArrayList<ErrorMessage>(3);
+ }
+
+ public void disableDefaultError() {
+ defaultDisabled = true;
+ }
+
+ public String getDefaultErrorMessage() {
+ return ( String ) constraintDescriptor.getParameters().get("message");
+ }
+
+ public void addError(String message) {
+ //FIXME get the default property if property-level
+ errorMessages.add( new ErrorMessage( message, null ) );
+ }
+
+ public void addError(String message, String property) {
+ //FIXME: make sure the property is valid
+ errorMessages.add( new ErrorMessage( message, property ) );
+ }
+
+ public List<ErrorMessage> getErrorMessages() {
+ List<ErrorMessage> returnedErrorMessages = new ArrayList<ErrorMessage>( errorMessages.size() + 1 );
+ Collections.copy( returnedErrorMessages, errorMessages );
+ if ( ! defaultDisabled ) {
+ //FIXME get the default property if property-level
+ returnedErrorMessages.add( new ErrorMessage( getDefaultErrorMessage(), null) );
+ }
+ return returnedErrorMessages;
+ }
+
+ public static class ErrorMessage {
+ private final String message;
+ private final String property;
+
+ private ErrorMessage(String message, String property) {
+ this.message = message;
+ this.property = property;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public String getProperty() {
+ return property;
+ }
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintDescriptorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintDescriptorImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintDescriptorImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -27,9 +27,9 @@
import java.util.Map;
import java.util.Set;
import java.util.List;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintDescriptor;
import javax.validation.Constraint;
-import javax.validation.ConstraintDescriptor;
-import javax.validation.ConstraintValidator;
import javax.validation.OverridesParameter;
import javax.validation.OverridesParameters;
import javax.validation.ReportAsViolationFromCompositeConstraint;
@@ -55,7 +55,7 @@
private static final int OVERRIDES_PARAMETER_DEFAULT_INDEX = -1;
private final Annotation annotation;
- private final Class<? extends Constraint> constraintClass;
+ private final Class<? extends ConstraintValidator> constraintClass;
private final Set<Class<?>> groups;
private final Map<String, Object> parameters;
private final Set<ConstraintDescriptor> composingConstraints = new HashSet<ConstraintDescriptor>();
@@ -84,9 +84,9 @@
this.constraintClass = ReflectionHelper.getBuiltInConstraint( annotation );
}
else {
- ConstraintValidator constraintValidator = annotation.annotationType()
- .getAnnotation( ConstraintValidator.class );
- this.constraintClass = constraintValidator.value();
+ Constraint constraint = annotation.annotationType()
+ .getAnnotation( Constraint.class );
+ this.constraintClass = constraint.validatedBy();
}
parseOverrideParameters();
@@ -110,7 +110,7 @@
/**
* {@inheritDoc}
*/
- public Class<? extends Constraint> getConstraintClass() {
+ public Class<? extends ConstraintValidator> getConstraintValidatorClass() {
return constraintClass;
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintFactoryImpl.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -17,7 +17,7 @@
*/
package org.hibernate.validation.impl;
-import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
import javax.validation.ConstraintFactory;
import javax.validation.ValidationException;
@@ -31,7 +31,7 @@
/**
* {@inheritDoc}
*/
- public <T extends Constraint> T getInstance(Class<T> key) {
+ public <T extends ConstraintValidator> T getInstance(Class<T> key) {
try {
return key.newInstance();
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/util/ReflectionHelper.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/util/ReflectionHelper.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/util/ReflectionHelper.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -38,8 +38,8 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import javax.validation.ConstraintValidator;
import javax.validation.Constraint;
-import javax.validation.ConstraintValidator;
import javax.validation.ValidationException;
import org.slf4j.Logger;
@@ -71,7 +71,7 @@
}
- public static Class<? extends Constraint> getBuiltInConstraint(Annotation annotation) {
+ public static Class<? extends ConstraintValidator> getBuiltInConstraint(Annotation annotation) {
Class constraint = null;
String annotationType = annotation.annotationType().getName();
if ( builtInConstraints.containsKey( annotationType ) ) {
@@ -122,9 +122,9 @@
*/
public static boolean isConstraintAnnotation(Annotation annotation) {
- ConstraintValidator constraintValidator = annotation.annotationType()
- .getAnnotation( ConstraintValidator.class );
- if ( constraintValidator == null ) {
+ Constraint constraint = annotation.annotationType()
+ .getAnnotation( Constraint.class );
+ if ( constraint == null ) {
return false;
}
@@ -132,7 +132,7 @@
getAnnotationParameter( annotation, "message", String.class );
}
catch ( Exception e ) {
- String msg = annotation.annotationType().getName() + " contains ConstraintValidator annotation, but does " +
+ String msg = annotation.annotationType().getName() + " contains Constraint annotation, but does " +
"not contain a message parameter. Annotation is getting ignored.";
log.warn( msg );
return false;
@@ -142,7 +142,7 @@
getAnnotationParameter( annotation, "groups", Class[].class );
}
catch ( Exception e ) {
- String msg = annotation.annotationType().getName() + " contains ConstraintValidator annotation, but does " +
+ String msg = annotation.annotationType().getName() + " contains Constraint annotation, but does " +
"not contain a groups parameter. Annotation is getting ignored.";
log.warn( msg );
return false;
Modified: validator/trunk/hibernate-validator/src/main/resources/org/hibernate/validation/BuiltinConstraintDefinitions.properties
===================================================================
--- validator/trunk/hibernate-validator/src/main/resources/org/hibernate/validation/BuiltinConstraintDefinitions.properties 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/main/resources/org/hibernate/validation/BuiltinConstraintDefinitions.properties 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,3 +1,3 @@
# $Id$
-javax.validation.constraints.NotNull=org.hibernate.validation.constraints.NotNullConstraint
-javax.validation.constraints.Size=org.hibernate.validation.constraints.SizeConstraint
\ No newline at end of file
+javax.validation.constraints.NotNull=org.hibernate.validation.constraints.NotNullConstraintValidator
+javax.validation.constraints.Size=org.hibernate.validation.constraints.SizeConstraintValidator
\ No newline at end of file
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -21,7 +21,7 @@
import java.util.List;
import java.util.Set;
import java.util.Locale;
-import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
import javax.validation.ConstraintDescriptor;
import javax.validation.ConstraintFactory;
import javax.validation.ConstraintViolation;
@@ -32,7 +32,7 @@
import javax.validation.Validator;
import javax.validation.ValidatorFactoryBuilder;
import javax.validation.ValidatorFactory;
-import javax.validation.ConstraintContext;
+import javax.validation.ConstraintValidatorContext;
import javax.validation.bootstrap.SpecializedBuilderFactory;
import javax.validation.spi.ValidationProvider;
@@ -43,7 +43,7 @@
import org.junit.Test;
import org.hibernate.validation.HibernateValidatorFactoryBuilder;
-import org.hibernate.validation.constraints.NotNullConstraint;
+import org.hibernate.validation.constraints.NotNullConstraintValidator;
import org.hibernate.validation.eg.Customer;
import org.hibernate.validation.impl.ConstraintFactoryImpl;
import org.hibernate.validation.impl.ValidatorFactoryBuilderImpl;
@@ -152,9 +152,9 @@
// now we modify the builder, get a new factory and valiator and try again
builder.constraintFactory(
new ConstraintFactory() {
- public <T extends Constraint> T getInstance(Class<T> key) {
- if ( key == NotNullConstraint.class ) {
- return ( T ) new BadlyBehavedNotNullConstraint();
+ public <T extends ConstraintValidator> T getInstance(Class<T> key) {
+ if ( key == NotNullConstraintValidator.class ) {
+ return ( T ) new BadlyBehavedNotNullConstraintValidator();
}
return new ConstraintFactoryImpl().getInstance( key );
}
@@ -240,9 +240,9 @@
assertTrue( factory instanceof ValidatorFactoryImpl );
}
- class BadlyBehavedNotNullConstraint extends NotNullConstraint {
+ class BadlyBehavedNotNullConstraintValidator extends NotNullConstraintValidator {
@Override
- public boolean isValid(Object object, ConstraintContext constraintContext) {
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
return true;
}
}
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthConstraintTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthConstraintTest.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthConstraintTest.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -18,7 +18,6 @@
package org.hibernate.validation.constraints;
import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -35,11 +34,11 @@
*/
public class LengthConstraintTest {
- LengthConstraint constraint;
+ LengthConstraintValidator constraint;
@Before
public void init() {
- constraint = new LengthConstraint();
+ constraint = new LengthConstraintValidator();
constraint.initialize(
new Length() {
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotEmptyConstraintTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotEmptyConstraintTest.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotEmptyConstraintTest.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -17,8 +17,6 @@
*/
package org.hibernate.validation.constraints;
-import java.lang.annotation.Annotation;
-
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -32,11 +30,11 @@
*/
public class NotEmptyConstraintTest {
- NotEmptyConstraint constraint;
+ NotEmptyConstraintValidator constraint;
@Before
public void init() {
- constraint = new NotEmptyConstraint();
+ constraint = new NotEmptyConstraintValidator();
}
@Test
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotNullConstraintTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotNullConstraintTest.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/NotNullConstraintTest.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -28,7 +28,7 @@
@Test
public void testIsValid() {
- NotNullConstraint constraint = new NotNullConstraint();
+ NotNullConstraintValidator constraint = new NotNullConstraintValidator();
assertFalse( constraint.isValid( null, null ) );
assertTrue( constraint.isValid( new Object(), null ) );
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternConstraintTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternConstraintTest.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternConstraintTest.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -32,11 +32,11 @@
*/
public class PatternConstraintTest {
- PatternConstraint constraint;
+ PatternConstraintValidator constraint;
@Before
public void init() {
- constraint = new PatternConstraint();
+ constraint = new PatternConstraintValidator();
constraint.initialize(
new Pattern() {
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcode.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcode.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcode.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -24,7 +24,7 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
import javax.validation.OverridesParameter;
import javax.validation.OverridesParameters;
import javax.validation.constraints.NotNull;
@@ -40,7 +40,7 @@
@Size
// first pattern just duplicates the length of 5 characters, the second pattern is just to proof that parameters can be overridden.
@Patterns({ @Pattern(regex = "....."), @Pattern(regex = "bar") })
-(a)ConstraintValidator(FrenchZipcodeConstraint.class)
+@Constraint(validatedBy = FrenchZipcodeConstraintValidator.class)
@Documented
@Target({ METHOD, FIELD, TYPE })
@Retention(RUNTIME)
Deleted: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,34 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints.composition;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * @author Hardy Ferentschik
- */
-public class FrenchZipcodeConstraint implements Constraint<FrenchZipcode> {
-
- public void initialize(FrenchZipcode parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- return true;
- }
-}
Copied: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,34 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints.composition;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class FrenchZipcodeConstraintValidator implements ConstraintValidator<FrenchZipcode> {
+
+ public void initialize(FrenchZipcode parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ return true;
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/FrenchZipcodeConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcode.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcode.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcode.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -24,7 +24,7 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
import javax.validation.ReportAsViolationFromCompositeConstraint;
/**
@@ -33,7 +33,7 @@
* @author Hardy Ferentschik
*/
@FrenchZipcode
-(a)ConstraintValidator(GermanZipcodeConstraint.class)
+@Constraint(validatedBy = GermanZipcodeConstraintValidator.class)
@Documented
@Target({ METHOD, FIELD, TYPE })
@Retention(RUNTIME)
Deleted: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,34 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints.composition;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * @author Hardy Ferentschik
- */
-public class GermanZipcodeConstraint implements Constraint<GermanZipcode> {
-
- public void initialize(GermanZipcode parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- return true;
- }
-}
\ No newline at end of file
Copied: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,34 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints.composition;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class GermanZipcodeConstraintValidator implements ConstraintValidator<GermanZipcode> {
+
+ public void initialize(GermanZipcode parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ return true;
+ }
+}
\ No newline at end of file
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/GermanZipcodeConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcode.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcode.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcode.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -24,7 +24,7 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@@ -33,7 +33,7 @@
*/
@NotNull
@Size(min = 5, max = 5)
-(a)ConstraintValidator(UKZipcodeConstraint.class)
+@Constraint(validatedBy = UKZipcodeConstraintValidator.class)
@Documented
@Target({ METHOD, FIELD, TYPE })
@Retention(RUNTIME)
Deleted: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,34 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints.composition;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * @author Hardy Ferentschik
- */
-public class UKZipcodeConstraint implements Constraint<UKZipcode> {
-
- public void initialize(UKZipcode parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- return false;
- }
-}
\ No newline at end of file
Copied: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,34 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints.composition;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class UKZipcodeConstraintValidator implements ConstraintValidator<UKZipcode> {
+
+ public void initialize(UKZipcode parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ return false;
+ }
+}
\ No newline at end of file
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/composition/UKZipcodeConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:mergeinfo
+
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroups.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroups.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroups.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -23,15 +23,15 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
-import org.hibernate.validation.constraints.incomplete.NoGroupsConstraint;
+import org.hibernate.validation.constraints.incomplete.NoGroupsConstraintValidator;
/**
* @author Hardy Ferentschik
*/
@Documented
-(a)ConstraintValidator(NoGroupsConstraint.class)
+@Constraint(validatedBy = NoGroupsConstraintValidator.class)
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
public @interface NoGroups {
Deleted: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,36 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints.incomplete;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-import org.hibernate.validation.constraints.incomplete.NoGroups;
-
-/**
- * @author Hardy Ferentschik
- */
-public class NoGroupsConstraint implements Constraint<NoGroups> {
-
- public void initialize(NoGroups parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- return false;
- }
-}
\ No newline at end of file
Copied: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,36 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints.incomplete;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+import org.hibernate.validation.constraints.incomplete.NoGroups;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class NoGroupsConstraintValidator implements ConstraintValidator<NoGroups> {
+
+ public void initialize(NoGroups parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ return false;
+ }
+}
\ No newline at end of file
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoGroupsConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessage.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessage.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessage.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -23,13 +23,13 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
/**
* @author Hardy Ferentschik
*/
@Documented
-(a)ConstraintValidator(NoMessageConstraint.class)
+@Constraint(validatedBy = NoMessageConstraintValidator.class)
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
public @interface NoMessage {
Deleted: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,34 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.constraints.incomplete;
-
-import javax.validation.Constraint;
-import javax.validation.ConstraintContext;
-
-/**
- * @author Hardy Ferentschik
- */
-public class NoMessageConstraint implements Constraint<NoMessage> {
-
- public void initialize(NoMessage parameters) {
- }
-
- public boolean isValid(Object object, ConstraintContext constraintContext) {
- return false;
- }
-}
\ No newline at end of file
Copied: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraintValidator.java (from rev 15815, validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraint.java)
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraintValidator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,34 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.constraints.incomplete;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class NoMessageConstraintValidator implements ConstraintValidator<NoMessage> {
+
+ public void initialize(NoMessage parameters) {
+ }
+
+ public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
+ return false;
+ }
+}
\ No newline at end of file
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/NoMessageConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/ValidProperty.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/ValidProperty.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/incomplete/ValidProperty.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -23,13 +23,13 @@
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
/**
* @author Hardy Ferentschik
*/
@Documented
-(a)ConstraintValidator(NoGroupsConstraint.class)
+@Constraint(validatedBy = NoGroupsConstraintValidator.class)
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
public @interface ValidProperty {
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ConstraintCompositionTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ConstraintCompositionTest.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ConstraintCompositionTest.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -24,10 +24,10 @@
import static org.junit.Assert.fail;
import org.junit.Test;
-import org.hibernate.validation.constraints.NotNullConstraint;
-import org.hibernate.validation.constraints.PatternConstraint;
-import org.hibernate.validation.constraints.SizeConstraint;
-import org.hibernate.validation.constraints.composition.GermanZipcodeConstraint;
+import org.hibernate.validation.constraints.NotNullConstraintValidator;
+import org.hibernate.validation.constraints.PatternConstraintValidator;
+import org.hibernate.validation.constraints.SizeConstraintValidator;
+import org.hibernate.validation.constraints.composition.GermanZipcodeConstraintValidator;
import org.hibernate.validation.eg.FrenchAddress;
import org.hibernate.validation.eg.GermanAddress;
import static org.hibernate.validation.util.TestUtil.assertConstraintViolation;
@@ -54,7 +54,7 @@
assertConstraintViolation(
constraintViolations.iterator().next(),
"may not be null",
- NotNullConstraint.class,
+ NotNullConstraintValidator.class,
FrenchAddress.class,
null,
"zipCode"
@@ -69,7 +69,7 @@
assertConstraintViolation(
violation,
"A french zip code has a length of 5",
- SizeConstraint.class,
+ SizeConstraintValidator.class,
FrenchAddress.class,
"abc",
"zipCode"
@@ -79,7 +79,7 @@
assertConstraintViolation(
violation,
"must match \"d*\"",
- PatternConstraint.class,
+ PatternConstraintValidator.class,
FrenchAddress.class,
"abc",
"zipCode"
@@ -89,7 +89,7 @@
assertConstraintViolation(
violation,
"must match \".....\"",
- PatternConstraint.class,
+ PatternConstraintValidator.class,
FrenchAddress.class,
"abc",
"zipCode"
@@ -109,7 +109,7 @@
assertConstraintViolation(
violation,
"A french zip code has a length of 5",
- SizeConstraint.class,
+ SizeConstraintValidator.class,
FrenchAddress.class,
"123",
"zipCode"
@@ -119,7 +119,7 @@
assertConstraintViolation(
violation,
"must match \".....\"",
- PatternConstraint.class,
+ PatternConstraintValidator.class,
FrenchAddress.class,
"123",
"zipCode"
@@ -148,7 +148,7 @@
assertConstraintViolation(
constraintViolations.iterator().next(),
"Falsche Postnummer.",
- GermanZipcodeConstraint.class,
+ GermanZipcodeConstraintValidator.class,
GermanAddress.class,
null,
"zipCode"
@@ -170,7 +170,7 @@
assertConstraintViolation(
constraintViolations.iterator().next(),
"Falsche Postnummer.",
- GermanZipcodeConstraint.class,
+ GermanZipcodeConstraintValidator.class,
GermanAddress.class,
"abc",
"zipCode"
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/TestUtil.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -88,7 +88,7 @@
assertEquals(
"Wrong constraint error Type",
constraintType,
- violation.getConstraintDescriptor().getConstraintClass()
+ violation.getConstraintDescriptor().getConstraintValidatorClass()
);
assertConstraintViolation( violation, errorMessage );
}
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,51 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation;
-
-import java.lang.annotation.Annotation;
-
-/**
- * Define the logic to validate a given constraint.
- *
- * @author Emmanuel Bernard
- * @author Hardy Ferentschik
- */
-public interface Constraint<A extends Annotation> {
- /**
- * Validator parameters for a given constraint definition
- * Annotations parameters are passed as key/value into parameters
- * <p/>
- * This method is guaranteed to be called before any of the other Constraint
- * implementation methods
- *
- * @param constraintAnnotation parameters for a given constraint definition
- */
- void initialize(A constraintAnnotation);
-
- /**
- * Implement the validation constraint.
- * <code>object</code> state must not be changed by a Constraint implementation
- *
- * @param object object to validate
- * @param constraintContext context in which the constraint implementation is evaluated
- *
- * @return false if <code>object</code> does not pass the constraint
- */
- boolean isValid(Object object, ConstraintContext constraintContext);
-}
-
\ No newline at end of file
Added: validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,45 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.validation;
+
+import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+
+
+/**
+ * Link between a constraint annotation and it's constraint validation implementation.
+ * <p/>
+ * An given constraint annotation should be annotated by a @ConstraintValidator
+ * annotation which refers to its constraint validation implementation.
+ *
+ * @author Emmanuel Bernard (emmanuel at hibernate.org)
+ * @author Gavin King
+ * @author Hardy Ferentschik
+ */
+@Documented
+@Target({ ANNOTATION_TYPE })
+@Retention(RUNTIME)
+public @interface Constraint {
+ /**
+ * @return The class implementing the constraint validation logic
+ */
+ public abstract Class<? extends ConstraintValidator> validatedBy();
+}
\ No newline at end of file
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,60 +0,0 @@
-package javax.validation;
-
-/**
- * Provide contextual data and operation when applying a given constraint implementation
- *
- * @author Emmanuel Bernard
- */
-public interface ConstraintContext {
- /**
- * Disable default error message and default ConstraintViolation object generation.
- * Useful to set a different error message or generate an ConstraintViolation based on
- * a different property
- *
- * @see #addError(String)
- * @see #addError(String, String)
- */
- void disableDefaultError();
-
- /**
- * @return the current unexpanded default message
- * TODO: is it needed
- */
- String getDefaultErrorMessage();
-
- /**
- * Add a new error message. This error message will be interpolated.
- * <p/>
- * If isValid returns false, a ConstraintViolation object will be built per error message
- * including the default one unless #disableDefaultErrorMEssage() has been called.
- * <p/>
- * Aside from the error message, ConstraintViolation objects generated from such a call
- * contains the same contextual information (root bean, path and so on)
- * <p/>
- * This method can be called multiple time. One ConstraintViolation instance per
- * call is created.
- *
- * @param message new unexpanded error message
- */
- void addError(String message);
-
- /**
- * Add a new error message to a given sub property <code>property</code>.
- * This error message will be interpolated.
- * <p/>
- * If isValid returns false, a ConstraintViolation object will be built
- * per error message including the default one unless #disableDefaultErrorMEssage()
- * has been called.
- * If the constraint being validated is not a class-level constraint,
- * a ValidationException is raised.
- *
- * <p/>
- *
- * @param message new unexpanded error message
- * @param property property name the ConstraintViolation is targeting
- *
- * @throws ValidationException if the constraint is not set on a class-level
- */
- void addError(String message, String property);
-
-}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -43,9 +43,9 @@
Set<Class<?>> getGroups();
/**
- * @return the constraint implementation class
+ * @return the constraint validation implementation class
*/
- Class<? extends Constraint> getConstraintClass();
+ Class<? extends ConstraintValidator> getConstraintValidatorClass();
/**
* Returns a map containing the annotation parameter names as keys and the
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintFactory.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -18,8 +18,8 @@
package javax.validation;
/**
- * Instantiate a <code>Constraint</code> instance from its class.
- * The <code>ConstraintFactory</code> is <b>not</b> responsible for calling {@link Constraint#initialize(java.lang.annotation.Annotation)}.
+ * Instantiate a <code>ConstraintValidator</code> instance from its class.
+ * The <code>ConstraintFactory</code> is <b>not</b> responsible for calling {@link ConstraintValidator#initialize(java.lang.annotation.Annotation)}.
*
* @author Dhanji R. Prasanna
* @author Emmanuel Bernard
@@ -28,9 +28,9 @@
public interface ConstraintFactory {
/**
- * @param key The class of the constraint to instantiate.
+ * @param key The class of the constraint validator to instantiate.
*
- * @return An constraint instance of the specified class.
+ * @return An constraint validator instance of the specified class.
*/
- <T extends Constraint> T getInstance(Class<T> key);
+ <T extends ConstraintValidator> T getInstance(Class<T> key);
}
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,46 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation;
-
-import java.lang.annotation.Documented;
-import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-
-
-/**
- * Link between a constraint annotation and it's constraint validation implementation.
- * <p/>
- * An given constraint annotation should be annotated by a @ConstraintValidator
- * annotation which refers to its constraint validation implementation.
- *
- * @author Emmanuel Bernard (emmanuel at hibernate.org)
- * @author Gavin King
- * @author Hardy Ferentschik
- */
-@Documented
-@Target({ ANNOTATION_TYPE })
-@Retention(RUNTIME)
-public @interface ConstraintValidator {
- /**
- * @return The class implementing the constraint validation logic for the constraint annotation this annotation
- * is used on.
- */
- public abstract Class<? extends Constraint> value();
-}
\ No newline at end of file
Copied: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java (from rev 15815, validator/trunk/validation-api/src/main/java/javax/validation/Constraint.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,51 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.validation;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * Define the logic to validate a given constraint.
+ *
+ * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
+ */
+public interface ConstraintValidator<A extends Annotation> {
+ /**
+ * Validator parameters for a given constraint definition
+ * Annotations parameters are passed as key/value into parameters
+ * <p/>
+ * This method is guaranteed to be called before any of the other Constraint
+ * implementation methods
+ *
+ * @param constraintAnnotation parameters for a given constraint definition
+ */
+ void initialize(A constraintAnnotation);
+
+ /**
+ * Implement the validation constraint.
+ * <code>object</code> state must not be changed by a Constraint implementation
+ *
+ * @param object object to validate
+ * @param constraintValidatorContext context in which the constraint is evaluated
+ *
+ * @return false if <code>object</code> does not pass the constraint
+ */
+ boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext);
+}
+
\ No newline at end of file
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:mergeinfo
+
Copied: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java (from rev 15815, validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,60 @@
+package javax.validation;
+
+/**
+ * Provide contextual data and operation when applying a given constraint validator implementation
+ *
+ * @author Emmanuel Bernard
+ */
+public interface ConstraintValidatorContext {
+ /**
+ * Disable default error message and default ConstraintViolation object generation.
+ * Useful to set a different error message or generate an ConstraintViolation based on
+ * a different property
+ *
+ * @see #addError(String)
+ * @see #addError(String, String)
+ */
+ void disableDefaultError();
+
+ /**
+ * @return the current unexpanded default message
+ * TODO: is it needed
+ */
+ String getDefaultErrorMessage();
+
+ /**
+ * Add a new error message. This error message will be interpolated.
+ * <p/>
+ * If isValid returns false, a ConstraintViolation object will be built per error message
+ * including the default one unless #disableDefaultErrorMEssage() has been called.
+ * <p/>
+ * Aside from the error message, ConstraintViolation objects generated from such a call
+ * contains the same contextual information (root bean, path and so on)
+ * <p/>
+ * This method can be called multiple time. One ConstraintViolation instance per
+ * call is created.
+ *
+ * @param message new unexpanded error message
+ */
+ void addError(String message);
+
+ /**
+ * Add a new error message to a given sub property <code>property</code>.
+ * This error message will be interpolated.
+ * <p/>
+ * If isValid returns false, a ConstraintViolation object will be built
+ * per error message including the default one unless #disableDefaultErrorMEssage()
+ * has been called.
+ * If the constraint being validated is not a class-level constraint,
+ * a ValidationException is raised.
+ *
+ * <p/>
+ *
+ * @param message new unexpanded error message
+ * @param property property name the ConstraintViolation is targeting
+ *
+ * @throws ValidationException if the constraint is not set on a class-level
+ */
+ void addError(String message, String property);
+
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintValidatorContext.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,54 +0,0 @@
-package org.hibernate.validator.spec.s2.s4;
-
-import javax.validation.ConstraintContext;
-import javax.validation.Constraint;
-
-/**
- * Check that a string length is between min and max
- * Error messages are using either key:
- * - constraint.length.min if the min limit is reached
- * - constraint.length.max if the max limit is reached
- */
-public class FineGrainedLengthConstraint implements Constraint<Length> {
- private int min;
- private int max;
-
- /**
- * Configure the constraint validator based on the elements
- * specified at the time it was defined.
- * @param constraint the constraint definition
- */
- public void initialize(Length constraint) {
- min = constraint.min();
- max = constraint.max();
- }
-
- /**
- * Validate a specified value.
- * returns false if the specified value does not conform to the definition
- * @exception IllegalArgumentException if the object is not of type String
- */
- public boolean isValid(Object value, ConstraintContext constraintContext) {
- if ( value == null ) return true;
- if ( !( value instanceof String ) ) {
- throw new IllegalArgumentException("Expected String type");
- }
- String string = (String) value;
- int length = string.length();
-
- //remove default error
- constraintContext.disableDefaultError();
-
- if (length < min) {
- //add min specific error
- constraintContext.addError( "{constraint.length.min}" );
- return false;
- }
- if (length > max) {
- //add max specific error
- constraintContext.addError( "{constraint.length.max}" );
- return false;
- }
- return true;
- }
-}
\ No newline at end of file
Copied: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraintValidator.java (from rev 15815, validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java)
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraintValidator.java (rev 0)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,54 @@
+package org.hibernate.validator.spec.s2.s4;
+
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintValidator;
+
+/**
+ * Check that a string length is between min and max
+ * Error messages are using either key:
+ * - constraint.length.min if the min limit is reached
+ * - constraint.length.max if the max limit is reached
+ */
+public class FineGrainedLengthConstraintValidator implements ConstraintValidator<Length> {
+ private int min;
+ private int max;
+
+ /**
+ * Configure the constraint validator based on the elements
+ * specified at the time it was defined.
+ * @param constraint the constraint definition
+ */
+ public void initialize(Length constraint) {
+ min = constraint.min();
+ max = constraint.max();
+ }
+
+ /**
+ * Validate a specified value.
+ * returns false if the specified value does not conform to the definition
+ * @exception IllegalArgumentException if the object is not of type String
+ */
+ public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
+ if ( value == null ) return true;
+ if ( !( value instanceof String ) ) {
+ throw new IllegalArgumentException("Expected String type");
+ }
+ String string = (String) value;
+ int length = string.length();
+
+ //remove default error
+ constraintValidatorContext.disableDefaultError();
+
+ if (length < min) {
+ //add min specific error
+ constraintValidatorContext.addError( "{constraint.length.min}" );
+ return false;
+ }
+ if (length > max) {
+ //add max specific error
+ constraintValidatorContext.addError( "{constraint.length.max}" );
+ return false;
+ }
+ return true;
+ }
+}
\ No newline at end of file
Property changes on: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -7,7 +7,7 @@
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
-import javax.validation.ConstraintValidator;
+import javax.validation.Constraint;
/**
* @author Emmanuel Bernard
@@ -15,7 +15,7 @@
@Target({ METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Documented
-(a)ConstraintValidator(LengthConstraint.class)
+@Constraint(validatedBy = LengthConstraintValidator.class)
public @interface Length {
int min() default Integer.MIN_VALUE;
int max() default Integer.MAX_VALUE;
Deleted: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -1,38 +0,0 @@
-package org.hibernate.validator.spec.s2.s4;
-
-import javax.validation.ConstraintContext;
-import javax.validation.Constraint;
-
-/**
- * Check that a string length is between min and max
- *
- */
-public class LengthConstraint implements Constraint<Length> {
- private int min;
- private int max;
-
- /**
- * Configure the constraint validator based on the elements
- * specified at the time it was defined.
- * @param constraint the constraint definition
- */
- public void initialize(Length constraint) {
- min = constraint.min();
- max = constraint.max();
- }
-
- /**
- * Validate a specified value.
- * returns false if the specified value does not conform to the definition
- * @exception IllegalArgumentException if the object is not of type String
- */
- public boolean isValid(Object value, ConstraintContext constraintContext) {
- if ( value == null ) return true;
- if ( !( value instanceof String ) ) {
- throw new IllegalArgumentException("Expected String type");
- }
- String string = (String) value;
- int length = string.length();
- return length >= min && length <= max;
- }
-}
Copied: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraintValidator.java (from rev 15815, validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java)
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraintValidator.java (rev 0)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraintValidator.java 2009-01-25 22:35:36 UTC (rev 15817)
@@ -0,0 +1,38 @@
+package org.hibernate.validator.spec.s2.s4;
+
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.ConstraintValidator;
+
+/**
+ * Check that a string length is between min and max
+ *
+ */
+public class LengthConstraintValidator implements ConstraintValidator<Length> {
+ private int min;
+ private int max;
+
+ /**
+ * Configure the constraint validator based on the elements
+ * specified at the time it was defined.
+ * @param constraint the constraint definition
+ */
+ public void initialize(Length constraint) {
+ min = constraint.min();
+ max = constraint.max();
+ }
+
+ /**
+ * Validate a specified value.
+ * returns false if the specified value does not conform to the definition
+ * @exception IllegalArgumentException if the object is not of type String
+ */
+ public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
+ if ( value == null ) return true;
+ if ( !( value instanceof String ) ) {
+ throw new IllegalArgumentException("Expected String type");
+ }
+ String string = (String) value;
+ int length = string.length();
+ return length >= min && length <= max;
+ }
+}
Property changes on: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraintValidator.java
___________________________________________________________________
Name: svn:keywords
+ Id
[View Less]
16 years, 2 months
Hibernate SVN: r15816 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/impl and 5 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2009-01-25 15:44:59 -0500 (Sun, 25 Jan 2009)
New Revision: 15816
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolator.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolatorTest.java
validator/trunk/validation-api/src/main/java/javax/validation/MessageInterpolator.java
Removed:
validator/trunk/hibernate-validator/src/main/java/…
[View More]org/hibernate/validation/impl/ResourceBundleMessageResolver.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageResolverTest.java
validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
validator/trunk/hibernate-validator/src/test/resources/log4j.properties
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
Log:
BVAL-84 Rename MessageResolver to MessageInterpolator
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -32,7 +32,7 @@
import javax.validation.PropertyDescriptor;
import javax.validation.Valid;
import javax.validation.ValidationException;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.ConstraintFactory;
import org.slf4j.Logger;
@@ -55,7 +55,7 @@
private static final Logger log = LoggerFactory.make();
- private final MessageResolver messageResolver;
+ private final MessageInterpolator messageInterpolator;
private final ConstraintFactory constraintFactory;
@@ -95,9 +95,9 @@
*/
private Map<Class<?>, List<Class<?>>> groupSequences = new HashMap<Class<?>, List<Class<?>>>();
- public BeanMetaDataImpl(Class<T> beanClass, MessageResolver messageResolver, ConstraintFactory constraintFactory) {
+ public BeanMetaDataImpl(Class<T> beanClass, MessageInterpolator messageInterpolator, ConstraintFactory constraintFactory) {
this.beanClass = beanClass;
- this.messageResolver = messageResolver;
+ this.messageInterpolator = messageInterpolator;
this.constraintFactory = constraintFactory;
createMetaData();
}
@@ -197,7 +197,8 @@
List<ConstraintDescriptorImpl> fieldMetadata = findFieldLevelConstraints( field );
for ( ConstraintDescriptorImpl constraintDescription : fieldMetadata ) {
ReflectionHelper.setAccessibility( field );
- MetaConstraint metaConstraint = new MetaConstraint( field, constraintDescription, messageResolver, constraintFactory );
+ MetaConstraint metaConstraint = new MetaConstraint( field, constraintDescription,
+ messageInterpolator, constraintFactory );
metaConstraintList.add( metaConstraint );
}
if ( field.isAnnotationPresent( Valid.class ) ) {
@@ -212,7 +213,8 @@
List<ConstraintDescriptorImpl> methodMetadata = findMethodLevelConstraints( method );
for ( ConstraintDescriptorImpl constraintDescription : methodMetadata ) {
ReflectionHelper.setAccessibility( method );
- MetaConstraint metaConstraint = new MetaConstraint( method, constraintDescription, messageResolver, constraintFactory );
+ MetaConstraint metaConstraint = new MetaConstraint( method, constraintDescription,
+ messageInterpolator, constraintFactory );
metaConstraintList.add( metaConstraint );
}
if ( method.isAnnotationPresent( Valid.class ) ) {
@@ -225,7 +227,8 @@
private void initClassConstraints(Class clazz) {
List<ConstraintDescriptorImpl> classMetadata = findClassLevelConstraints( clazz );
for ( ConstraintDescriptorImpl constraintDescription : classMetadata ) {
- MetaConstraint metaConstraint = new MetaConstraint( clazz, constraintDescription, messageResolver, constraintFactory );
+ MetaConstraint metaConstraint = new MetaConstraint( clazz, constraintDescription,
+ messageInterpolator, constraintFactory );
metaConstraintList.add( metaConstraint );
}
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintTree.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -23,7 +23,7 @@
import javax.validation.ConstraintDescriptor;
import javax.validation.ValidationException;
import javax.validation.ConstraintFactory;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import org.slf4j.Logger;
@@ -45,23 +45,23 @@
private Constraint constraint;
private final ConstraintDescriptor descriptor;
private final ConstraintFactory constraintFactory;
- private final MessageResolver messageResolver;
+ private final MessageInterpolator messageInterpolator;
- public ConstraintTree(ConstraintDescriptor descriptor, ConstraintFactory constraintFactory, MessageResolver messageResolver) {
- this( descriptor, null, constraintFactory, messageResolver );
+ public ConstraintTree(ConstraintDescriptor descriptor, ConstraintFactory constraintFactory, MessageInterpolator messageInterpolator) {
+ this( descriptor, null, constraintFactory, messageInterpolator );
}
- private ConstraintTree(ConstraintDescriptor descriptor, ConstraintTree parent, ConstraintFactory constraintFactory, MessageResolver messageResolver) {
+ private ConstraintTree(ConstraintDescriptor descriptor, ConstraintTree parent, ConstraintFactory constraintFactory, MessageInterpolator messageInterpolator) {
this.parent = parent;
this.descriptor = descriptor;
this.constraintFactory = constraintFactory;
- this.messageResolver = messageResolver;
+ this.messageInterpolator = messageInterpolator;
this.constraint = getConstraint( descriptor );
children = new ArrayList<ConstraintTree>( descriptor.getComposingConstraints().size() );
for ( ConstraintDescriptor composingDescriptor : descriptor.getComposingConstraints() ) {
ConstraintTree treeNode = new ConstraintTree(
- composingDescriptor, this, constraintFactory, messageResolver
+ composingDescriptor, this, constraintFactory, messageInterpolator
);
children.add( treeNode );
}
@@ -123,7 +123,7 @@
}
private <T> void createConstraintViolation(Object value, Class<T> beanClass, ValidationContext<T> validationContext, Object leafBeanInstance, String message, ConstraintDescriptor descriptor) {
- String interpolatedMessage = messageResolver.interpolate(
+ String interpolatedMessage = messageInterpolator.interpolate(
message,
descriptor,
leafBeanInstance
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/MetaConstraint.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -23,7 +23,7 @@
import java.lang.reflect.Type;
import javax.validation.ConstraintDescriptor;
import javax.validation.ValidationException;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.ConstraintFactory;
import org.hibernate.validation.util.ReflectionHelper;
@@ -70,11 +70,11 @@
*/
private final ElementType elementType;
- public MetaConstraint(Type t, ConstraintDescriptor constraintDescriptor, MessageResolver messageResolver, ConstraintFactory factory) {
- this( t, null, null, ElementType.FIELD, constraintDescriptor, "", messageResolver, factory );
+ public MetaConstraint(Type t, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
+ this( t, null, null, ElementType.FIELD, constraintDescriptor, "", messageInterpolator, factory );
}
- public MetaConstraint(Method m, ConstraintDescriptor constraintDescriptor, MessageResolver messageResolver, ConstraintFactory factory) {
+ public MetaConstraint(Method m, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
this(
null,
m,
@@ -82,22 +82,22 @@
ElementType.METHOD,
constraintDescriptor,
ReflectionHelper.getPropertyName( m ),
- messageResolver,
+ messageInterpolator,
factory
);
}
- public MetaConstraint(Field f, ConstraintDescriptor constraintDescriptor, MessageResolver messageResolver, ConstraintFactory factory) {
- this( null, null, f, ElementType.FIELD, constraintDescriptor, f.getName(), messageResolver, factory );
+ public MetaConstraint(Field f, ConstraintDescriptor constraintDescriptor, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
+ this( null, null, f, ElementType.FIELD, constraintDescriptor, f.getName(), messageInterpolator, factory );
}
- private MetaConstraint(Type t, Method m, Field f, ElementType elementType, ConstraintDescriptor constraintDescriptor, String property, MessageResolver messageResolver, ConstraintFactory factory) {
+ private MetaConstraint(Type t, Method m, Field f, ElementType elementType, ConstraintDescriptor constraintDescriptor, String property, MessageInterpolator messageInterpolator, ConstraintFactory factory) {
this.type = t;
this.method = m;
this.field = f;
this.elementType = elementType;
this.propertyName = property;
- constraintTree = new ConstraintTree( constraintDescriptor, factory, messageResolver );
+ constraintTree = new ConstraintTree( constraintDescriptor, factory, messageInterpolator );
}
/**
Copied: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolator.java (from rev 15815, validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java)
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolator.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolator.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -0,0 +1,155 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.impl;
+
+import java.util.Locale;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import javax.validation.ConstraintDescriptor;
+import javax.validation.MessageInterpolator;
+
+import org.slf4j.Logger;
+
+import org.hibernate.validation.util.LoggerFactory;
+
+
+/**
+ * Resource bundle backed message interpolator.
+ *
+ * @author Emmanuel Bernard
+ */
+public class ResourceBundleMessageInterpolator implements MessageInterpolator {
+ private static final String DEFAULT_VALIDATION_MESSAGES = "org.hibernate.validation.ValidationMessages";
+ private static final String USER_VALIDATION_MESSAGES = "ValidationMessages";
+ private static final Logger log = LoggerFactory.make();
+
+ /**
+ * Regular expression used to do message interpolation.
+ */
+ private static final Pattern messagePattern = Pattern.compile( "\\{([\\w\\.]+)\\}" );
+ private ResourceBundle defaultResourceBundle;
+ private ResourceBundle userResourceBundle;
+
+ public ResourceBundleMessageInterpolator() {
+ userResourceBundle = getFileBasedResourceBundle();
+ defaultResourceBundle = ResourceBundle.getBundle( DEFAULT_VALIDATION_MESSAGES );
+ }
+
+ public ResourceBundleMessageInterpolator(ResourceBundle resourceBundle) {
+ if ( resourceBundle == null ) {
+ userResourceBundle = getFileBasedResourceBundle();
+ }
+ else {
+ this.userResourceBundle = resourceBundle;
+ }
+ defaultResourceBundle = ResourceBundle.getBundle( DEFAULT_VALIDATION_MESSAGES );
+ }
+
+ /**
+ * Search current thread classloader for the resource bundle. If not found, search validator (this) classloader.
+ *
+ * @return the resource bundle or <code>null</code> if none is found.
+ */
+ private ResourceBundle getFileBasedResourceBundle() {
+ ResourceBundle rb = null;
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ if ( classLoader != null ) {
+ rb = loadBundle( classLoader, USER_VALIDATION_MESSAGES + " not found by thread local classloader" );
+ }
+ if ( rb == null ) {
+ rb = loadBundle(
+ this.getClass().getClassLoader(), USER_VALIDATION_MESSAGES + " not found by validator classloader"
+ );
+ }
+ if ( log.isDebugEnabled() ) {
+ if ( rb != null ) {
+ log.debug( USER_VALIDATION_MESSAGES + " found" );
+ }
+ else {
+ log.debug( USER_VALIDATION_MESSAGES + " not found. Delegating to " + DEFAULT_VALIDATION_MESSAGES );
+ }
+ }
+ return rb;
+ }
+
+ private ResourceBundle loadBundle(ClassLoader classLoader, String message) {
+ ResourceBundle rb = null;
+ try {
+ rb = ResourceBundle.getBundle( USER_VALIDATION_MESSAGES, Locale.getDefault(), classLoader );
+ }
+ catch ( MissingResourceException e ) {
+ log.trace( message );
+ }
+ return rb;
+ }
+
+ public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value) {
+ //probably no need for caching, but it could be done by parameters since the map
+ //is immutable and uniquely built per Validation definition, the comparaison has to be based on == and not equals though
+ return replace( message, constraintDescriptor.getParameters() );
+ }
+
+ public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value, Locale locale) {
+ throw new UnsupportedOperationException( "Interpolation for Locale. Has to be done." );
+ }
+
+
+ private String replace(String message, Map<String, Object> parameters) {
+ Matcher matcher = messagePattern.matcher( message );
+ StringBuffer sb = new StringBuffer();
+ while ( matcher.find() ) {
+ matcher.appendReplacement( sb, resolveParameter( matcher.group( 1 ), parameters ) );
+ }
+ matcher.appendTail( sb );
+ return sb.toString();
+ }
+
+
+ private String resolveParameter(String token, Map<String, Object> parameters) {
+ Object variable = parameters.get( token );
+ if ( variable != null ) {
+ return variable.toString();
+ }
+
+ StringBuffer buffer = new StringBuffer();
+ String string = null;
+ try {
+ string = userResourceBundle != null ? userResourceBundle.getString( token ) : null;
+ }
+ catch ( MissingResourceException e ) {
+ //give a second chance with the default resource bundle
+ }
+ if ( string == null ) {
+ try {
+ string = defaultResourceBundle.getString( token );
+ }
+ catch ( MissingResourceException e ) {
+ //return the unchanged string
+ buffer.append( "{" ).append( token ).append( '}' );
+ }
+ }
+ if ( string != null ) {
+ // call resolve recusively!
+ buffer.append( replace( string, parameters ) );
+ }
+ return buffer.toString();
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -1,155 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.impl;
-
-import java.util.Locale;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.validation.ConstraintDescriptor;
-import javax.validation.MessageResolver;
-
-import org.slf4j.Logger;
-
-import org.hibernate.validation.util.LoggerFactory;
-
-
-/**
- * Resource bundle backed message resolver.
- *
- * @author Emmanuel Bernard
- */
-public class ResourceBundleMessageResolver implements MessageResolver {
- private static final String DEFAULT_VALIDATION_MESSAGES = "org.hibernate.validation.ValidationMessages";
- private static final String USER_VALIDATION_MESSAGES = "ValidationMessages";
- private static final Logger log = LoggerFactory.make();
-
- /**
- * Regular expression used to do message interpolation.
- */
- private static final Pattern messagePattern = Pattern.compile( "\\{([\\w\\.]+)\\}" );
- private ResourceBundle defaultResourceBundle;
- private ResourceBundle userResourceBundle;
-
- public ResourceBundleMessageResolver() {
- userResourceBundle = getFileBasedResourceBundle();
- defaultResourceBundle = ResourceBundle.getBundle( DEFAULT_VALIDATION_MESSAGES );
- }
-
- public ResourceBundleMessageResolver(ResourceBundle resourceBundle) {
- if ( resourceBundle == null ) {
- userResourceBundle = getFileBasedResourceBundle();
- }
- else {
- this.userResourceBundle = resourceBundle;
- }
- defaultResourceBundle = ResourceBundle.getBundle( DEFAULT_VALIDATION_MESSAGES );
- }
-
- /**
- * Search current thread classloader for the resource bundle. If not found, search validator (this) classloader.
- *
- * @return the resource bundle or <code>null</code> if none is found.
- */
- private ResourceBundle getFileBasedResourceBundle() {
- ResourceBundle rb = null;
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- if ( classLoader != null ) {
- rb = loadBundle( classLoader, USER_VALIDATION_MESSAGES + " not found by thread local classloader" );
- }
- if ( rb == null ) {
- rb = loadBundle(
- this.getClass().getClassLoader(), USER_VALIDATION_MESSAGES + " not found by validator classloader"
- );
- }
- if ( log.isDebugEnabled() ) {
- if ( rb != null ) {
- log.debug( USER_VALIDATION_MESSAGES + " found" );
- }
- else {
- log.debug( USER_VALIDATION_MESSAGES + " not found. Delegating to " + DEFAULT_VALIDATION_MESSAGES );
- }
- }
- return rb;
- }
-
- private ResourceBundle loadBundle(ClassLoader classLoader, String message) {
- ResourceBundle rb = null;
- try {
- rb = ResourceBundle.getBundle( USER_VALIDATION_MESSAGES, Locale.getDefault(), classLoader );
- }
- catch ( MissingResourceException e ) {
- log.trace( message );
- }
- return rb;
- }
-
- public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value) {
- //probably no need for caching, but it could be done by parameters since the map
- //is immutable and uniquely built per Validation definition, the comparaison has to be based on == and not equals though
- return replace( message, constraintDescriptor.getParameters() );
- }
-
- public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value, Locale locale) {
- throw new UnsupportedOperationException( "Interpolation for Locale. Has to be done." );
- }
-
-
- private String replace(String message, Map<String, Object> parameters) {
- Matcher matcher = messagePattern.matcher( message );
- StringBuffer sb = new StringBuffer();
- while ( matcher.find() ) {
- matcher.appendReplacement( sb, resolveParameter( matcher.group( 1 ), parameters ) );
- }
- matcher.appendTail( sb );
- return sb.toString();
- }
-
-
- private String resolveParameter(String token, Map<String, Object> parameters) {
- Object variable = parameters.get( token );
- if ( variable != null ) {
- return variable.toString();
- }
-
- StringBuffer buffer = new StringBuffer();
- String string = null;
- try {
- string = userResourceBundle != null ? userResourceBundle.getString( token ) : null;
- }
- catch ( MissingResourceException e ) {
- //give a second chance with the default resource bundle
- }
- if ( string == null ) {
- try {
- string = defaultResourceBundle.getString( token );
- }
- catch ( MissingResourceException e ) {
- //return the unchanged string
- buffer.append( "{" ).append( token ).append( '}' );
- }
- }
- if ( string != null ) {
- // call resolve recusively!
- buffer.append( replace( string, parameters ) );
- }
- return buffer.toString();
- }
-}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -1,6 +1,6 @@
package org.hibernate.validation.impl;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
import javax.validation.Validator;
import javax.validation.ValidatorBuilder;
@@ -11,28 +11,28 @@
* @author Emmanuel Bernard
*/
public class ValidatorBuilderImpl implements ValidatorBuilder {
- private MessageResolver messageResolver;
+ private MessageInterpolator messageInterpolator;
private TraversableResolver traversableResolver;
- private final MessageResolver factoryMessageResolver;
+ private final MessageInterpolator factoryMessageInterpolator;
private final TraversableResolver factoryTraversableResolver;
private final ValidatorFactoryImpl validatorFactory;
public ValidatorBuilderImpl(ValidatorFactoryImpl validatorFactory,
- MessageResolver factoryMessageResolver,
+ MessageInterpolator factoryMessageInterpolator,
TraversableResolver factoryTraversableResolver) {
this.validatorFactory = validatorFactory;
- this.factoryMessageResolver = factoryMessageResolver;
+ this.factoryMessageInterpolator = factoryMessageInterpolator;
this.factoryTraversableResolver = factoryTraversableResolver;
- messageResolver(factoryMessageResolver);
+ messageInterpolator( factoryMessageInterpolator );
traversableResolver(factoryTraversableResolver);
}
- public ValidatorBuilder messageResolver(MessageResolver messageResolver) {
- if (messageResolver == null) {
- this.messageResolver = factoryMessageResolver;
+ public ValidatorBuilder messageInterpolator(MessageInterpolator messageInterpolator) {
+ if ( messageInterpolator == null) {
+ this.messageInterpolator = factoryMessageInterpolator;
}
else {
- this.messageResolver = messageResolver;
+ this.messageInterpolator = messageInterpolator;
}
return this;
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -20,7 +20,7 @@
import java.io.InputStream;
import java.util.List;
import javax.validation.ConstraintFactory;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
import javax.validation.ValidationException;
import javax.validation.ValidationProviderResolver;
@@ -44,10 +44,10 @@
}
//FIXME not sure why it is like that. We should cache these instances somehow. Static?
- private final MessageResolver defaultMessageResolver = new ResourceBundleMessageResolver();
+ private final MessageInterpolator defaultMessageInterpolator = new ResourceBundleMessageInterpolator();
private final TraversableResolver defaultTraversableResolver = new DefaultTraversableResolver();
- private MessageResolver messageResolver;
+ private MessageInterpolator messageInterpolator;
private ConstraintFactory constraintFactory = new ConstraintFactoryImpl();
private String configurationFile = "META-INF/validation.xml";
private final ValidationProvider provider;
@@ -62,7 +62,7 @@
this.providerResolver = state.getValidationProviderResolver();
}
this.provider = null;
- this.messageResolver = defaultMessageResolver;
+ this.messageInterpolator = defaultMessageInterpolator;
this.traversableResolver = defaultTraversableResolver;
}
@@ -72,12 +72,12 @@
}
this.provider = provider;
this.providerResolver = null;
- this.messageResolver = defaultMessageResolver;
+ this.messageInterpolator = defaultMessageInterpolator;
this.traversableResolver = defaultTraversableResolver;
}
- public ValidatorFactoryBuilderImpl messageResolver(MessageResolver resolver) {
- this.messageResolver = resolver;
+ public ValidatorFactoryBuilderImpl messageInterpolator(MessageInterpolator interpolator) {
+ this.messageInterpolator = interpolator;
return this;
}
@@ -119,8 +119,8 @@
return provider != null;
}
- public MessageResolver getMessageResolver() {
- return messageResolver;
+ public MessageInterpolator getMessageInterpolator() {
+ return messageInterpolator;
}
public ConstraintFactory getConstraintFactory() {
@@ -135,8 +135,8 @@
return null; //To change body of implemented methods use File | Settings | File Templates.
}
- public MessageResolver getDefaultMessageResolver() {
- return defaultMessageResolver;
+ public MessageInterpolator getDefaultMessageInterpolator() {
+ return defaultMessageInterpolator;
}
public InputStream getConfigurationStream() {
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -20,7 +20,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.validation.ConstraintFactory;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
import javax.validation.Validator;
import javax.validation.ValidatorBuilder;
@@ -35,7 +35,7 @@
*/
public class ValidatorFactoryImpl implements ValidatorFactoryImplementor {
- private final MessageResolver messageResolver;
+ private final MessageInterpolator messageInterpolator;
private final TraversableResolver traversableResolver;
private final ConstraintFactory constraintFactory;
@@ -45,7 +45,7 @@
public ValidatorFactoryImpl(ValidatorFactoryConfiguration configuration) {
- this.messageResolver = configuration.getMessageResolver();
+ this.messageInterpolator = configuration.getMessageInterpolator();
this.constraintFactory = configuration.getConstraintFactory();
this.traversableResolver = configuration.getTraversableResolver();
//do init metadata from XML form
@@ -58,12 +58,12 @@
return defineValidatorState().getValidator();
}
- public MessageResolver getMessageResolver() {
- return messageResolver;
+ public MessageInterpolator getMessageInterpolator() {
+ return messageInterpolator;
}
public ValidatorBuilder defineValidatorState() {
- return new ValidatorBuilderImpl(this, messageResolver, traversableResolver);
+ return new ValidatorBuilderImpl(this, messageInterpolator, traversableResolver);
}
public <T> BeanMetaDataImpl<T> getBeanMetaData(Class<T> beanClass) {
@@ -72,7 +72,7 @@
@SuppressWarnings( "unchecked")
BeanMetaDataImpl<T> metadata = ( BeanMetaDataImpl<T> ) metadataProviders.get(beanClass);
if (metadata == null) {
- metadata = new BeanMetaDataImpl<T>(beanClass, messageResolver, constraintFactory);
+ metadata = new BeanMetaDataImpl<T>(beanClass, messageInterpolator, constraintFactory);
metadataProviders.put( beanClass, metadata );
}
return metadata;
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -25,7 +25,7 @@
import javax.validation.ConstraintDescriptor;
import javax.validation.ConstraintFactory;
import javax.validation.ConstraintViolation;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.Validation;
import javax.validation.ValidationException;
import javax.validation.ValidationProviderResolver;
@@ -93,7 +93,7 @@
@Test
- public void testCustomMessageResolver() {
+ public void testCustomMessageInterpolator() {
// first try with the default message resolver
ValidatorFactoryBuilder<?> builder = Validation.getBuilder();
@@ -112,8 +112,8 @@
//FIXME nothing guarantee that a builder can be reused
// now we modify the builder, get a new factory and valiator and try again
- builder.messageResolver(
- new MessageResolver() {
+ builder.messageInterpolator(
+ new MessageInterpolator() {
public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value) {
return "my custom message";
}
Copied: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolatorTest.java (from rev 15815, validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageResolverTest.java)
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolatorTest.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolatorTest.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -0,0 +1,146 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.impl;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.ResourceBundle;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import static org.junit.Assert.assertEquals;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.hibernate.validation.util.annotationfactory.AnnotationDescriptor;
+import org.hibernate.validation.util.annotationfactory.AnnotationFactory;
+
+/**
+ * Tests for message resolution.
+ *
+ * @author Hardy Ferentschik
+ */
+public class ResourceBundleMessageInterpolatorTest {
+
+ private ResourceBundleMessageInterpolator interpolator;
+ private NotNull notNull;
+ private Size size;
+
+ @Before
+ public void setUp() {
+ interpolator = new ResourceBundleMessageInterpolator( new TestResources() );
+
+ AnnotationDescriptor descriptor = new AnnotationDescriptor( NotNull.class );
+ notNull = AnnotationFactory.create( descriptor );
+
+ descriptor = new AnnotationDescriptor( Size.class );
+ size = AnnotationFactory.create( descriptor );
+ }
+
+ @Test
+ public void testSuccessfulInterpolation() {
+ ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
+
+ String expected = "replacement worked";
+ String actual = interpolator.interpolate( "{foo}", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+
+ expected = "replacement worked replacement worked";
+ actual = interpolator.interpolate( "{foo} {foo}", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+
+ expected = "This replacement worked just fine";
+ actual = interpolator.interpolate( "This {foo} just fine", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+
+ expected = "{} { replacement worked }";
+ actual = interpolator.interpolate( "{} { {foo} }", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+ }
+
+ @Test
+ public void testUnSuccessfulInterpolation() {
+ ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
+ String expected = "foo"; // missing {}
+ String actual = interpolator.interpolate( "foo", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+
+ expected = "#{foo {}";
+ actual = interpolator.interpolate( "#{foo {}", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+ }
+
+ @Test
+ public void testUnkownTokenInterpolation() {
+ ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
+ String expected = "{bar}"; // unkown token {}
+ String actual = interpolator.interpolate( "{bar}", desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+ }
+
+ @Test
+ public void testDefaultInterpolation() {
+ ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
+ String expected = "may not be null";
+ String actual = interpolator.interpolate( notNull.message(), desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+
+ desciptor = new ConstraintDescriptorImpl( size, new Class<?>[] { } );
+ expected = "size must be between -2147483648 and 2147483647"; // unkown token {}
+ actual = interpolator.interpolate( size.message(), desciptor, null );
+ assertEquals( "Wrong substitution", expected, actual );
+ }
+
+
+ class TestResources extends ResourceBundle implements Enumeration<String> {
+ private Map<String, String> testResources;
+ Iterator<String> iter;
+
+ public TestResources() {
+ testResources = new HashMap<String, String>();
+ // add some test messages
+ testResources.put( "foo", "replacement worked" );
+
+ iter = testResources.keySet().iterator();
+ }
+
+ public Object handleGetObject(String key) {
+ return testResources.get( key );
+ }
+
+ public Enumeration<String> getKeys() {
+ return this;
+ }
+
+ public boolean hasMoreElements() {
+ return iter.hasNext();
+ }
+
+ public String nextElement() {
+ if ( hasMoreElements() ) {
+ return iter.next();
+ }
+ else {
+ throw new NoSuchElementException();
+ }
+ }
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageInterpolatorTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageResolverTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageResolverTest.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/impl/ResourceBundleMessageResolverTest.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -1,146 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.impl;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.ResourceBundle;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-import static org.junit.Assert.assertEquals;
-import org.junit.Before;
-import org.junit.Test;
-
-import org.hibernate.validation.util.annotationfactory.AnnotationDescriptor;
-import org.hibernate.validation.util.annotationfactory.AnnotationFactory;
-
-/**
- * Tests for message resolution.
- *
- * @author Hardy Ferentschik
- */
-public class ResourceBundleMessageResolverTest {
-
- private ResourceBundleMessageResolver resolver;
- private NotNull notNull;
- private Size size;
-
- @Before
- public void setUp() {
- resolver = new ResourceBundleMessageResolver( new TestResources() );
-
- AnnotationDescriptor descriptor = new AnnotationDescriptor( NotNull.class );
- notNull = AnnotationFactory.create( descriptor );
-
- descriptor = new AnnotationDescriptor( Size.class );
- size = AnnotationFactory.create( descriptor );
- }
-
- @Test
- public void testSuccessfulInterpolation() {
- ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
-
- String expected = "replacement worked";
- String actual = resolver.interpolate( "{foo}", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
-
- expected = "replacement worked replacement worked";
- actual = resolver.interpolate( "{foo} {foo}", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
-
- expected = "This replacement worked just fine";
- actual = resolver.interpolate( "This {foo} just fine", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
-
- expected = "{} { replacement worked }";
- actual = resolver.interpolate( "{} { {foo} }", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
- }
-
- @Test
- public void testUnSuccessfulInterpolation() {
- ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
- String expected = "foo"; // missing {}
- String actual = resolver.interpolate( "foo", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
-
- expected = "#{foo {}";
- actual = resolver.interpolate( "#{foo {}", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
- }
-
- @Test
- public void testUnkownTokenInterpolation() {
- ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
- String expected = "{bar}"; // unkown token {}
- String actual = resolver.interpolate( "{bar}", desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
- }
-
- @Test
- public void testDefaultInterpolation() {
- ConstraintDescriptorImpl desciptor = new ConstraintDescriptorImpl( notNull, new Class<?>[] { } );
- String expected = "may not be null";
- String actual = resolver.interpolate( notNull.message(), desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
-
- desciptor = new ConstraintDescriptorImpl( size, new Class<?>[] { } );
- expected = "size must be between -2147483648 and 2147483647"; // unkown token {}
- actual = resolver.interpolate( size.message(), desciptor, null );
- assertEquals( "Wrong substitution", expected, actual );
- }
-
-
- class TestResources extends ResourceBundle implements Enumeration<String> {
- private Map<String, String> testResources;
- Iterator<String> iter;
-
- public TestResources() {
- testResources = new HashMap<String, String>();
- // add some test messages
- testResources.put( "foo", "replacement worked" );
-
- iter = testResources.keySet().iterator();
- }
-
- public Object handleGetObject(String key) {
- return testResources.get( key );
- }
-
- public Enumeration<String> getKeys() {
- return this;
- }
-
- public boolean hasMoreElements() {
- return iter.hasNext();
- }
-
- public String nextElement() {
- if ( hasMoreElements() ) {
- return iter.next();
- }
- else {
- throw new NoSuchElementException();
- }
- }
- }
-}
Modified: validator/trunk/hibernate-validator/src/test/resources/log4j.properties
===================================================================
--- validator/trunk/hibernate-validator/src/test/resources/log4j.properties 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/hibernate-validator/src/test/resources/log4j.properties 2009-01-25 20:44:59 UTC (rev 15816)
@@ -22,5 +22,5 @@
log4j.logger.org.hibernate.validation.engine.ValidatorImpl=debug
log4j.logger.org.hibernate.validation.engine.ConstraintTree=trace
-org.hibernate.validation.impl.ResourceBundleMessageResolver=info
+org.hibernate.validation.impl.ResourceBundleMessageInterpolator=info
Copied: validator/trunk/validation-api/src/main/java/javax/validation/MessageInterpolator.java (from rev 15815, validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java)
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/MessageInterpolator.java (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/MessageInterpolator.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -0,0 +1,59 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.validation;
+
+import java.util.Locale;
+
+/**
+ * Interpolate a given constraint violation message.
+ *
+ * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
+ */
+public interface MessageInterpolator {
+ /**
+ * Interpolate the message from the constraint parameters and the actual validated object.
+ * The locale is defaulted according to the <code>MessageInterpolator</code> implementation
+ * See the implementation documentation for more detail.
+ *
+ * @param message The message to interpolate.
+ * @param constraintDescriptor The constraint descriptor.
+ * @param value The object being validated
+ *
+ * @return Interpolated error message.
+ */
+ String interpolate(String message,
+ ConstraintDescriptor constraintDescriptor,
+ Object value);
+
+ /**
+ * Interpolate the message from the constraint parameters and the actual validated object.
+ * The Locale used is provided as a parameter
+ *
+ * @param message The message to interpolate.
+ * @param constraintDescriptor The constraint descriptor.
+ * @param value The object being validated
+ * @param locale the locale targeted for the message
+ *
+ * @return Interpolated error message.
+ */
+ String interpolate(String message,
+ ConstraintDescriptor constraintDescriptor,
+ Object value,
+ Locale locale);
+}
Property changes on: validator/trunk/validation-api/src/main/java/javax/validation/MessageInterpolator.java
___________________________________________________________________
Name: svn:keywords
+ Id
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -1,59 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation;
-
-import java.util.Locale;
-
-/**
- * Interpolate a given constraint violation message.
- *
- * @author Emmanuel Bernard
- * @author Hardy Ferentschik
- */
-public interface MessageResolver {
- /**
- * Interpolate the message from the constraint parameters and the actual validated object.
- * The locale is defaulted according to the <code>MessageResolver</code> implementation
- * See the implementation documentation for more detail.
- *
- * @param message The message to interpolate.
- * @param constraintDescriptor The constraint descriptor.
- * @param value The object being validated
- *
- * @return Interpolated error message.
- */
- String interpolate(String message,
- ConstraintDescriptor constraintDescriptor,
- Object value);
-
- /**
- * Interpolate the message from the constraint parameters and the actual validated object.
- * The Locale used is provided as a parameter
- *
- * @param message The message to interpolate.
- * @param constraintDescriptor The constraint descriptor.
- * @param value The object being validated
- * @param locale the locale targeted for the message
- *
- * @return Interpolated error message.
- */
- String interpolate(String message,
- ConstraintDescriptor constraintDescriptor,
- Object value,
- Locale locale);
-}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -7,12 +7,12 @@
*/
public interface ValidatorBuilder {
/**
- * Defines the message resolver implementation used by the Validator.
- * If unset, the message resolver of the ValidatorFactory is used.
+ * Defines the message interpolator implementation used by the Validator.
+ * If unset, the message interpolator of the ValidatorFactory is used.
*
* @return self following the chaining method pattern
*/
- ValidatorBuilder messageResolver(MessageResolver messageResolver);
+ ValidatorBuilder messageInterpolator(MessageInterpolator messageInterpolator);
/**
* Defines the traversable resolver implementation used by the Validator.
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -27,7 +27,7 @@
public interface ValidatorFactory {
/**
* return an initialized Validator instance using the default factory instances
- * for message resolver and traversable resolver.
+ * for message interpolator and traversable resolver.
*
* Validator instances can be pooled and shared by the implementation
*/
@@ -42,11 +42,11 @@
ValidatorBuilder defineValidatorState();
/**
- * Returns the MessageResolver instance configured at initialization time
+ * Returns the MessageInterpolator instance configured at initialization time
* for the ValidatorFactory
* This is the instance used by #getValidator(Class)
*
- * @return MessageResolver instance
+ * @return MessageInterpolator instance
*/
- MessageResolver getMessageResolver();
+ MessageInterpolator getMessageInterpolator();
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -28,7 +28,7 @@
* <pre>
* ValidatorFactoryBuilder<?> builder = //provided by one of the Validation bootstrap methods
* ValidatorFactory = builder
- * .messageResolver( new CustomMessageResolver() )
+ * .messageInterpolator( new CustomMessageInterpolator() )
* .build();
* </pre>
* <p/>
@@ -49,14 +49,14 @@
*/
public interface ValidatorFactoryBuilder<T extends ValidatorFactoryBuilder> {
/**
- * Defines the message resolver used. Has priority over the configuration
- * based message resolver.
+ * Defines the message interpolator used. Has priority over the configuration
+ * based message interpolator.
*
- * @param resolver message resolver implementation.
+ * @param interpolator message interpolator implementation.
*
* @return <code>this</code> following the chaining method pattern.
*/
- T messageResolver(MessageResolver resolver);
+ T messageInterpolator(MessageInterpolator interpolator);
/**
* Defines the traversable resolver used. Has priority over the configuration
@@ -92,14 +92,14 @@
T configure(InputStream stream);
/**
- * Return an implementation of the MessageResolver interface following the
- * default MessageREsolver defined in the specification:
+ * Return an implementation of the MessageInterpolator interface following the
+ * default MessageInterpolator defined in the specification:
* - use the ValidationMessages resource bundle to load keys
* - use Locale.getDefault()
*
- * @return default MessageResolver implementation compliant with the specification
+ * @return default MessageInterpolator implementation compliant with the specification
*/
- MessageResolver getDefaultMessageResolver();
+ MessageInterpolator getDefaultMessageInterpolator();
/**
* Build a ValidatorFactory implementation.
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2009-01-23 23:17:08 UTC (rev 15815)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2009-01-25 20:44:59 UTC (rev 15816)
@@ -19,7 +19,7 @@
import java.io.InputStream;
import javax.validation.ConstraintFactory;
-import javax.validation.MessageResolver;
+import javax.validation.MessageInterpolator;
import javax.validation.TraversableResolver;
/**
@@ -33,12 +33,12 @@
*/
public interface ValidatorFactoryConfiguration {
/**
- * Message resolver as defined by the client programmatically
+ * Message interpolator as defined by the client programmatically
* or null if undefined.
*
* @return message provider instance or null if not defined
*/
- MessageResolver getMessageResolver();
+ MessageInterpolator getMessageInterpolator();
/**
* Returns the configuration stream defined by the client programmatically
[View Less]
16 years, 2 months
Hibernate SVN: r15815 - in core/trunk/testsuite/src/test/java/org/hibernate/test: pagination and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: gbadner
Date: 2009-01-23 18:17:08 -0500 (Fri, 23 Jan 2009)
New Revision: 15815
Modified:
core/trunk/testsuite/src/test/java/org/hibernate/test/entitymode/dom4j/basic/Account.hbm.xml
core/trunk/testsuite/src/test/java/org/hibernate/test/pagination/DataPoint.hbm.xml
Log:
HHH-3696 : Sybase - unit tests fail when numeric values overflow in precision or scale on insert
Modified: core/trunk/testsuite/src/test/java/org/hibernate/test/entitymode/dom4j/basic/Account.hbm.xml
=============…
[View More]======================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/entitymode/dom4j/basic/Account.hbm.xml 2009-01-23 23:01:43 UTC (rev 15814)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/entitymode/dom4j/basic/Account.hbm.xml 2009-01-23 23:17:08 UTC (rev 15815)
@@ -38,7 +38,7 @@
<id name="accountId" type="string" node="@id"/>
<many-to-one name="customer" column="customerId" entity-name="Customer" cascade="all" embed-xml="true" />
<!--not-null="true"-->
- <property name="balance" type="big_decimal" node="balance" precision="10" scale="0" />
+ <property name="balance" type="big_decimal" node="balance" precision="10" scale="2" />
</class>
<class entity-name="Location" node="location">
@@ -48,4 +48,4 @@
<property name="address" type="string"/>
</class>
-</hibernate-mapping>
\ No newline at end of file
+</hibernate-mapping>
Modified: core/trunk/testsuite/src/test/java/org/hibernate/test/pagination/DataPoint.hbm.xml
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/pagination/DataPoint.hbm.xml 2009-01-23 23:01:43 UTC (rev 15814)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/pagination/DataPoint.hbm.xml 2009-01-23 23:17:08 UTC (rev 15815)
@@ -13,10 +13,10 @@
<generator class="increment"/>
</id>
<property name="x">
- <column name="xval" not-null="true" precision="4" unique-key="xy"/>
+ <column name="xval" not-null="true" precision="20" scale="19" unique-key="xy"/>
</property>
<property name="y">
- <column name="yval" not-null="true" precision="4" unique-key="xy"/>
+ <column name="yval" not-null="true" precision="20" scale="19" unique-key="xy"/>
</property>
<property name="description"/>
</class>
[View Less]
16 years, 2 months