COBOL 애플리케이션 모델 API를 사용한 코딩 분석 기능

사용자가 만든 사용자 정의 규칙에 대해 선택한 COBOL 언어 요소를 분석하려면 COBOL 코드 검토용 사용자 정의 규칙 API 및 COBOL 애플리케이션 모델(CAM) API를 사용하십시오.

이 태스크 정보

COBOL 코드 검토용 사용자 정의 규칙 API 및 COBOL 애플리케이션 모델 API는 상호 보완적입니다. 사용자가 만든 사용자 정의 규칙을 구현하려면 이 두 API의 몇 가지 지식이 필요합니다.

프로시저

사용자 정의 규칙에 대한 코드 분석을 구현하려면 다음을 수행하십시오.

  1. 플러그인 개발 퍼스펙티브를 여십시오.
  2. 패키지 탐색기에서 사용자 정의 규칙에 대해 생성된 Java™ 소스 파일을 마우스 오른쪽 단추로 클릭하고 연결 프로그램 > Java 편집기를 클릭하십시오. 패키지 탐색기에서 Java 파일의 위치는 project_name > src > package_name > class_name.java입니다. 예: MyPluginProject > src > com.example > CobolRule.java.
  3. Java 편집기에서 필수 코드 분석을 수행하기 위해 생성된 각 visit() 메소드에 Java 코드를 필요한 대로 추가하십시오. 선택한 COBOL 언어 요소에 상응하는 COBOL 애플리케이션 모델 인터페이스의 비추상적 서브인터페이스에 대해 visit() 메소드가 생성됩니다. 예를 들어, 작성 마법사의 세 번째 페이지에 있는 프로그램 트리에서 ACCEPT 요소를 선택했다고 가정하십시오.
    • ACCEPT에 해당하는 CAM 인터페이스는 AcceptStmt 인터페이스입니다.
    • 모든 알려진 서브인터페이스 표제 아래에서 AcceptStmt 인터페이스의 Javadoc 정보가 AcceptStmtAcceptDataTranferStmtAcceptSystemInfoTransferStmt라는 두 개의 서브인터페이스가 있다고 표시합니다.
    • 두 서브인터페이스에 각각 하나씩 두 개의 visit() 메소드가 생성됩니다.
    참고:
    • visit() 메소드는 COBOL 코드 검토용 사용자 정의 규칙 API의 com.ibm.rsar.analysis.codereview.cobol.custom.model.util 패키지에서 인터페이스 ICOBOLVisitor에 속합니다. ICOBOLVistor를 직접 구현하지 말고 AbstractCOBOLVisitor 서브클래스로 구현하십시오. 다음 예제는 생성된 visit() 메소드를 보여줍니다.
      • boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptDataTransferStmt n)
      • boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptSystemInfoTransferStmt n)
    • visit() 메소드에 대한 입력으로 전달된 노드는 COBOL 애플리케이션 모델(CAM) API의 com.ibm.etools.cobol.application.model.cobol 패키지에서 인터페이스 ASTNode의 서브인터페이스입니다.
    COBOL 소스 파일을 분석할 때 코드 분석기는 상응하는 ASTNode 인스턴스가 있을 때마다 visit() 메소드를 시작합니다.
  4. visit() 메소드에서 다음 기능에 대해 Java 코드를 추가하십시오.
    • visit() 메소드에 대한 입력으로 전달되는 ASTNode n을 사용하여 분석 중인 COBOL 언어 요소 인스턴스에 대한 정보를 구합니다. 예를 들어, Identification Division의 프로그램 ID 속성을 구하려면(여기서 n은 IdentificationDivision 오브젝트임) 다음을 작성합니다.
      String myProgramID = n.getProgramId();
    • 사용자 정의 규칙에 필요한 코드 분석을 수행합니다. 규칙에 대해 둘 이상의 visit() 메소드가 있는 경우, 개별 visit() 메소드의 결과를 조정하기 위해 Java 코드를 작성해야 할 수도 있습니다.
    • 리턴 코드 및 리턴 정보를 설정합니다. 현재 노드의 방문하는 하위 노드를 계속하려면 true를 리턴하고, 방문하는 하위 노드를 건너뛰려면 false를 리턴합니다. 분석하는 COBOL 언어 요소가 규칙을 위반한 경우 해당 노드를 토큰 목록에 추가하십시오.
  5. 완료하면 Java 편집기를 닫으십시오.

피드백