JavaTM Platform
Standard Ed. 6

javax.xml.soap
クラス AttachmentPart

java.lang.Object
  上位を拡張 javax.xml.soap.AttachmentPart

public abstract class AttachmentPart
extends Object

SOAPMessage オブジェクトへの個々の添付です。SOAPMessage オブジェクトには 1 つ以上の AttachmentPart オブジェクトを追加できます (追加しないことも可能)。各 AttachmentPart オブジェクトは、アプリケーション固有のコンテンツとそれに関連する MIME ヘッダーの 2 つで構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用する名前と値のペアで構成されています。

AttachmentPart オブジェクトは次の規格と条件を満たしている必要があります。

  1. MIME [RFC2045] 規格
  2. コンテンツを保有していること
  3. ヘッダー部分に次のヘッダー内容を含むこと

AttachmentPart オブジェクトのコンテンツに関しては制限がありません。単純なテキストオブジェクトから複雑な XML ドキュメントやイメージファイルまでコンテンツにできます。

AttachmentPart オブジェクトは SOAPMessage.createAttachmentPart メソッドで作成されます。MIME ヘッダー設定後、SOAPMessage.addAttachmentPart で作成された AttachmentPart オブジェクトはメッセージに追加されます。

次のコードの抜粋 (mSOAPMessage オブジェクト、contentStringlString オブジェクト) は、AttachmentPart オブジェクトのインスタンスの作成、コンテンツとヘッダー情報による AttachmentPart オブジェクトの設定、SOAPMessage オブジェクトへの AttachmentPart オブジェクトの追加を実行する方法を示しています。

     AttachmentPart ap1 = m.createAttachmentPart();
     ap1.setContent(contentString1, "text/plain");
     m.addAttachmentPart(ap1);
 

次のコードの抜粋は、同メッセージに 2 番目の AttachmentPart インスタンスを作成、追加する方法を示しています。jpegData は、JPEG ファイルを意味するバイナリの byte バッファーです。

     AttachmentPart ap2 = m.createAttachmentPart();
     byte[] jpegData =  ...;
     ap2.setContent(new ByteArrayInputStream(jpegData), "image/jpeg");
     m.addAttachmentPart(ap2);
 

getContent メソッドは、AttachmentPart オブジェクトからコンテンツとヘッダーを取得します。DataContentHandler オブジェクトが存在しているかしていないかにより、返される Object が MIME タイプに対応した Java オブジェクトか、バイトのコンテンツを含む InputStream オブジェクトかに分かれます。

     String content1 = ap1.getContent();
     java.io.InputStream content2 = ap2.getContent();
 
clearContent メソッドを使用すると AttachmentPart オブジェクトのすべてのコンテンツが削除されます。ヘッダー情報に影響はありません。
     ap1.clearContent();
 


コンストラクタの概要
AttachmentPart()
           
 
メソッドの概要
abstract  void addMimeHeader(String name, String value)
          指定の名前と値を持つ MIME ヘッダーを AttachmentPart オブジェクトに追加します。
abstract  void clearContent()
          この AttachmentPart オブジェクトのコンテンツをクリアします。
abstract  Iterator getAllMimeHeaders()
          この AttachmentPart オブジェクトのすべてのヘッダーを MimeHeader オブジェクトの反復子として取得します。
abstract  InputStream getBase64Content()
          AttachmentPart のコンテンツを Base64 でエンコードされた文字データとして取得できる InputStream を返します。
abstract  Object getContent()
          この AttachmentPart オブジェクトのコンテンツを Java オブジェクトとして取得します。
 String getContentId()
          名前が "Content-ID" の MIME ヘッダーの値を取得します。
 String getContentLocation()
          名前が "Content-Location" の MIME ヘッダーの値を取得します。
 String getContentType()
          名前が "Content-Type" の MIME ヘッダーの値を取得します。
abstract  DataHandler getDataHandler()
          この AttachmentPart オブジェクトの DataHandler オブジェクトを取得します。
abstract  Iterator getMatchingMimeHeaders(String[] names)
          指定した配列内の名前に一致するすべての MimeHeader オブジェクトを取得します。
abstract  String[] getMimeHeader(String name)
          指定の String で識別されたヘッダーの値をすべて取得します。
abstract  Iterator getNonMatchingMimeHeaders(String[] names)
          指定した配列内の名前に一致しないすべての MimeHeader オブジェクトを取得します。
