Archivos generados: código de implementación

El asistente Plantilla de regla COBOL genera una clase Java™ para implementar una regla personalizada escrita por usuario.

Debe añadir su propio código Java a esta clase para realizar la comprobación requerida por la norma personalizada.

Figura 1 muestra un ejemplo del código generado para una clase de regla personalizada. En este ejemplo se presupone lo siguiente:
  • La clase de regla es com.example.CobolRule (consulte Tabla 1).
  • Los elementos siguientes se han seleccionado en la página Plantilla de regla COBOL:
    • IdentificationDivision
    • DataDivision
    • ProcedureDivision
Tenga en cuenta los aspectos siguientes del código generado:
  • El nombre del paquete está establecido en la porción de nombre de paquete de la clase de regla, com.example.
  • El nombre de clase se establece en la parte de nombre de clase de la clase de regla CobolRule.
  • Se genera un método visit() para cada uno de los tres elementos seleccionados en la página del asistente Plantilla de regla COBOL.
Figura 1. Clase para implementar una regla personalizada
// El nombre del paquete está establecido en la porción de nombre de paquete de 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.*;

// El nombre de clase se establece en la parte de nombre de clase de 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) {
        //PENDIENTE analizar nodo para violaciones de regla y añadir nodos de violación a símbolos
        return true;
      }

      @Override
      public boolean visit(DataDivision node) {
        //PENDIENTE analizar nodo para violaciones de regla y añadir nodos de violación a símbolos
        return true;
      }

      @Override
      public boolean visit(ProcedureDivision node) {
        //PENDIENTE analizar nodo para violaciones de regla y añadir nodos de violación a símbolos
        return true;
      }
    });

    return tokens;
  }
}

Comentarios