Class CollectionUniqueKeyValidator

java.lang.Object
com.opensymphony.xwork2.validator.validators.ValidatorSupport
com.opensymphony.xwork2.validator.validators.FieldValidatorSupport
org.nuiton.validator.xwork2.field.NuitonFieldValidatorSupport
org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator
All Implemented Interfaces:
com.opensymphony.xwork2.validator.FieldValidator, com.opensymphony.xwork2.validator.ShortCircuitableValidator, com.opensymphony.xwork2.validator.Validator

public class CollectionUniqueKeyValidator
extends NuitonFieldValidatorSupport
Un validateur basé sur FieldExpressionValidator qui valide une clef unique sur une collection. Le FieldValidatorSupport.fieldName sert à récupérer la propriété de type de collection du bean.
Author:
Tony Chemit - chemit@codelutin.com
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.lang.String againstIndexExpression
    Lors de l'utilisation de la againstProperty et qu'un ne peut pas utiliser le equals sur l'objet, on peut spécifier une expression pour exclure des tests lors de la recherche de la violation de clef unique.
    protected boolean againstMe
    Une propriété optionnelle pour utiliser l'objet en cours de validation pour valider que l'objet reflétée par cette propriété ne viole pas l'intégrité de la clef unique.
    protected java.lang.String againstProperty
    Une propriété optionnelle pour valider que l'objet reflétée par cette propriété ne viole pas l'intégrité de la clef unique.
    protected java.lang.String collectionFieldName
    pour indiquer la propriété qui contient la liste à valider.
    protected java.lang.String[] keys
    la liste des propriétés d'une entrée de la collection qui définit la clef unique.
    protected boolean nullValueSkipped
    Pour ne pas traiter les valeurs nulles (si positionné à true les valeurs nulles ne sont pas considérée comme unique).

    Fields inherited from class org.nuiton.validator.xwork2.field.NuitonFieldValidatorSupport

    skip

    Fields inherited from class com.opensymphony.xwork2.validator.validators.FieldValidatorSupport

    currentValue, fieldName, type

    Fields inherited from class com.opensymphony.xwork2.validator.validators.ValidatorSupport

    defaultMessage, EMPTY_STRING, messageKey, stack, textProviderFactory
  • Constructor Summary

    Constructors 
    Constructor Description
    CollectionUniqueKeyValidator()  
  • Method Summary

    Modifier and Type Method Description
    java.lang.String getAgainstIndexExpression()  
    boolean getAgainstMe()  
    java.lang.String getAgainstProperty()  
    protected java.util.Collection<?> getCollection​(java.lang.Object object)  
    java.lang.String getCollectionFieldName()  
    java.lang.String[] getKeys()  
    protected java.lang.Integer getUniqueKeyHashCode​(java.lang.Object o)
    Calcule pour une entrée donné, le hash de la clef unique
    java.lang.String getValidatorType()  
    boolean isNullValueSkipped()  
    void setAgainstIndexExpression​(java.lang.String againstIndexExpression)  
    void setAgainstMe​(boolean againstMe)  
    void setAgainstProperty​(java.lang.String againstProperty)  
    void setCollectionFieldName​(java.lang.String collectionFieldName)  
    void setKeys​(java.lang.String[] keys)  
    void setNullValueSkipped​(boolean nullValueSkipped)  
    void validateWhenNotSkip​(java.lang.Object object)
    Method to be invoked when skip parameter was not evaludated to true.

    Methods inherited from class org.nuiton.validator.xwork2.field.NuitonFieldValidatorSupport

    evaluateSkipParameter, getFieldValue, setSkip, validate

    Methods inherited from class com.opensymphony.xwork2.validator.validators.FieldValidatorSupport

    getCurrentValue, getFieldName, setFieldName, setValidatorType

    Methods inherited from class com.opensymphony.xwork2.validator.validators.ValidatorSupport

    addActionError, addFieldError, getDefaultMessage, getMessage, getMessageKey, getMessageParameters, getValidatorContext, isShortCircuit, parse, setDefaultMessage, setMessageKey, setMessageParameters, setShortCircuit, setTextProviderFactory, setValidatorContext, setValueStack

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.opensymphony.xwork2.validator.Validator

    getDefaultMessage, getMessage, getMessageKey, getMessageParameters, getValidatorContext, setDefaultMessage, setMessageKey, setMessageParameters, setValidatorContext, setValueStack
  • Field Details

    • collectionFieldName

      protected java.lang.String collectionFieldName
      pour indiquer la propriété qui contient la liste à valider. Si cette prorpiété n'est pas renseignée alors on utilise la FieldValidatorSupport.getFieldName() pour obtenir la collection. Cela permet d'effectuer une validation si une collection mais portant en fait sur un autre champs
      Since:
      1.5
    • keys

      protected java.lang.String[] keys
      la liste des propriétés d'une entrée de la collection qui définit la clef unique.
    • againstProperty

      protected java.lang.String againstProperty
      Une propriété optionnelle pour valider que l'objet reflétée par cette propriété ne viole pas l'intégrité de la clef unique. Cela permet de valider l'unicité sans que l'objet soit dans la collection
    • againstMe

      protected boolean againstMe
      Une propriété optionnelle pour utiliser l'objet en cours de validation pour valider que l'objet reflétée par cette propriété ne viole pas l'intégrité de la clef unique. Cela permet de valider l'unicité sans que l'objet soit dans la collection
    • againstIndexExpression

      protected java.lang.String againstIndexExpression
      Lors de l'utilisation de la againstProperty et qu'un ne peut pas utiliser le equals sur l'objet, on peut spécifier une expression pour exclure des tests lors de la recherche de la violation de clef unique.
    • nullValueSkipped

      protected boolean nullValueSkipped
      Pour ne pas traiter les valeurs nulles (si positionné à true les valeurs nulles ne sont pas considérée comme unique).
      Since:
      2.2.6
  • Constructor Details

  • Method Details

    • getCollectionFieldName

      public java.lang.String getCollectionFieldName()
    • setCollectionFieldName

      public void setCollectionFieldName​(java.lang.String collectionFieldName)
    • getKeys

      public java.lang.String[] getKeys()
    • getAgainstMe

      public boolean getAgainstMe()
    • setKeys

      public void setKeys​(java.lang.String[] keys)
    • getAgainstProperty

      public java.lang.String getAgainstProperty()
    • setAgainstProperty

      public void setAgainstProperty​(java.lang.String againstProperty)
    • getAgainstIndexExpression

      public java.lang.String getAgainstIndexExpression()
    • setAgainstIndexExpression

      public void setAgainstIndexExpression​(java.lang.String againstIndexExpression)
    • setAgainstMe

      public void setAgainstMe​(boolean againstMe)
    • isNullValueSkipped

      public boolean isNullValueSkipped()
    • setNullValueSkipped

      public void setNullValueSkipped​(boolean nullValueSkipped)
    • validateWhenNotSkip

      public void validateWhenNotSkip​(java.lang.Object object) throws com.opensymphony.xwork2.validator.ValidationException
      Description copied from class: NuitonFieldValidatorSupport
      Method to be invoked when skip parameter was not evaludated to true.
      Specified by:
      validateWhenNotSkip in class NuitonFieldValidatorSupport
      Parameters:
      object - the object to be validated.
      Throws:
      com.opensymphony.xwork2.validator.ValidationException - is thrown if there is validation error(s).
    • getUniqueKeyHashCode

      protected java.lang.Integer getUniqueKeyHashCode​(java.lang.Object o) throws com.opensymphony.xwork2.validator.ValidationException
      Calcule pour une entrée donné, le hash de la clef unique
      Parameters:
      o - l'entree de la collection dont on va calculer le hash de la clef unique
      Returns:
      le hashCode calclé de la clef unique sur l'entrée donné
      Throws:
      com.opensymphony.xwork2.validator.ValidationException - if any pb to retreave properties values
    • getCollection

      protected java.util.Collection<?> getCollection​(java.lang.Object object) throws com.opensymphony.xwork2.validator.ValidationException
      Parameters:
      object - the incoming object containing the collection to test
      Returns:
      the collection of the incoming object given by the fieldName property
      Throws:
      com.opensymphony.xwork2.validator.ValidationException - if any pb to retreave the collection
    • getValidatorType

      public java.lang.String getValidatorType()
      Specified by:
      getValidatorType in interface com.opensymphony.xwork2.validator.Validator
      Overrides:
      getValidatorType in class com.opensymphony.xwork2.validator.validators.FieldValidatorSupport