|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.xml.soap.AttachmentPart
public abstract class AttachmentPart
SOAPMessage オブジェクトへの個々の添付です。SOAPMessage オブジェクトには 1 つ以上の AttachmentPart オブジェクトを追加できます (追加しないことも可能)。各 AttachmentPart オブジェクトは、アプリケーション固有のコンテンツとそれに関連する MIME ヘッダーの 2 つで構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用する名前と値のペアで構成されています。
AttachmentPart オブジェクトは次の規格と条件を満たしている必要があります。
Content-TypeAttachmentPart オブジェクトのデータの型を指定。[RFC2045] に準拠する必要があります。Content-Type ヘッダーの例を次に示します。
Content-Type:application/xml
次のコード (ap は AttachmentPart オブジェクト) で上記の例のヘッダーを設定します。
ap.setMimeHeader("Content-Type", "application/xml");
AttachmentPart オブジェクトのコンテンツに関しては制限がありません。単純なテキストオブジェクトから複雑な XML ドキュメントやイメージファイルまでコンテンツにできます。
AttachmentPart オブジェクトは SOAPMessage.createAttachmentPart メソッドで作成されます。MIME ヘッダー設定後、SOAPMessage.addAttachmentPart で作成された AttachmentPart オブジェクトはメッセージに追加されます。
次のコードの抜粋 (m は SOAPMessage オブジェクト、contentStringl は String オブジェクト) は、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 がこの AttachmentPart の content-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。 |
abstract byte[] |
getRawContentBytes()
GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPart の content-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 |
| コンストラクタの詳細 |
|---|
public AttachmentPart()
| メソッドの詳細 |
|---|
public abstract int getSize()
throws SOAPException
AttachmentPart オブジェクトのバイト数を返します。
AttachmentPart オブジェクトのサイズ (バイト数)、
または -1 (サイズを決定できない場合)
SOAPException - この添付のコンテンツが
破損している場合、またはサイズを決定中に
例外が発生した場合public abstract void clearContent()
AttachmentPart オブジェクトのコンテンツをクリアします。MIME ヘッダー部分はそのまま残ります。
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/plain の Content-Type の値を持つコンテンツストリームに対応した java.lang.String オブジェクト、text/xml の Content-Type の値を持つコンテンツストリームに対応した javax.xml.transform.stream.StreamSource オブジェクト、image/gif または image/jpeg の Content-Type の値を持つコンテンツストリームに対応した java.awt.Image オブジェクトを返す必要があります。インストールした DataContentHandler オブジェクトが解釈できないコンテンツタイプの場合、DataContentHandler オブジェクトは raw バイトで java.io.InputStream オブジェクトを返す必要があります。
AttachmentPart オブジェクトのコンテンツを持つ Java
オブジェクト
SOAPException - この
AttachmentPart オブジェクトにコンテンツが設定されていない場合、
またはデータ変換エラーが発生した場合
public abstract InputStream getRawContent()
throws SOAPException
GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPart の content-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。
返された InputStream から読み込むと、ストリームのデータが消費されるので注意してください。呼び出し側は次の API を呼び出す前に、InputStream を適切にリセットする必要があります。生の添付コンテンツのコピーが必要な場合、getRawContentBytes() API を代わりに使用します。
InputStream
生のデータは AttachmentPart に含まれている
SOAPException - この
AttachmentPart オブジェクトにコンテンツが設定されていない場合、
またはデータ変換エラーが発生した場合getRawContentBytes()
public abstract byte[] getRawContentBytes()
throws SOAPException
GetContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPart の content-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを byte[] 配列として取得します。
byte[]
配列
SOAPException - この
AttachmentPart オブジェクトにコンテンツが設定されていない場合、
またはデータ変換エラーが発生した場合
public abstract InputStream getBase64Content()
throws SOAPException
AttachmentPart のコンテンツを Base64 でエンコードされた文字データとして取得できる InputStream を返します。このメソッドを使用すると、添付の raw バイトが Base64 でエンコードされて返ります。
AttachmentPart の
InputStream
SOAPException - この
AttachmentPart オブジェクトにコンテンツが設定されていない場合、
またはデータ変換エラーが発生した場合
public abstract void setContent(Object object,
String contentType)
Object のコンテンツに設定し、Content-Type ヘッダーの値を指定のタイプにします。Object の型は Content-Type に指定された値に対応させる必要があります。これは、使用中の DataContentHandler オブジェクトの特定のセットによって異なります。
object - この添付部分のコンテンツを
構成する Java オブジェクトcontentType - コンテンツタイプを指定する
MIME の文字列
IllegalArgumentException - contentType がコンテンツオブジェクトのタイプと一致しない場合、
またはこのコンテンツオブジェクトに
DataContentHandler オブジェクトがない場合に
スローされるgetContent()
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 の場合
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 の場合
public abstract void setBase64Content(InputStream content,
String contentType)
throws SOAPException
InputStream からこの添付部分のコンテンツを設定し、Content-Type ヘッダーの値を contentType に含まれる値にします。このメソッドにより、Base64 の入力内容は最初に復号化され、最終的に raw バイトが添付部分に書き込まれます。 以降の getSize() の呼び出しは正確なコンテンツサイズでない場合があります。
content - 添付部分に追加する Base64 でエンコードされたデータcontentType - Content-Type ヘッダーに
設定する値
SOAPException - コンテンツの設定でエラーが発生した場合
NullPointerException - content が null の場合
public abstract DataHandler getDataHandler()
throws SOAPException
AttachmentPart オブジェクトの DataHandler オブジェクトを取得します。
AttachmentPart オブジェクトに関連した DataHandler オブジェクト
SOAPException - この
AttachmentPart オブジェクトにデータがない場合public abstract void setDataHandler(DataHandler dataHandler)
DataHandler オブジェクトを AttachmentPart オブジェクトのデータハンドラとして設定します。通常、着信メッセージには、データハンドラが自動的に設定されます。メッセージの作成中やコンテンツによるメッセージの生成中に setDataHandler メソッドを使用して、さまざまなデータソースのデータをメッセージに組み込むことができます。
dataHandler - 設定する DataHandler オブジェクト
IllegalArgumentException - 指定の
DataHandler オブジェクトに問題が発生した場合public String getContentId()
String、
または何もない場合
nullsetContentId(java.lang.String)public String getContentLocation()
String、
または何もない場合
nullpublic String getContentType()
String、
または何もない場合
nullpublic void setContentId(String contentId)
contentId - "Content-ID" ヘッダーの値を提供する
String
IllegalArgumentException - 指定の
contentId 値に問題が発生した場合getContentId()public void setContentLocation(String contentLocation)
contentLocation - "Content-Location" ヘッダーの値を提供する
String
IllegalArgumentException - 指定の
コンテンツの場所に問題が発生した場合public void setContentType(String contentType)
contentType - "Content-Type" ヘッダーの値を提供する
String
IllegalArgumentException - 指定の
コンテンツタイプに問題が発生した場合public abstract void removeMimeHeader(String header)
header - 削除する MIME ヘッダー名
の文字列public abstract void removeAllMimeHeaders()
public abstract String[] getMimeHeader(String name)
String で識別されたヘッダーの値をすべて取得します。
name - ヘッダー名 (例: "Content-Type")
String
配列setMimeHeader(java.lang.String, java.lang.String)
public abstract void setMimeHeader(String name,
String value)
RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。
name - 検索するヘッダー名を提供する
Stringvalue - 指定の名前と一致するヘッダーに、設定した値を
提供する String
IllegalArgumentException - 指定の
MIME ヘッダー名や値に問題が発生した場合
public abstract void addMimeHeader(String name,
String value)
AttachmentPart オブジェクトに追加します。 RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。
name - 追加するヘッダー名を提供する
Stringvalue - 追加するヘッダー値を提供する
String
IllegalArgumentException - 指定の
MIME ヘッダー名や値に問題が発生した場合public abstract Iterator getAllMimeHeaders()
AttachmentPart オブジェクトのすべてのヘッダーを MimeHeader オブジェクトの反復子として取得します。
AttachmentPart オブジェクトに対する
すべての MIME ヘッダーを持つ Iterator オブジェクトpublic abstract Iterator getMatchingMimeHeaders(String[] names)
MimeHeader オブジェクトをすべて取得します。
names - 返される MIME ヘッダー名を持つ String
配列
Iterator オブジェクトpublic abstract Iterator getNonMatchingMimeHeaders(String[] names)
MimeHeader オブジェクトをすべて取得します。
names - 返されない MIME ヘッダー名を持つ String
配列
この AttachmentPart オブジェクトの
すべての MIME ヘッダー。一致しない MIME ヘッダーは
Iterator オブジェクトとして返る
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。