Fichiers générés : Code d'implémentation

L'assistant Modèle de règle COBOL génère une classe Java™ pour l'implémentation d'une règle personnalisée écrite par l'utilisateur.

Vous devez ajouter votre propre code Java à cette classe pour effectuer les vérifications requises par votre règle personnalisée.

La Figure 1 présente un exemple de code généré pour une classe de règle personnalisée. Cet exemple se base sur les hypothèses suivantes :
  • La classe de règle est com.example.CobolRule (voir Tableau 1).
  • Les éléments suivants ont été sélectionnés sur la page Modèle de règle COBOL de l'assistant :
    • IdentificationDivision
    • DataDivision
    • ProcedureDivision
Notez les aspects suivants du code généré :
  • Le nom du package est défini sur la portion nom-package de la classe de règle, com.example.
  • Le nom de la classe est défini sur la portion nom-classe de la classe de règle, CobolRule.
  • Une méthode visit() est générée pour chacun des trois éléments sélectionnés dans la page Modèle de règle COBOL de l'assistant.
Figure 1. Classe permettant l'implémentation d'une règle personnalisée
// The package name is set to the package-name portion of analysisRule.ruleclass 
package com.example;

import java.util.ArrayList;
import java.util.List;

import com.ibm.etools.cobol.application.model.cobol.*;
import com.ibm.rsar.analysis.codereview.cobol.custom.rules.AbstractCustomCobolAnalysisRule;
import com.ibm.rsar.analysis.codereview.cobol.custom.model.util.*;

// The class name is set to the class-name portion of analysisRule.ruleclass 
public class CobolRule extends
    AbstractCustomCobolAnalysisRule {

  @Override
  public List<ASTNode> performRule(ASTNode baseNode) {
    final List<ASTNode> tokens = new ArrayList<ASTNode>();
    COBOLVisitorAdapter adapter = new COBOLVisitorAdapter();

    adapter.accept(baseNode, new AbstractCOBOLVisitor() {
      @Override
      public void unimplementedVisitor(String s) {
      }

      @Override
      public boolean visit(IdentificationDivision node) {
        //TODO analyze node for violations of rule and add violating nodes to tokens
        return true;
      }

      @Override
      public boolean visit(DataDivision node) {
        //TODO analyze node for violations of rule and add violating nodes to tokens
        return true;
      }

      @Override
      public boolean visit(ProcedureDivision node) {
        //TODO analyze node for violations of rule and add violating nodes to tokens
        return true;
      }
    });

    return tokens;
  }
}

Commentaires en retour