|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.xml.soap.AttachmentPart
public abstract class AttachmentPart
SOAPMessage
オブジェクトへの個々の添付です。SOAPMessage
オブジェクトには 1 つ以上の AttachmentPart
オブジェクトを追加できます (追加しないことも可能)。各 AttachmentPart
オブジェクトは、アプリケーション固有のコンテンツとそれに関連する MIME ヘッダーの 2 つで構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用する名前と値のペアで構成されています。
AttachmentPart
オブジェクトは次の規格と条件を満たしている必要があります。
Content-Type
AttachmentPart
オブジェクトのデータの型を指定。[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
に含まれている raw データにこの InputStream からアクセスできる
SOAPException
- この AttachmentPart
オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合getRawContentBytes()
public abstract byte[] getRawContentBytes() throws SOAPException
GetContent
への呼び出しが実行されたうえで DataContentHandler
がこの AttachmentPart
の content-type
に登録されなかったものと見なし、この AttachmentPart
オブジェクトのコンテンツを byte[] 配列として取得します。
AttachmentPart
の raw データを含む byte[]
配列
SOAPException
- この AttachmentPart
オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合public abstract InputStream getBase64Content() throws SOAPException
AttachmentPart
のコンテンツを Base64 でエンコードされた文字データとして取得できる InputStream
を返します。このメソッドを使用すると、添付の raw バイトが Base64 でエンコードされて返ります。
InputStream
。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
。存在しない場合は null
setContentId(java.lang.String)
public String getContentLocation()
String
。存在しない場合は null
public String getContentType()
String
。存在しない場合は null
public 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
- 検索するヘッダーの名前を指定する String
value
- 指定の名前と一致するヘッダーに設定する値を示す String
IllegalArgumentException
- 指定した MIME ヘッダー名または値に問題があった場合public abstract void addMimeHeader(String name, String value)
AttachmentPart
オブジェクトに追加します。
RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。
name
- 追加するヘッダーの名前を示す String
value
- 追加するヘッダーの値を示す 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 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。