コード監査規則では、修正を提供することもできます。修正は、違反を修正するためにユーザーがコード監査レポートのログ・ウィンドウから起動できるプロシージャです。 通常の修正では、不足しているコードを提供するか、または監査したコードを編集します。 規則は、違反の原因である構成メンバーをTransform
サブクラスのインスタンスにカプセル化することによって修正を提供します。 このサブクラスは、構成メンバーに対して実行されるapply
メソッドを定義する必要があります。 コード監査規則で修正を提供する必要はありません。 構成メンバーは、コード要素を表すJava Object Model(JOT)クラスのインスタンスです。 JOTメソッドを使用すると、構成メンバーを変更できます。変更するには通常、構成メンバーのテキストを変更します。
Transform
のサブクラスは、修正用の名前を取得するコンストラクタ、および修正の名前をローカライズ可能なテキストに関連付けるリソース・ファイルを提供する必要があります。
public UnderscoreFix(String name, Localizer localizer) { super(name, localizer); }
修正はapply
メソッドによって実行されます。このメソッドは、ユーザーがコード監査レポートのログ・ウィンドウで修正を選択したときに、コード監査フレームワークによってコールされます。 apply
メソッドは、その構成メンバーを必要に応じて変更する必要があります。 次の例では、修正によってフィールド名の前に"_
"が付加されます。
public void apply() { Object o = this.getConstruct(); if (o instanceof JotField) { JotField jf = (JotField)o; String _old = jf.getName(); String _new = "_" + _old; jf.setName(_new); applied = true; } }
コード監査レポートが生成される時間と修正が適用される時間の合間に、違反をトリガーしたコードが変更される可能性があります。 つまり、別の違反に適用された修正内容によってコードが変更されたり、ユーザーがコードを編集する場合があります。 このような場合は、修正を適用できません。 予期しない変更または例外を回避するには、apply
をコールする前に、フレームワークがコールする次のstatusメソッドをオーバーライドします。
isApplicable
をオーバーライドします。 true
(デフォルト)が返された場合は、apply
をコールできます。
isApplied
をオーバーライドします。 false
(デフォルト)が返された場合は、apply
をコールできます。
カスタム・コード監査規則の追加
コード監査アナライザについて
コード監査規則プロジェクトの作成、ビルドおよびデプロイ
oracle.jdeveloper.audit.transform package
oracle.jdeveloper.jot package
Copyright © 1997, 2004, Oracle. All rights reserved.