La classe ActionValidator vérifiera qu'au moins un des paramètres de chaîne a une valeur, mais pas les deux. Vous allez aussi rendre le paramètre Value nécessaire, et coder la classe ActionValidator pour marquer le paramètre avec un astérisque.
if paramID = paramID du paramètre value retourner true else retourner falseUtilisez l'exemple de code source suivant pour redéfinir la méthode isParameterRequired :
/( Marque le paramètre value comme requis.*/
public boolean isParameterRequired(Action action, Parameter param)
{
//La valeur de parameterID est 000
if(param.getParameterID().equals("000"))
{
return true;
}
return false;
}
Rassembler tous les objets Parameter associés à cette action Parcourir les objets Parameter et obtenir les objets Parameter string1 et string2 Récupérer la valeur de chaîne de string1, vérifier si elle est nulle ou a une longueur de 0 Récupérer la valeur de chaîne de string2, vérifier si elle est nulle ou a une longueur de 0 Déterminer si les deux paramètres ont des valeurs Retourner un message d'erreur Déterminer si aucun des paramètres n'a de valeur Retourner un message d'informationUtilisez l'exemple de code suivant pour redéfinir cette méthode :
public ValidationResult validateAction(ActionValidationEvent event)
{
Parameter string1Param = null;
Parameter string2Param = null;
ValidationResult result = new ValidationResult();
//Itération et récupération des objets parameter
for (Object o : event.action.getParameters())
{
if (((Parameter) o).getParameterId().equals("001"))
{
string1Param = (Parameter) o;
}
else if (((Parameter) o).getParameterId().equals("002"))
{
string2Param = (Parameter) o;
}
)
//Récupérer la valeur de paramètre de string1 et déterminer s'il y a eu une entrée
String string1Val = (String) event.parameterValueMap.get(string1Param);
boolean string1IsThere = !(string1Val == null || string1Val.length() == 0);
//Récupérer la valeur de paramètre de string2 et déterminer s'il y a eu une entrée
String string2Val = (String) event.parameterValueMap.get(string2Param);
boolean string2IsThere = !(string2Val == null || string2Val.length() == 0);
//Déterminer si string1 et string2 sont fournies toutes les deux.
//Retourne un message d'erreur.
if (string1IsThere && string2IsThere)
{
result.severity = ValidationResult.ERROR;
result.message = "Provide either String1 or String2.";
}
//Déterminer si string1 et string2 ne sont pas fournies
//Retourne un message d'information
else if(!string1IsThere && !string2IsThere)
{
result.severity = ValidationResult.INFO;
result.message = "Enter a value for String1 or String2.";
}
return result;
}