abstract  InputStream getRawContent()
          GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPartcontent-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。
abstract  byte[] getRawContentBytes()
          GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPartcontent-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを byte[] 配列として取得します。
abstract  int getSize()
          この AttachmentPart オブジェクトのバイト数を返します。
abstract  void removeAllMimeHeaders()
          MIME ヘッダーのエントリをすべて削除します。
abstract  void removeMimeHeader(String header)
          指定した名前に一致する MIME ヘッダーをすべて削除します。
abstract  void setBase64Content(InputStream content, String contentType)
          Base64 のソース InputStream からこの添付部分のコンテンツを設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。
abstract  void setContent(Object object, String contentType)
          この添付部分のコンテンツを指定の Object のコンテンツに設定し、Content-Type ヘッダーの値を指定のタイプにします。
 void setContentId(String contentId)
          名前が "Content-ID" の MIME ヘッダーを指定の値で設定します。
 void setContentLocation(String contentLocation)
          名前が "Content-Location" の MIME ヘッダーを指定の値で設定します。
 void setContentType(String contentType)
          名前が "Content-Type" の MIME ヘッダーを指定の値で設定します。
abstract  void setDataHandler(DataHandler dataHandler)
          指定の DataHandler オブジェクトを AttachmentPart オブジェクトのデータハンドラとして設定します。
abstract  void setMimeHeader(String name, String value)
          指定の名前に一致する、最初のヘッダーエントリを指定の値に変更します。
abstract  void setRawContent(InputStream content, String contentType)
          この添付部分のコンテンツを InputStream content に含まれるものとして設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。
abstract  void setRawContentBytes(byte[] content, int offset, int len, String contentType)
          この添付部分のコンテンツを byte[] 配列の content に含まれるものとして設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AttachmentPart

public AttachmentPart()
メソッドの詳細

getSize

public abstract int getSize()
                     throws SOAPException
この AttachmentPart オブジェクトのバイト数を返します。

戻り値:
この AttachmentPart オブジェクトのサイズ (バイト数)、または -1 (サイズを決定できない場合)
例外:
SOAPException - この添付のコンテンツが破損している場合、またはサイズを判定中に例外が発生した場合

clearContent

public abstract void clearContent()
この AttachmentPart オブジェクトのコンテンツをクリアします。MIME ヘッダー部分はそのまま残ります。


getContent

public abstract Object getContent()
                           throws SOAPException
この AttachmentPart オブジェクトのコンテンツを Java オブジェクトとして取得します。返された Java オブジェクトの型は、バイトの解釈に使用する (1) DataContentHandler オブジェクトと、ヘッダーで指定されている (2) Content-Type によって異なります。

MIME コンテンツタイプが "text/plain"、"text/html"、"text/xml" の場合、DataContentHandler オブジェクトは MIME タイプに対応する Java タイプとの変換を実行します。ほかの MIME タイプの場合、DataContentHandler オブジェクトは、raw バイトのコンテンツデータを含む InputStream オブジェクトを返します。

SAAJ に準拠した実装では少なくとも、text/plainContent-Type の値を持つコンテンツストリームに対応した java.lang.String オブジェクト、text/xmlContent-Type の値を持つコンテンツストリームに対応した javax.xml.transform.stream.StreamSource オブジェクト、image/gif または image/jpegContent-Type の値を持つコンテンツストリームに対応した java.awt.Image オブジェクトを返す必要があります。インストールした DataContentHandler オブジェクトが解釈できないコンテンツタイプの場合、DataContentHandler オブジェクトは raw バイトで java.io.InputStream オブジェクトを返す必要があります。

戻り値:
この AttachmentPart オブジェクトのコンテンツを持つ Java オブジェクト
例外:
SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合

getRawContent

public abstract InputStream getRawContent()
                                   throws SOAPException
GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPartcontent-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。

返された InputStream から読み込むと、ストリームのデータが消費されるので注意してください。呼び出し側は次の API を呼び出す前に、InputStream を適切にリセットする必要があります。生の添付コンテンツのコピーが必要な場合、getRawContentBytes() API を代わりに使用します。

戻り値:
InputStreamAttachmentPart に含まれている raw データにこの InputStream からアクセスできる
例外:
SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合
導入されたバージョン:
SAAJ 1.3
関連項目:
getRawContentBytes()

