NETJVM 

属性、カスタム属性

属性 (以前のカスタム属性) は、プログラム内の要素に関する追加情報を提供する場合に使用される。COBOL プログラムで使用される構文の多くは、メソッドやフィールドの可視性 (PUBLIC、PRIVATE、PROTECTED など) といったプログラム要素を記述する。これらの記述はすべて、コンパイラーから出力される dll または exe ファイルにメタデータとして埋め込まれ、リフレクションを使用して他のプログラムから問い合わせを行うことができる。属性は、無期限かつ無制限にメタデータをプログラム要素に追加する方法である。属性は、予約語 ATTRIBUTE を使用して COBOL 項目に付加する。

属性を使用して、メソッド、データ項目、プロパティ、イベント、デリゲート、メソッド パラメーター、アセンブリ、クラス、メソッド戻り値を記述できる。

属性に指定する引数は、次の 2 種類。

次に例を示す。

 01 a binary-long attribute xml("UpperB").

属性の指定で使用される通常のパラメーターは、属性で定義されるコンストラクターと一致する必要がある。上記の例では、コンストラクターは文字列型の単一パラメーターを予測する。

次に別の例を示す。

attribute WebService(NAME Description="My service")

指名されたパラメーターは、属性で定義されるプロパティと一致する必要がある。この例では、Description は、属性クラス WebService に定義される文字列型のプロパティである。

COBOL でサポートされている属性は、その他の JVM 対応言語でサポートされているアノテーションとほぼ同じである。