생성된 파일: 구현 코드

COBOL 규칙 템플리트 마법사는 사용자가 만든 사용자 정의 규칙을 구현하기 위해 Java™ 클래스를 생성합니다.

사용자 정의 규칙에 필요한 확인을 수행하려면 사용자 고유의 Java 코드를 이 클래스에 추가해야 합니다.

그림 1에서 사용자 정의 규칙 클래스에 생성된 코드의 예제를 보여줍니다. 이 예제는 다음과 같이 가정합니다.
  • 규칙 클래스가 com.example.CobolRule입니다(표 1 참조).
  • COBOL 규칙 템플리트 마법사 페이지에서 다음 요소를 선택했습니다.
    • IdentificationDivision
    • DataDivision
    • ProcedureDivision
생성된 코드의 다음 측면을 확인하십시오.
  • 패키지 이름이 규칙 클래스의 패키지-이름 부분으로 설정되었습니다(com.example).
  • 클래스 이름이 규칙 클래스의 클래스-이름 부분으로 설정되었습니다(CobolRule).
  • COBOL 규칙 템플리트 마법사 페이지에서 선택한 세 개 요소에 대해 각각 visit() 메소드가 생성됩니다.
그림 1. 사용자 정의 규칙을 구현하는 클래스
// 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;
  }
}

피드백