生成されたファイル: 実装コード

「COBOL 規則テンプレート」ウィザードは、ユーザー作成カスタム規則を実装するための Java™ クラスを生成します。

カスタム規則が必要とする検査を実行するには、独自の Java コードをこのクラスに追加する必要があります。

図 1 は、カスタム規則クラス用に生成されるコードの例を示しています。 この例には以下の前提事項があります。
  • 規則クラスは com.example.CobolRule です (表 1 を参照してください)。
  • COBOL 規則テンプレート」ウィザードで以下のエレメントが選択されました。
    • IdentificationDivision
    • DataDivision
    • ProcedureDivision
生成されたコードの以下の点に注意してください。
  • パッケージ名は、規則クラス com.example のパッケージ名部分に設定されます。
  • クラス名は、規則クラス CobolRule のクラス名部分に設定されます。
  • visit() メソッドは、「COBOL 規則テンプレート」ウィザードのページで選択された 3 つのエレメントごとに生成されます。
図 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;
  }
}

フィードバック