org.hibernate.validator.internal.engine.constraintdefinition.ConstraintDefinitionContribution Maven / Gradle / Ivy
/*
* Hibernate Validator, declare and validate application constraints
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or .
*/
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
*/
public class ConstraintDefinitionContribution {
private final Class constraintType;
@Immutable
private final List> validatorDescriptors;
private final boolean includeExisting;
public ConstraintDefinitionContribution(Class constraintType,
List> 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.
*/
public Class getConstraintType() {
return constraintType;
}
/**
* Returns a list of constraint validator descriptors for the constraint type of this instance.
*/
public List> getValidatorDescriptors() {
return validatorDescriptors;
}
/**
* 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 +
'}';
}
}