/*
* Hibernate Validator, declare and validate application constraints
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
*/
package org.hibernate.validator.internal.engine.constraintdefinition;
import java.lang.annotation.Annotation;
import java.util.List;
import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorDescriptor;
import org.hibernate.validator.internal.util.CollectionHelper;
import org.hibernate.validator.internal.util.stereotypes.Immutable;
Type-safe wrapper class for a constraint annotation and its potential list of constraint validators.
Author: Hardy Ferentschik
/**
* Type-safe wrapper class for a constraint annotation and its potential list of constraint validators.
*
* @author Hardy Ferentschik
*/
public class ConstraintDefinitionContribution<A extends Annotation> {
private final Class<A> constraintType;
@Immutable
private final List<ConstraintValidatorDescriptor<A>> validatorDescriptors;
private final boolean includeExisting;
public ConstraintDefinitionContribution(Class<A> constraintType,
List<ConstraintValidatorDescriptor<A>> validatorDescriptors,
boolean includeExisting) {
this.constraintType = constraintType;
this.validatorDescriptors = CollectionHelper.toImmutableList( validatorDescriptors );
this.includeExisting = includeExisting;
}
Returns the constraint annotation type for which this instance provides constraint validator instances.
/**
* Returns the constraint annotation type for which this instance provides constraint validator instances.
*/
public Class<A> getConstraintType() {
return constraintType;
}
Returns a list of constraint validator descriptors for the constraint type of this instance.
/**
* Returns a list of constraint validator descriptors for the constraint type of this instance.
*/
public List<ConstraintValidatorDescriptor<A>> getValidatorDescriptors() {
return validatorDescriptors;
}
Whether or not the existing constraint validators should be kept or not.
Returns: true
if the existing constraint validators for the constraint type wrapped by this instance should be kept, false
otherwise.
/**
* Whether or not the existing constraint validators should be kept or not.
*
* @return {@code true} if the existing constraint validators for the constraint type wrapped by this
* instance should be kept, {@code false} otherwise.
*/
public boolean includeExisting() {
return includeExisting;
}
@Override
public boolean equals(Object o) {
if ( this == o ) {
return true;
}
if ( o == null || getClass() != o.getClass() ) {
return false;
}
ConstraintDefinitionContribution<?> that = (ConstraintDefinitionContribution<?>) o;
if ( !constraintType.equals( that.constraintType ) ) {
return false;
}
if ( !validatorDescriptors.equals( that.validatorDescriptors ) ) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = constraintType.hashCode();
result = 31 * result + validatorDescriptors.hashCode();
return result;
}
@Override
public String toString() {
return "ConstraintDefinitionContribution{" +
"constraintType=" + constraintType +
", validatorDescriptors=" + validatorDescriptors +
", includeExisting=" + includeExisting +
'}';
}
}