/*
 * 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.metadata.raw;

import java.util.List;
import java.util.Set;

import org.hibernate.validator.internal.util.CollectionHelper;
import org.hibernate.validator.spi.group.DefaultGroupSequenceProvider;

Represents the complete constraint related configuration of one Java type originating from one ConfigurationSource. Contains meta-data on constraints (field, method and class level) as well as meta data on default group sequences.
Author:Gunnar Morling
/** * Represents the complete constraint related configuration of one Java type * originating from one {@link ConfigurationSource}. Contains meta-data on * constraints (field, method and class level) as well as meta data on default * group sequences. * * @author Gunnar Morling */
public class BeanConfiguration<T> { private final ConfigurationSource source; private final Class<T> beanClass; private final Set<ConstrainedElement> constrainedElements; private final List<Class<?>> defaultGroupSequence; private final DefaultGroupSequenceProvider<? super T> defaultGroupSequenceProvider;
Creates a new bean configuration.
Params:
  • source – The source of this configuration.
  • beanClass – The type represented by this configuration.
  • constrainedElements – The constraint elements representing this type's fields, methods etc.
  • defaultGroupSequence – The default group sequence for the given type as configured by the given configuration source.
  • defaultGroupSequenceProvider – The default group sequence provider for the given type as configured by the given configuration source.
/** * Creates a new bean configuration. * * @param source The source of this configuration. * @param beanClass The type represented by this configuration. * @param constrainedElements The constraint elements representing this type's fields, * methods etc. * @param defaultGroupSequence The default group sequence for the given type as configured by * the given configuration source. * @param defaultGroupSequenceProvider The default group sequence provider for the given type as * configured by the given configuration source. */
public BeanConfiguration( ConfigurationSource source, Class<T> beanClass, Set<? extends ConstrainedElement> constrainedElements, List<Class<?>> defaultGroupSequence, DefaultGroupSequenceProvider<? super T> defaultGroupSequenceProvider) { this.source = source; this.beanClass = beanClass; this.constrainedElements = CollectionHelper.<ConstrainedElement>newHashSet( constrainedElements ); this.defaultGroupSequence = defaultGroupSequence; this.defaultGroupSequenceProvider = defaultGroupSequenceProvider; } public ConfigurationSource getSource() { return source; } public Class<T> getBeanClass() { return beanClass; } public Set<ConstrainedElement> getConstrainedElements() { return constrainedElements; } public List<Class<?>> getDefaultGroupSequence() { return defaultGroupSequence; } public DefaultGroupSequenceProvider<? super T> getDefaultGroupSequenceProvider() { return defaultGroupSequenceProvider; } @Override public String toString() { return "BeanConfiguration [beanClass=" + beanClass.getSimpleName() + ", source=" + source + ", constrainedElements=" + constrainedElements + ", defaultGroupSequence=" + defaultGroupSequence + ", defaultGroupSequenceProvider=" + defaultGroupSequenceProvider + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ( ( beanClass == null ) ? 0 : beanClass.hashCode() ); result = prime * result + ( ( source == null ) ? 0 : source.hashCode() ); return result; } @Override public boolean equals(Object obj) { if ( this == obj ) { return true; } if ( obj == null ) { return false; } if ( getClass() != obj.getClass() ) { return false; } BeanConfiguration<?> other = (BeanConfiguration<?>) obj; if ( beanClass == null ) { if ( other.beanClass != null ) { return false; } } else if ( !beanClass.equals( other.beanClass ) ) { return false; } if ( source != other.source ) { return false; } return true; } }