7.8.2 BytesContainerインタフェース
BytesContainerインタフェースはバイト配列を含むメッセージを送受信するために使用します。Reliable Messaging同士だけでなく,WS-Reliability1.1に準拠する他システムとデータをやり取りする際に使用できます。
- 〈この項の構成〉
(1) BytesContainerインタフェースの仕様
BytesContainerインタフェースは,バイト配列およびバイト配列のデータ型を示す値の組を1個だけ含むインタフェースです。
BytesContainerインタフェースは,次の二つの要素で構成されます。
-
バイト配列
プリミティブなバイト配列です。
-
バイト配列のデータ型
バイト配列のデータ型を示す値が入ります。
BytesContainerインタフェースの構成を次の図に示します。
(2) BytesContainerインタフェースのデータ型
BytesContainerインタフェースに含まれるバイト配列のデータ型の一覧を次の表に示します。
項番 |
データ型の種類 |
バイト配列のデータ型の内容 |
---|---|---|
1 |
HTML型 |
拡張子がhtml,htmのファイルの内容をバイト配列化したデータ |
2 |
TEXT型 |
拡張子がtxt,textのファイルの内容をバイト配列化したデータ※ |
3 |
IEF型 |
拡張子がiefのファイルの内容をバイト配列化したデータ |
4 |
TIFF型 |
拡張子がtiff, tifのファイルの内容をバイト配列化したデータ |
5 |
XWD型 |
拡張子がxwdのファイルの内容をバイト配列化したデータ |
6 |
POSTSCRIPT型 |
拡張子がai, eps, psのファイルの内容をバイト配列化したデータ |
7 |
RTF型 |
拡張子がrtfのファイルの内容をバイト配列化したデータ |
8 |
TEX型 |
拡張子がtexのファイルの内容をバイト配列化したデータ |
9 |
TEXINFO型 |
拡張子がtexinfo,texiのファイルの内容をバイト配列化したデータ |
10 |
ROFF型 |
拡張子がt,tr,roffのファイルの内容をバイト配列化したデータ |
11 |
AU型 |
拡張子がauのファイルの内容をバイト配列化したデータ |
12 |
MIDI型 |
拡張子がmidi,midのファイルの内容をバイト配列化したデータ |
13 |
AIFC型 |
拡張子がaifcのファイルの内容をバイト配列化したデータ |
14 |
AIF型 |
拡張子がaif,aiffのファイルの内容をバイト配列化したデータ |
15 |
WAV型 |
拡張子がwavのファイルの内容をバイト配列化したデータ |
16 |
MPEG型 |
拡張子がmpeg,mpg,mpeのファイルの内容をバイト配列化したデータ |
17 |
QT型 |
拡張子がqt,movのファイルの内容をバイト配列化したデータ |
18 |
AVI型 |
拡張子がaviのファイルの内容をバイト配列化したデータ |
19 |
上に示す以外の型 |
上に示す以外の内容をバイト配列化したデータ |
(3) バイト配列数の取得
BytesContainerインタフェースが保持するバイト配列の数を取得する機能を提供します。
(4) 保持する全データの消去
BytesContainerインタフェースが保持するデータ(バイト配列およびバイト配列のデータ型)をすべて消去する機能を提供します。
(5) 形式
public interface BytesContainer { public static final String TEXT_HTML; public static final String TEXT_PLAIN; public static final String IMAGE_IEF; public static final String IMAGE_TIFF; public static final String IMAGE_X_XWINDOWDUMP; public static final String APPLICATION_POSTSCRIPT; public static final String APPLICATION_RTF; public static final String APPLICATION_X_TEX; public static final String APPLICATION_X_TEXINFO; public static final String APPLICATION_X_TROFF; public static final String AUDIO_BASIC; public static final String AUDIO_MIDI; public static final String AUDIO_X_AIFC; public static final String AUDIO_X_AIFF; public static final String AUDIO_X_WAV; public static final String VIDEO_MPEG ; public static final String VIDEO_QUICKTIME; public static final String VIDEO_X_MSVIDEO; public static final String APPLICATION_OCTET_STREAM; public void addPayload(byte[] payload) throws HRMException; public void addPayload(byte[] payload, String contentType) throws HRMException; public int size(); public byte[] getPayload(int number) throws HRMException; public String getContentType(int number) throws HRMException; public void clear(); }
(6) フィールド
「(5) 形式」に記載した順序で各フィールドを説明します。
(e) IMAGE_X_XWINDOWDUMPフィールド
public static final String IMAGE_X_XWINDOWDUMP
バイト配列のデータがXWD型であることを示す値です。
(f) APPLICATION_POSTSCRIPTフィールド
public static final String APPLICATION_POSTSCRIPT
バイト配列のデータがPOSTSCRIPT型であることを示す値です。
(i) APPLICATION_X_TEXINFOフィールド
public static final String APPLICATION_X_TEXINFO
バイト配列のデータがTEXINFO型であることを示す値です。
(7) メソッド
「(5) 形式」に記載した順序で各メソッドを説明します。
(a) addPayloadメソッド
public void addPayload(byte[] payload) throws HRMException
メッセージのデータを含むbyte[]を設定します。payloadのデータ型を示す値はAPPLICATION_OCTET_STREAMになります。
BytesContainerに設定できるバイト配列の制限数は1です。
-
引数
引数名
説明
payload
メッセージのデータを含む byte[]
-
戻り値
ありません。
-
例外
例外クラス
説明
HRMIllegalArgumentException
引数payloadにnullを指定しました。
HRMException
制限数より多くのバイト配列を設定しました。または,内部エラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(b) addPayloadメソッド
public void addPayload(byte[] payload, String contentType) throws HRMException
メッセージのデータを含むbyte[]を設定します。
BytesContainerに設定できるバイト配列の制限数は1です。
引数contentTypeにTEXT_PLAINを指定した場合,引数payloadに指定する値は,UTF-8の文字コードの値として扱います。文字コードがUTF-8以外の値を指定してキュー間転送をした場合,受信側で同じ値を取得できません。
-
引数
引数名
説明
payload
メッセージのデータを含む byte[]
contentType
payloadのデータ型を示す値
-
戻り値
ありません。
-
例外
例外クラス
説明
HRMIllegalArgumentException
次のうちのどれかの状態になりました。
-
引数payloadにnullを指定した
-
引数contentTypeにnullを指定した
-
引数contentTypeにBytesContainerのフィールドで定義した値以外を設定した
HRMException
制限数より多くのバイト配列を設定しました。または,内部エラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
-
(c) sizeメソッド
public int size()
BytesContainerインタフェースが保持するバイト配列の数を返します。
-
引数
ありません。
-
戻り値
BytesContainerが保持するバイト配列の数を示す値です。
-
例外
ありません。
(d) getPayloadメソッド
public byte[] getPayload(int number) throws HRMException
引数numberで指定されたバイト配列を返します。この引数numberと同じ値をgetContentTypeメソッドの引数に指定して発行した場合の値が,TEXT_PLAINだったとき,このメソッドで取得するデータはUTF-8の文字コードで変換された値です。
-
引数
引数名
説明
number
取得するバイト配列の番号を示す値です。制限数は0です。
-
戻り値
メッセージのデータを含むbyte[]。
-
例外
例外クラス
説明
HRMIllegalArgumentException
引数numberが制限数の範囲外です。または,BytesContainerが保持するバイト配列数を超える値を引数numberに指定しました。
HRMException
内部エラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(e) getContentTypeメソッド
public String getContentType(int number) throws HRMException
引数numberで指定されたバイト配列のデータ型を返します。
-
引数
引数名
説明
number
取得するバイト配列の番号を示す値です。制限数は0です。
-
戻り値
payloadのデータ型を示す値です。
-
例外
例外クラス
説明
HRMIllegalArgumentException
引数numberが制限数の範囲外です。または,BytesContainerが保持するバイト配列数を超える値を引数numberに指定しました。
HRMException
内部エラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。