Rational Developer for System z


Leçon 8 : création du code pour la classe ActionValidator

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.
  1. Dans la vue Explorateur de package, ouvrez la classe ActionValidator en accédant à com.ibm.carma.plugin.howto > src > com.ibm.carma.plugin.howto.action et cliquez deux fois sur la classe pour l'ouvrir dans l'éditeur.
  2. Vous allez commencer par redéfinir la méthode isParameterRequired. Pour cet exemple, vous allez coder pour que seul le paramètre Value soit requis. Le pseudocode suivant le démontre :
    if paramID = paramID du paramètre value
    	retourner true
    else
    	retourner false
    Utilisez 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;
    }
  3. Ensuite, vous allez redéfinir la méthode validateAction pour autoriser une seule valeur dans le paramètre de chaînes d'entrée, mais pas dans les deux. Le pseudocode suivant le démontre :
    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'information 
    Utilisez 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;
    }
  4. Enregistrez la source et déboguez les éventuelles erreurs.

Conditions d'utilisation | Commentaires en retour



Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)