getRawContentBytes

public abstract byte[] getRawContentBytes()
                                   throws SOAPException
GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPartcontent-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを byte[] 配列として取得します。

戻り値:
AttachmentPart の raw データを含む byte[] 配列
例外:
SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合
導入されたバージョン:
SAAJ 1.3

getBase64Content

public abstract InputStream getBase64Content()
                                      throws SOAPException
AttachmentPart のコンテンツを Base64 でエンコードされた文字データとして取得できる InputStream を返します。このメソッドを使用すると、添付の raw バイトが Base64 でエンコードされて返ります。

戻り値:
InputStream。Base64 でエンコードされた AttachmentPart をこの InputStream から読み込むことができる
例外:
SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合
導入されたバージョン:
SAAJ 1.3

setContent

public abstract void setContent(Object object,
                                String contentType)
この添付部分のコンテンツを指定の Object のコンテンツに設定し、Content-Type ヘッダーの値を指定のタイプにします。Object の型は、Content-Type で指定した値に対応する必要があります。これは、使用中の DataContentHandler オブジェクトの特定のセットによって異なります。

パラメータ:
object - この添付部分のコンテンツを構成する Java オブジェクト
contentType - コンテンツタイプを指定する MIME 文字列
例外:
IllegalArgumentException - contentType がコンテンツオブジェクトのタイプと一致しない場合、またはこのコンテンツオブジェクトに DataContentHandler オブジェクトがない場合に、スローされることがある
関連項目:
getContent()

setRawContent

public abstract void setRawContent(InputStream content,
                                   String contentType)
                            throws SOAPException
この添付部分のコンテンツを InputStream content に含まれるものとして設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。

以降の getSize() の呼び出しは正確なコンテンツサイズでない場合があります。

パラメータ:
content - 添付部分に追加する raw データ
contentType - Content-Type ヘッダーに設定する値
例外:
SOAPException - コンテンツの設定でエラーが発生した場合
NullPointerException - content が null の場合
導入されたバージョン:
SAAJ 1.3

setRawContentBytes

public abstract void setRawContentBytes(byte[] content,
                                        int offset,
                                        int len,
                                        String contentType)
                                 throws SOAPException
この添付部分のコンテンツを byte[] 配列の content に含まれるものとして設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。

パラメータ:
content - 添付部分に追加する raw データ
contentType - Content-Type ヘッダーに設定する値
offset - コンテンツのバイト配列内のオフセット
len - コンテンツを形成するバイト数
例外:
SOAPException - コンテンツの設定でエラーが発生した場合、または content が null の場合
導入されたバージョン:
SAAJ 1.3

setBase64Content

public abstract void setBase64Content(InputStream content,
                                      String contentType)
                               throws SOAPException
Base64 のソース InputStream からこの添付部分のコンテンツを設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。このメソッドにより、Base64 の入力内容は最初に復号化され、最終的に raw バイトが添付部分に書き込まれます。

以降の getSize() の呼び出しは正確なコンテンツサイズでない場合があります。

パラメータ:
content - 添付部分に追加する Base64 でエンコードされたデータ
contentType - Content-Type ヘッダーに設定する値
例外:
SOAPException - コンテンツの設定でエラーが発生した場合
NullPointerException - content が null の場合
導入されたバージョン:
SAAJ 1.3

getDataHandler

public abstract DataHandler getDataHandler()
                                    throws SOAPException
この AttachmentPart オブジェクトの DataHandler オブジェクトを取得します。

戻り値:
この AttachmentPart オブジェクトに関連した DataHandler オブジェクト
例外:
SOAPException - この AttachmentPart オブジェクトにデータがない場合

setDataHandler

public abstract void setDataHandler(DataHandler dataHandler)
指定の DataHandler オブジェクトを AttachmentPart オブジェクトのデータハンドラとして設定します。通常、着信メッセージには、データハンドラが自動的に設定されます。メッセージの作成中やコンテンツによるメッセージの生成中に setDataHandler メソッドを使用して、さまざまなデータソースのデータをメッセージに組み込むことができます。

パラメータ:
dataHandler - 設定する DataHandler オブジェクト
例外:
IllegalArgumentException - 指定した DataHandler オブジェクトに問題があった場合

getContentId

public String getContentId()
名前が "Content-ID" の MIME ヘッダーの値を取得します。

