Class BeanMetaDataImpl<T>

java.lang.Object
org.hibernate.validator.internal.metadata.aggregated.BeanMetaDataImpl<T>
All Implemented Interfaces:
BeanMetaData<T>, Validatable

public final class BeanMetaDataImpl<T> extends Object implements BeanMetaData<T>
This class encapsulates all meta data needed for validation. Implementations of Validator interface can instantiate an instance of this class and delegate the metadata extraction to it.
Author:
Hardy Ferentschik, Gunnar Morling, Kevin Pollet <kevin.pollet@serli.com> (C) 2011 SERLI, Chris Beckey <cbeckey@paypal.com>, Guillaume Smet, Marko Bekhta
  • Constructor Details

    • BeanMetaDataImpl

      public BeanMetaDataImpl(Class<T> beanClass, List<Class<?>> defaultGroupSequence, DefaultGroupSequenceProvider<? super T> defaultGroupSequenceProvider, Set<ConstraintMetaData> constraintMetaDataSet, ValidationOrderGenerator validationOrderGenerator)
      Creates a new BeanMetaDataImpl
      Parameters:
      beanClass - The Java type represented by this meta data object.
      defaultGroupSequence - The default group sequence.
      defaultGroupSequenceProvider - The default group sequence provider if set.
      constraintMetaDataSet - All constraint meta data relating to the represented type.
  • Method Details

    • getBeanClass

      public Class<T> getBeanClass()
      Specified by:
      getBeanClass in interface BeanMetaData<T>
      Returns:
      the class of the bean.
    • hasConstraints

      public boolean hasConstraints()
      Description copied from interface: BeanMetaData
      Returns true if the bean class for this bean meta data has any constraints at all, false otherwise.
      Specified by:
      hasConstraints in interface BeanMetaData<T>
      Returns:
      true if the bean class for this bean meta data has any constraints at all, false otherwise.
    • getBeanDescriptor

      public jakarta.validation.metadata.BeanDescriptor getBeanDescriptor()
      Specified by:
      getBeanDescriptor in interface BeanMetaData<T>
      Returns:
      an instance of ElementDescriptor describing the bean this meta data applies for.
    • getCascadables

      public Set<Cascadable> getCascadables()
      Description copied from interface: Validatable
      Returns the cascaded elements of this validatable, e.g. the properties of a bean or the parameters of a method annotated with @Valid.
      Specified by:
      getCascadables in interface Validatable
      Returns:
      The cascaded elements of this validatable.
    • hasCascadables

      public boolean hasCascadables()
      Description copied from interface: Validatable
      Returns true if this validatable has at least one cascadable element, false otherwise.
      Specified by:
      hasCascadables in interface Validatable
    • getMetaDataFor

      public PropertyMetaData getMetaDataFor(String propertyName)
      Description copied from interface: BeanMetaData
      Returns constraint-related meta data for the given property of this bean.
      Specified by:
      getMetaDataFor in interface BeanMetaData<T>
      Parameters:
      propertyName - The property name.
      Returns:
      Constraint-related meta data.
    • getMetaConstraints

      public Set<MetaConstraint<?>> getMetaConstraints()
      Specified by:
      getMetaConstraints in interface BeanMetaData<T>
      Returns:
      A set of MetaConstraint instances encapsulating the information of all the constraints defined on the bean. This collection includes constraints from super classes as well
    • getDirectMetaConstraints

      public Set<MetaConstraint<?>> getDirectMetaConstraints()
      Specified by:
      getDirectMetaConstraints in interface BeanMetaData<T>
      Returns:
      A set of MetaConstraint instances encapsulating the information of all the constraints defined on the bean directly (including constraints defined on implemented interfaces). It does not contain constraints from super classes or interfaces implemented by super classes
    • getMetaDataFor

      public Optional<ExecutableMetaData> getMetaDataFor(Executable executable)
      Description copied from interface: BeanMetaData
      Returns the constraint-related metadata for the given executable of the class represented by this bean metadata.
      Specified by:
      getMetaDataFor in interface BeanMetaData<T>
      Parameters:
      executable - The executable of interest.
      Returns:
      An optional either containing an aggregated view on the constraint related metadata from the given method and all the methods from super-types which it overrides or implements or being empty if the method is not constrained at all.
    • getDefaultGroupSequence

      public List<Class<?>> getDefaultGroupSequence(T beanState)
      Description copied from interface: BeanMetaData
      Get the composition of the default group sequence.

      If the bean state is given in parameter and the bean metadata has a default group sequence provider then the dynamic default group sequence composition is returned. In the other cases the default group sequence redefinition specified by BV is used.

      Specified by:
      getDefaultGroupSequence in interface BeanMetaData<T>
      Parameters:
      beanState - the bean state.
      Returns:
      a list of classes representing the default group sequence.
    • getDefaultValidationSequence

      public Iterator<Sequence> getDefaultValidationSequence(T beanState)
      Description copied from interface: BeanMetaData
      Returns an iterator over the default validation group sequence as configured through @GroupSequence/@DefaultGroupSequenceProvider. If this bean type does not re-declare the default validation group sequence, ValidationOrder.DEFAULT_SEQUENCE will be returned.
      Specified by:
      getDefaultValidationSequence in interface BeanMetaData<T>
    • isDefaultGroupSequenceRedefined

      public boolean isDefaultGroupSequenceRedefined()
      Specified by:
      isDefaultGroupSequenceRedefined in interface BeanMetaData<T>
      Returns:
      true if the entity redefines the default group sequence, false otherwise.
    • getClassHierarchy

      public List<Class<? super T>> getClassHierarchy()
      Specified by:
      getClassHierarchy in interface BeanMetaData<T>
      Returns:
      Returns a list of classes representing the class hierarchy for the entity. The list start with the element itself and goes up the hierarchy chain. Interfaces are not included.
    • toString

      public String toString()
      Overrides:
      toString in class Object