IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Contrôle des paramètres en entrée


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Contrôle des paramètres en entrée
    Bonjour à tout le monde,

    J'ai deux classes la première doit contrôler les données d'entrée et la seconde se charge de les renvoyer sur un serveur. Les données transitent entre les deux classes par des beans.

    Voici ma première classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    public class TransFormat {
     
        public IdentificationRequestBean formatEntret(
                ryType beneficiaryREQUEST)
                throws WsBusinessErrorMsg, WsSystemErrorMsg {
     
            IdentificationRequestBean idReq = new IdentificationRequestBean();
     
            try {
     
     
                    /* Récupération du champ NIR */
                    if (beneficiaryREQUEST.getNni().substring(0, 13) != null
                            || beneficiaryREQUEST.getNni().length() < 13) {
                        idReq.setNni(beneficiaryREQUEST.getNni());        
                    } else
                        LogHelper.info(getClass(), meth,
                                "Le nir est absent/ou incomplet");
     
                    // Récupération du nom du partenaire
                    if (beneficiaryREQUEST.getNom() != null) {
     
                        idReq.setNom(beneficiaryREQUEST.getNom());
                    } else
                        LogHelper.info(getClass(), meth,
                                "Le nom de famille du partenaire est manquant");
     
                    // Récupération du prénom
                    if (beneficiaryREQUEST.getPrenom() != null)
                        idReq.setPrenom(beneficiaryREQUEST.getPrenom());
                    else
                        LogHelper.info(getClass(), meth,
                                "Le prenom du partenaire est manquant");
                        } catch (Exception ex) {
                    //Gestion des erreurs techniques
                   ex.printStacktrace();
            }
     
            return idReq;
        }
    La deuxième classe appelle un bean pour formater les données puis transférer celles-ci au serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public Process FormatIdRequest (IdentificationRequestBean idRequest)
        {
     
            Payload payload = new Payload();
            Process process = new Process();
     
            LogHelper.info(getClass(), meth, "Récupération des données passées en paramètres");
     
            //Récuperation du nir
            payload.setNir(idRequest.getNni());
     
     
            //Récupération du nom
            payload.setNom(idRequest.getNom());
     
            //Récupération du prenom
            payload.setPrenom(idRequest.getPrenom());
     
     
            process.setPayload(payload);
     
            LogHelper.info(getClass(), meth, "Fin du formattage");
     
            return process;
     
        }
    Ma quesion est la suivante : je n'arrive pas à implémenter les règles de gestion suivante :

    1 - La donnée nir doit être renseignée

    2 - Si nir absent, les données nom et prenom doient être renseignées.

    Merci d'avance pour votre aide précieuse.
    Cordialement,

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Tu peux faire un validateur ou une méthode de validation.
    Je ne suis pas spécialiste dans le domaine de la validation de bean, mais je suis sûr qu'il te faut un "validator" quelque-chose dans ce cas. Ou des contraintes personnalisé (custom).

    Peut-être un lien utile :
    http://java.dzone.com/articles/bean-...on-and-jsr-303
    (Si une autre personne peut confirmer ou infirmer l'info !)

    Cordialement,
    Patrick Kolodziejczyk.

  3. #3
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                    if (beneficiaryREQUEST.getNni().substring(0, 13) != null
                            || beneficiaryREQUEST.getNni().length() < 13) {
                        idReq.setNni(beneficiaryREQUEST.getNni());        
                    }
    Avant tout, je te conseille d'inverser ce test : si ta chaîne Nni fait moins de 13 caractères, tu va systématiquement avoir une erreur.
    Si elle fait plus de 13 caractères, elle se sera jamais remplie, ça fait partie du contrat?


    Ensuite, c'est une question d'algorithmie : tu veux le cas de test suivant
    - nir est valide
    OU
    - nir est invalide mais Prenom et Nom sont valides

    Après avoir renseigné les valeurs dans ton objet idReq, tu peux donc faire le test suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (idReq.getNni() != null ||
          idReq.getNom() != null && idReq.getPrenom() != null
       ){
          LogHelper.info(getClass(), meth, "Les informations sont correctes");
    } else {
          LogHelper.info(getClass(), meth, "Les champs Nom et prénom sont obligatoire si Nni n'est pas rempli");
    }
    Tu peux aussi regarder du côté des validateurs, mais comme tu as un cas de validation complexe (avec dépendance de validation entre les champs), je pense qu'il sera plus simple de faire comme ça.

Discussions similaires

  1. Récupérer des paramètres en entrée
    Par foze81 dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/04/2010, 14h45
  2. [Batch] Modification des paramètres d'entrée dans une boucle FOR
    Par reppier dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 15/06/2009, 16h23
  3. Conventions en matière de contrôle des paramètres en entrée d'une fonction
    Par Jimalexp dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 16/01/2009, 21h21
  4. [bash / sh] Mauvaise gestion des paramètres d'entrée
    Par Rei Angelus dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 05/04/2008, 07h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo