org.nuiton.validator.xwork2.field
Class CollectionUniqueKeyValidator

java.lang.Object
  extended by com.opensymphony.xwork2.validator.validators.ValidatorSupport
      extended by com.opensymphony.xwork2.validator.validators.FieldValidatorSupport
          extended by org.nuiton.validator.xwork2.field.NuitonFieldValidatorSupport
              extended by 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:
tchemit

Field Summary
protected  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  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  String collectionFieldName
          pour indiquer la propriété qui contient la liste à valider.
protected  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.ValidatorSupport
defaultMessage, log, messageKey
 
Constructor Summary
CollectionUniqueKeyValidator()
           
 
Method Summary
 String getAgainstIndexExpression()
           
 boolean getAgainstMe()
           
 String getAgainstProperty()
           
protected  Collection<?> getCollection(Object object)
           
 String getCollectionFieldName()
           
 String[] getKeys()
           
protected  Integer getUniqueKeyHashCode(Object o)
          Calcule pour une entrée donné, le hash de la clef unique
 String getValidatorType()
           
 boolean isNullValueSkipped()
           
 void setAgainstIndexExpression(String againstIndexExpression)
           
 void setAgainstMe(boolean againstMe)
           
 void setAgainstProperty(String againstProperty)
           
 void setCollectionFieldName(String collectionFieldName)
           
 void setKeys(String[] keys)
           
 void setNullValueSkipped(boolean nullValueSkipped)
           
 void validateWhenNotSkip(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
getFieldName, setFieldName, setValidatorType
 
Methods inherited from class com.opensymphony.xwork2.validator.validators.ValidatorSupport
addActionError, addFieldError, conditionalParse, getDefaultMessage, getMessage, getMessageKey, getMessageParameters, getParse, getValidatorContext, isShortCircuit, setDefaultMessage, setMessageKey, setMessageParameters, setParse, setShortCircuit, 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 Detail

collectionFieldName

protected 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 String[] keys
la liste des propriétés d'une entrée de la collection qui définit la clef unique.


againstProperty

protected 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 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 Detail

CollectionUniqueKeyValidator

public CollectionUniqueKeyValidator()
Method Detail

getCollectionFieldName

public String getCollectionFieldName()

setCollectionFieldName

public void setCollectionFieldName(String collectionFieldName)

getKeys

public String[] getKeys()

getAgainstMe

public boolean getAgainstMe()

setKeys

public void setKeys(String[] keys)

getAgainstProperty

public String getAgainstProperty()

setAgainstProperty

public void setAgainstProperty(String againstProperty)

getAgainstIndexExpression

public String getAgainstIndexExpression()

setAgainstIndexExpression

public void setAgainstIndexExpression(String againstIndexExpression)

setAgainstMe

public void setAgainstMe(boolean againstMe)

isNullValueSkipped

public boolean isNullValueSkipped()

setNullValueSkipped

public void setNullValueSkipped(boolean nullValueSkipped)

validateWhenNotSkip

public void validateWhenNotSkip(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 Integer getUniqueKeyHashCode(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 Collection<?> getCollection(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 String getValidatorType()
Specified by:
getValidatorType in interface com.opensymphony.xwork2.validator.Validator
Overrides:
getValidatorType in class com.opensymphony.xwork2.validator.validators.FieldValidatorSupport


Copyright © 2011 CodeLutin. All Rights Reserved.