COBOL コード・レビューのカスタム規則 API と COBOL アプリケーション・モデル API (CAM) を使用して、ユーザー作成カスタム規則用に選択した COBOL 言語エレメントを分析します。
このタスクについて
COBOL コード・レビューのカスタム規則 API と COBOL アプリケーション・モデル API は補い合う関係にあります。ユーザー作成カスタム規則を実装するには、両方についてある程度の知識が必要になります。
- COBOL コード・レビューのカスタム規則 API
この API は、ユーザー作成規則のための基本クラスを提供し、COBOL アプリケーション・モデル (CAM) でのオブジェクト操作に役立つクラスを含んでいます。
この API の資料を読むには、『COBOL コード・レビューのカスタム規則 API』を参照してください。
- COBOL アプリケーション・モデル (CAM) API
この API は、COBOL コード・レビュー・コンポーネントによるプログラムの分析中に、COBOL ソース・コード・プログラムのエレメントにアクセスするためのインターフェースを提供します。
この API の資料を読むには、『COBOL アプリケーション・モデル API』を参照してください。
注: この API の概要については、トピック『パッケージ com.ibm.etools.cobol.application.model.cobol』を選択して、このトピックの末尾にスクロールして『説明』セクションをお読みください。
手順
カスタム規則のコード分析を実装するには、以下のようにします。
- 「プラグイン開発」パースペクティブを開きます。
- パッケージ・エクスプローラーで、カスタム規則用に生成された Java™ ソース・ファイルを右クリックして、とクリックします。 「パッケージ・エクスプローラー」での Java ファイルのロケーションは、 です。 例えば、のようになります。
- Java エディターで、必要に応じて、生成された各 visit() メソッドに、必要なコード分析を行うための Java コードを追加します。 visit() メソッドは、選択した COBOL 言語エレメントに応じて、COBOL アプリケーション・モデル・インターフェースの非抽象サブインターフェースごとに生成されます。 例えば、作成ウィザードの 3 ページ目の「プログラム」ツリーで ACCEPT エレメントを選択したとします。
- ACCEPT に対応する CAM インターフェースは、AcceptStmt インターフェースです。
- 「既知のサブインタフェースの一覧」見出しの下にある AcceptStmt インターフェースの Javadoc 情報では、AcceptStmt に 2 つのサブインターフェース (AcceptDataTranferStmt と AcceptSystemInfoTransferStmt) があることが示されています。
- 2 つの各サブインターフェースに 1 つずつで合計 2 つの visit() メソッドが生成されます。
注: - visit() メソッドは、ICOBOLVisitor インターフェースに属しています。
これは、COBOL コード・レビューのカスタム規則 API の com.ibm.rsar.analysis.codereview.cobol.custom.model.util パッケージ内にあります。 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() メソッドを開始します。
- 各 visit() メソッドに、以下の機能のための Java コードを追加します。
- 終了したら、Java エディターを閉じます。