Codage des fonctions d'analyse à l'aide des API de modèle d'application COBOL

Utilisez l'API de règles personnalisées pour COBOL Code Review et l'API de modèle d'application COBOL (CAM) pour analyser les éléments de langage COBOL que vous avez sélectionnés pour votre règle personnalisée écrite par l'utilisateur.

Pourquoi et quand exécuter cette tâche

L'API de règles personnalisées pour COBOL Code Review et l'API de modèle d'application COBOL sont complémentaires. Il est nécessaire d'avoir une bonne connaissance des deux pour implémenter une règle personnalisée écrite par l'utilisateur :

Procédure

Pour implémenter l'analyse de code pour une règle personnalisée :

  1. Ouvrez la perspective de développement de plug-in.
  2. Dans l'Explorateur de packages, cliquez avec le bouton droit de la souris sur le fichier source Java™ qui a été généré pour votre règle personnalisée, puis cliquez sur Ouvrir avec > Editeur Java. L'emplacement du fichier Java dans l'Explorateur de packages est nom_projet > src > nom_package > nom_classe.java. Par exemple : MyPluginProject > src > com.example > CobolRule.java.
  3. Dans l'éditeur Java, ajoutez le code Java requis à chacune des méthodes visite() générées pour effectuer l'analyse de code nécessaire. Une méthode visit() est générée pour chaque sous-interface non abstraite de l'interface de modèle d'application COBOL correspondant à l'élément de langage COBOL que vous avez sélectionné. Par exemple, supposons que vous ayez sélectionné l'élément ACCEPT dans l'arborescence Programme dans la troisième page de l'assistant de création :
    • L'interface de modèle d'application COBOL correspondant à ACCEPT est l'interface AcceptStmt.
    • Les informations Javadoc de l'interface AcceptStmt indiquent, sous l'en-tête Toutes les sous-interfaces connues, que AcceptStmt possède deux sous-interfaces : AcceptDataTranferStmt et AcceptSystemInfoTransferStmt.
    • Deux méthodes visit() sont générées, une pour chacune des deux sous-interfaces.
    Remarque :
    • Les méthodes visit() appartiennent à l'interface ICOBOLVisitor du package com.ibm.rsar.analysis.codereview.cobol.custom.model.util, dans l'API de règles personnalisées pour COBOL Code Review. N'implémentez pas directement ICOBOLVisitor ; sous-classez plutôt AbstractCOBOLVisitor. Les exemples suivants illustrent les méthodes visit() générées :
      • boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptDataTransferStmt n)
      • boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptSystemInfoTransferStmt n)
    • Le noeud qui est transmis sous forme d'entrée à une méthode visit() est une sous-interface de l'interface ASTNode du package com.ibm.etools.cobol.application.model.cobol dans l'API de modèle d'application COBOL (CAM).
    Lorsqu'un fichier source COBOL est analysé, l'analyseur de code lance une méthode visit() chaque fois qu'il rencontre une instance de l'interface ASTNode correspondante.
  4. Dans chaque méthode visit(), ajoutez le code Java correspondant aux fonctions suivantes :
    • Utilisez l'élément ASTNode n qui est transmis sous forme d'entrée à la méthode visit() pour obtenir des informations sur l'instance de l'élément de langage COBOL que vous analysez. Par exemple, pour obtenir l'attribut ID programme de la division Identification, où n est un objet IdentificationDivision, vous pouvez écrire :
      String myProgramID = n.getProgramId();
    • Effectuez l'analyse de code qui est requise par votre règle personnalisée. Si vous disposez de plusieurs méthodes visit() pour la règle, vous devrez sans doute aussi écrire du code Java pour coordonner les résultats provenant des méthodes visit() individuelles.
    • Définissez le code retour et les informations de retour. Renvoyez true pour poursuivre la visite des noeuds enfant du noeud en cours ou false pour omettre la visite des noeuds enfant. Si l'élément de langage COBOL qui est en cours d'analyse enfreint la règle, ajoutez le noeud correspondant à la liste des jetons.
  5. Lorsque vous avez terminé, fermez l'éditeur Java.

Commentaires en retour