拡張データ・エレメント記述は、ExtendedDataElementDescription クラスのインスタンスです。
このタスクを実行する理由および時期
拡張データ・エレメント記述をイベント定義に追加するには、最初に新規の拡張データ・エレメント記述を作成し、次に、そのフィールドに値を設定します。
また、ネストされた拡張データ・エレメントを記述する、ネスト (子) 拡張データ・エレメント記述の追加も可能です。
その後、イベント定義にその拡張データ・エレメント記述を追加します。
このタスクの手順
- 新規の拡張データ・エレメント記述を作成するには、拡張データ・エレメントの名前およびタイプを指定して、ExtendedDataElementDescription のインスタンスを作成します。
ExtendedDataElementDescription edeDesc =
new ExtendedDataElementDescription(name, type);
このコンストラクターのパラメーターは、以下の通りです。- name
- 拡張データ・エレメントの名前。
これは、記述する拡張データ・エレメントの name プロパティーの値にする必要があります。
- type
- 拡張データ・エレメントのデータ型。これは、org.eclipse.hyades.logging.events.cbe.ExtendedDataElement クラスで定義された以下の整数定数のいずれかにする必要があります。
- TYPE_BOOLEAN_ARRAY_VALUE
- TYPE_BOOLEAN_VALUE
- TYPE_BYTE_ARRAY_VALUE
- TYPE_BYTE_ARRAY
- TYPE_DATE_TIME_ARRAY_VALUE
- TYPE_DATE_TIME_VALUE
- TYPE_DOUBLE_ARRAY_VALUE
- TYPE_DOUBLE_VALUE
- TYPE_FLOAT_ARRAY_VALUE
- TYPE_FLOAT_VALUE
- TYPE_HEX_BINARY_VALUE
- TYPE_INT_ARRAY_VALUE
- TYPE_INT_VALUE
- TYPE_LONG_ARRAY_VALUE
- TYPE_LONG_VALUE
- TYPE_NO_VALUE_VALUE
- TYPE_SHORT_ARRAY_VALUE
- TYPE_SHORT_VALUE
- TYPE_STRING_ARRAY_VALUE
- TYPE_STRING_VALUE
戻されるオブジェクトは、新規の ExtendedDataElementDescription オブジェクトです。
- 拡張データ・エレメント記述のフィールドにデータを取り込みます。 ExtendedDataElementDescription クラスには、拡張データ・エレメント記述の各フィールド用の setter メソッドがあります。
それらのメソッドについて詳しくは、Javadoc API 資料を参照してください。 例えば、拡張データ・エレメントが最低 1 回は発生するよう指定するには、次のように setMaxOccurs(int) メソッドを使用して、maxOccurs プロパティーを 4 に設定します。
edeDesc.setMaxOccurs(4);
- オプション: 子の拡張データ・エレメント記述を追加するには、ExtendedDataElementDescription.addChild() メソッドを使用します。
edeDesc.addChild(childEdeDesc);
childEdeDesc パラメーターは、有効な拡張データ・エレメント記述である必要があります。
- EventDefinition.addExtendedDataElementDescription() メソッドを使用し、拡張データ・エレメント記述をイベント定義に追加します。
definition.addExtendedDataElementDescription(edeDesc);
そのイベント定義に同じ名前およびパスで別の拡張データ・エレメント記述が既に含まれている場合は、DescriptionExistsException 例外がスローされます。
例
以下のコード・フラグメントでは、新規の拡張データ・エレメント記述を作成し、データを取り込み、イベント定義に追加します。
ExtendedDataElementDescription edeDesc =
new ExtendedDataElementDescription("age", TYPE_SHORT_VALUE);
edeDesc.setMinOccurs(1);
edeDesc.setMaxOccurs(1);
// definition is a valid event definition
definition.addExtendedDataElementDescription(edeDesc);