Class AUniqueEntityFieldValidator<TEntity extends de.xima.cmn.dao.interfaces.IEntity<Long>,​TField>

  • Type Parameters:
    TEntity - Type of the entity owning the field.
    TField - Type of the field to which the validator applies.
    All Implemented Interfaces:
    Serializable, EventListener, javax.faces.validator.Validator
    Direct Known Subclasses:
    AUniqueStringFieldValidator

    public abstract class AUniqueEntityFieldValidator<TEntity extends de.xima.cmn.dao.interfaces.IEntity<Long>,​TField>
    extends Object
    implements javax.faces.validator.Validator, Serializable
    Abstract base class for faces validators that check whether a certain field of an entity is unique amongst all existing entities within a certain scope.
    Since:
    7.0.0
    Author:
    XIMA MEDIA GmbH
    See Also:
    Serialized Form
    • Constructor Detail

      • AUniqueEntityFieldValidator

        protected AUniqueEntityFieldValidator​(Class<TEntity> entityClass,
                                              Class<TField> fieldClass)
    • Method Detail

      • validate

        public final void validate​(javax.faces.context.FacesContext context,
                                   javax.faces.component.UIComponent component,
                                   Object value)
                            throws javax.faces.validator.ValidatorException
        Specified by:
        validate in interface javax.faces.validator.Validator<TEntity extends de.xima.cmn.dao.interfaces.IEntity<Long>>
        Throws:
        javax.faces.validator.ValidatorException
      • addScope

        protected void addScope​(de.xima.cmn.criteria.QueryCriteriaManager qcm,
                                @Nonnull
                                TEntity entity)
        Use this method to restrict the scope of entities considered for the duplicate search, such as to a certain client, version, project etc.

        By default, the client and project scope is set if the entity implements IMandantDependent or IProjektDependent.

        Parameters:
        qcm - Query criteria manager that will be used to check for existing duplicates.
        entity - Entity that is validated.
      • addSearch

        protected abstract void addSearch​(de.xima.cmn.criteria.QueryCriteriaManager qcm,
                                          @Nonnull
                                          TField value)
        Adds the criteria an entity must match to be considered a duplicate.
        Parameters:
        qcm - Query criteria manager that will be used to check for existing duplicates.
        entity - Entity that is validated.
      • convertValue

        protected abstract TField convertValue​(@Nonnull
                                               Object value)
        Parameters:
        value - Value as received from the UI.
        Returns:
        The value, converted to the expected type.
      • hasValue

        protected abstract boolean hasValue​(@Nonnull
                                            TField value)
        Parameters:
        fieldValue - The converted field value.
        Returns:
        true if the value is non-empty, or false otherwise. When empty, this validator is skipped.
      • createError

        protected static javax.faces.validator.ValidatorException createError()
                                                                       throws javax.faces.validator.ValidatorException
        Throws:
        javax.faces.validator.ValidatorException
      • createError

        protected static javax.faces.validator.ValidatorException createError​(Throwable e)
                                                                       throws javax.faces.validator.ValidatorException
        Throws:
        javax.faces.validator.ValidatorException