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 を代わりに使用します。

戻り値:
アクセス可能な raw データの InputStream 生のデータは AttachmentPart に含まれている
例外:
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 でエンコードされて返ります。

戻り値:
読み込み可能な Base64 でエンコードされた AttachmentPartInputStream
例外:
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 配列
戻り値:
指定の配列の名前のいずれにも一致しない、 この AttachmentPart オブジェクトの すべての MIME ヘッダー。一致しない MIME ヘッダーは Iterator オブジェクトとして返る

JavaTM Platform
Standard Ed. 6

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

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