戻り値:
"Content-ID" ヘッダーの値を示す String。存在しない場合は null
関連項目:
setContentId(java.lang.String)

getContentLocation

public String getContentLocation()
名前が "Content-Location" の MIME ヘッダーの値を取得します。

戻り値:
"Content-Location" ヘッダーの値を示す String。存在しない場合は null

getContentType

public String getContentType()
名前が "Content-Type" の MIME ヘッダーの値を取得します。

戻り値:
"Content-Type" ヘッダーの値を示す String。存在しない場合は null

setContentId

public void setContentId(String contentId)
名前が "Content-ID" の MIME ヘッダーを指定の値で設定します。

パラメータ:
contentId - "Content-ID" ヘッダーの値を示す String
例外:
IllegalArgumentException - 指定した contentId 値に問題があった場合
関連項目:
getContentId()

setContentLocation

public void setContentLocation(String contentLocation)
名前が "Content-Location" の MIME ヘッダーを指定の値で設定します。

パラメータ:
contentLocation - "Content-Location" ヘッダーの値を示す String
例外:
IllegalArgumentException - 指定したコンテンツの場所に問題があった場合

setContentType

public void setContentType(String contentType)
名前が "Content-Type" の MIME ヘッダーを指定の値で設定します。

パラメータ:
contentType - "Content-Type" ヘッダーの値を示す String
例外:
IllegalArgumentException - 指定したコンテンツタイプに問題があった場合

removeMimeHeader

public abstract void removeMimeHeader(String header)
指定した名前に一致する MIME ヘッダーをすべて削除します。

パラメータ:
header - 削除する MIME ヘッダーの文字列名

removeAllMimeHeaders

public abstract void removeAllMimeHeaders()
MIME ヘッダーのエントリをすべて削除します。


getMimeHeader

public abstract String[] getMimeHeader(String name)
指定の String で識別されたヘッダーの値をすべて取得します。

パラメータ:
name - ヘッダーの名前。例: "Content-Type"
戻り値:
指定のヘッダーの値を示す String 配列
関連項目:
setMimeHeader(java.lang.String, java.lang.String)

setMimeHeader

public abstract void setMimeHeader(String name,
                                   String value)
指定の名前に一致する、最初のヘッダーエントリを指定の値に変更します。既存のヘッダーで一致するものがない場合、新たにヘッダーを追加します。また、このメソッドは、一致するヘッダーの最初のエントリ以外をすべて削除します。

RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。

パラメータ:
name - 検索するヘッダーの名前を指定する String
value - 指定の名前と一致するヘッダーに設定する値を示す String
例外:
IllegalArgumentException - 指定した MIME ヘッダー名または値に問題があった場合

addMimeHeader

public abstract void addMimeHeader(String name,
                                   String value)
指定の名前と値を持つ MIME ヘッダーを AttachmentPart オブジェクトに追加します。

RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。

パラメータ:
name - 追加するヘッダーの名前を示す String
value - 追加するヘッダーの値を示す String
例外:
IllegalArgumentException - 指定した MIME ヘッダー名または値に問題があった場合

getAllMimeHeaders

public abstract Iterator getAllMimeHeaders()
この AttachmentPart オブジェクトのすべてのヘッダーを MimeHeader オブジェクトの反復子として取得します。

戻り値:
この AttachmentPart オブジェクトの MIME ヘッダーすべてを含む Iterator オブジェクト

getMatchingMimeHeaders

public abstract Iterator getMatchingMimeHeaders(String[] names)
指定した配列内の名前に一致するすべての MimeHeader オブジェクトを取得します。

パラメータ:
names - 取得する MIME ヘッダーの名前を含む String 配列
戻り値:
指定した配列内の名前の 1 つと一致する MIME ヘッダーすべてを、Iterator オブジェクトとして返す

getNonMatchingMimeHeaders

public abstract Iterator getNonMatchingMimeHeaders(String[] names)
指定した配列内の名前に一致しないすべての MimeHeader オブジェクトを取得します。

パラメータ:
names - 取得しない MIME ヘッダーの名前を含む String 配列
戻り値:
指定した配列内の名前の 1 つに一致するものを除く、この AttachmentPart オブジェクト内のすべての MIME ヘッダー。一致しない MIME ヘッダーは、Iterator オブジェクトとして返される

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。