Codificación de funciones de análisis mediante las API de Modelo de aplicación COBOL

Utilice las API de Reglas personalizadas para Revisión de código COBOL y la API de Modelo de aplicación COBOL (CAM) para analizar los elementos de lenguaje COBOL seleccionados para su regla personalizada escrita por usuario.

Acerca de esta tarea

Las API de Reglas personalizadas para Revisión de código COBOL y las API de Modelo de aplicación COBOL son complementarias. Se necesita algún conocimiento de ambas para implementar una regla personalizada escrita por el usuario:

Procedimiento

Para implementar el análisis de código para una regla personalizada:

  1. Abra la perspectiva Desarrollo de plug-ins.
  2. En el Explorador de paquetes, pulse el botón derecho del ratón sobre el archivo fuente Java™ generado para la regla personalizada y a continuación pulse Abrir con > Editor Java. La ubicación del archivo Java en el Explorador de paquetes es nombre_proyecto > src > nombre_paquete > nombre_clase.java. Por ejemplo: MiProyectoPlugin > src > com.ejemplo > ReglaCobol.java.
  3. En el editor Java, añada código Java según sea necesario a cada uno de los métodos visit() generados para hacer el análisis de código necesario. Se genera un método visit() para cada subinterfaz no abstracta de la interfaz del Modelo de aplicación Cobol correspondiente al elemento de lenguaje COBOL seleccionado. Por ejemplo, supongo que ha seleccionado el elemento ACCEPT en el árbol Programa, en la tercera página del asistente de creación:
    • La interfaz CAM correspondiente a ACCEPT es la interfaz AcceptStmt.
    • La información Javadoc para la interfaz AcceptStmt muestra, bajo la cabecera Todas las subinterfaces conocidas que AcceptStmt tiene dos subinterfaces: AcceptDataTranferStmt y AcceptSystemInfoTransferStmt.
    • Se generan dos métodos visit(), uno para cada una de las dos subinterfaces.
    Nota:
    • Los métodos visit() pertenecen a la interfaz ICOBOLVisitor, en el paquete com.ibm.rsar.analysis.codereview.cobol.custom.model.util, en la API Reglas personalizadas para la Revisión de código COBOL. No implemente ICOBOLVistor directamente, en su lugar, cree una subclase de AbstractCOBOLVisitor. Los ejemplos siguientes muestran los métodos visit() generados:
      • boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptDataTransferStmt n)
      • boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptSystemInfoTransferStmt n)
    • El nodo que se pasa como entrada a un método visit() es una subinterfaz de la interfaz ASTNode en el paquete com.ibm.etools.cobol.application.model.cobol en la API de Modelo de aplicación COBOL (CAM).
    Cuando se analiza un archivo fuente COBOL, el analizador de código inicia un método visit() siempre que encuentra una instancia del ASTNode correspondiente.
  4. En cada método visit(), añada código Java para las funciones siguientes:
    • Utilice el ASTNode n que se pasa como entrada al método visit() para obtener información sobre la instancia del elemento de lenguaje COBOL que está analizando. Por ejemplo, para obtener el atributo de ID de programa de la división de identificación, donde n es un objeto IdentificationDivision, puede escribir:
      String myProgramID = n.getProgramId();
    • Realice el análisis de código necesario para la regla personalizada. Si tiene más de un método visit() para su regla, probablemente también deberá escribir código Java para coordinar los resultados de los métodos visit() individuales.
    • Establezca el código de retorno y la información de retorno. Devuelva true para seguir visitando nodos hijo del nodo actual o false para saltarse la visita de los nodos hijo. Si el elemento de lenguaje COBOL que se está analizando viola la regla, añada el nodo correspondiente a la lista de símbolos.
  5. Cuando haya terminado, cierre el editor Java.

Comentarios