La clase ActionValidator comprobará que como mínimo uno de los parámetros de serie tenga un valor, pero no ambos. También convertirá el parámetro Value en obligatorio y codificará la clase ActionValidator para que marque el parámetro con un asterisco.
si paramID = paramID del parámetro value devolver true de lo contrario devolver falseUtilice el siguiente código de muestra para alterar temporalmente el método isParameterRequired:
/( Marcar el parámetro value como obligatorio.*/
public boolean isParameterRequired(Action action, Parameter param)
{
//El parameterID de value es 000
if(param.getParameterID().equals("000"))
{
return true;
}
return false;
}
Recoger todos los objetos Parameter asociados con la acción Iterar los objetos Parameter y obtener los objetos Parameter string1 y string2 Recuperar el valor de serie de string1, comprobar si es nulo o tiene una longitud de 0 Recuperar el valor de serie de string2, comprobar si es nulo o tiene una longitud de 0 Determinar si ambos parámetros tienen valores Devolver un mensaje de error Determinar si ninguno de los parámetros tiene valores Devolver un mensaje informativoUtilice el siguiente código de muestra para alterar temporalmente este método:
public ValidationResult validateAction(ActionValidationEvent event)
{
Parameter string1Param = null;
Parameter string2Param = null;
ValidationResult result = new ValidationResult();
//Iterar y recuperar los objetos de parámetro
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;
}
)
//Recuperar el valor de parámetro para string1 y determinar si existe entrada
String string1Val = (String) event.parameterValueMap.get(string1Param);
boolean string1IsThere = !(string1Val == null || string1Val.length() == 0);
//Recuperar el valor de parámetro para string2 y determinar si existe entrada
String string2Val = (String) event.parameterValueMap.get(string2Param);
boolean string2IsThere = !(string2Val == null || string2Val.length() == 0);
//Determinar si se han especificado tanto string1 como string2.
//Devolver mensaje de error.
if (string1IsThere && string2IsThere)
{
result.severity = ValidationResult.ERROR;
result.message = "Especifique String1 o String2.";
}
//Determinar si no se ha especificado string1 ni string2.
//Devolver mensaje informativo.
else if(!string1IsThere && !string2IsThere)
{
result.severity = ValidationResult.INFO;
result.message = "Especifique un valor para String1 o String2.";
}
return result;
}