クラス AttachmentPart
- java.lang.ObjectSE
-
- jakarta.xml.soap.AttachmentPart
public abstract class AttachmentPart extends ObjectSE
SOAPMessageオブジェクトへの単一のアタッチメント。SOAPMessageオブジェクトには、0 個、1 個、多数のAttachmentPartオブジェクトが含まれる場合があります。各AttachmentPartオブジェクトは、アプリケーション固有のコンテンツと関連する MIME ヘッダーの 2 つの部分で構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用できる名前と値のペアで構成されています。AttachmentPartオブジェクトは、特定の標準に準拠している必要があります。- MIME [RFC2045] 標準に準拠している必要があります
- コンテンツが含まれている必要があります
- ヘッダー部分には、次のヘッダーを含める必要があります。
Content-Type
このヘッダーは、AttachmentPartオブジェクトのコンテンツ内のデータの型を識別し、[RFC2045] に準拠する必要があります。以下は、Content-Type ヘッダーの例です。Content-Type: application/xmlapがAttachmentPartオブジェクトである次のコード行は、前の例に示したヘッダーを設定します。ap.setMimeHeader("Content-Type", "application/xml");
AttachmentPartオブジェクトのコンテンツ部分に制限はありません。コンテンツは、単純なプレーンテキストオブジェクトから複雑な XML ドキュメントまたはイメージファイルまで何でもかまいません。AttachmentPartオブジェクトは、メソッドSOAPMessage.createAttachmentPartを使用して作成されます。MIME ヘッダーを設定した後、AttachmentPartオブジェクトは、メソッドSOAPMessage.addAttachmentPartを使用して作成したメッセージに追加されます。次のコードフラグメントは、
mがSOAPMessageオブジェクトであり、contentStringlがStringであり、AttachmentPartのインスタンスを作成し、いくつかのコンテンツとヘッダー情報を含むAttachmentPartオブジェクトを設定し、AttachmentPartオブジェクトをSOAPMessageオブジェクトに追加します。AttachmentPart ap1 = m.createAttachmentPart(); ap1.setContent(contentString1, "text/plain"); m.addAttachmentPart(ap1);次のコードフラグメントは、2 番目の
AttachmentPartインスタンスを作成し、同じメッセージに追加します。jpegDataは、jpeg ファイルを表すバイナリバイトバッファです。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();- 導入:
- 1.6
コンストラクターの概要
コンストラクター 修飾子 コンストラクター 説明 protectedAttachmentPart()デフォルトコンストラクター。
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract voidaddMimeHeader(StringSE name, StringSE value)指定された名前と値の MIME ヘッダーをこのAttachmentPartオブジェクトに追加します。abstract voidclearContent()このAttachmentPartオブジェクトのコンテンツをクリアします。abstract IteratorSE<MimeHeader>getAllMimeHeaders()このAttachmentPartオブジェクトのすべてのヘッダーを、MimeHeaderオブジェクトのイテレーターとして取得します。abstract InputStreamSEgetBase64Content()AttachmentPartのコンテンツを Base64 でエンコードされた文字データとして取得するために使用できるInputStreamを返します。このメソッドは、添付ファイルの生のバイトを base64 でエンコードして返します。abstract ObjectSEgetContent()このAttachmentPartオブジェクトの内容を Java オブジェクトとして取得します。StringSEgetContentId()名前が "Content-ID" である MIME ヘッダーの値を取得します。StringSEgetContentLocation()名前が "Content-Location" である MIME ヘッダーの値を取得します。StringSEgetContentType()名前が "Content-Type" である MIME ヘッダーの値を取得します。abstract DataHandlergetDataHandler()このAttachmentPartオブジェクトのDataHandlerオブジェクトを取得します。abstract IteratorSE<MimeHeader>getMatchingMimeHeaders(StringSE[] names)指定された配列の名前に一致するすべてのMimeHeaderオブジェクトを取得します。abstract StringSE[]getMimeHeader(StringSE name)指定されたStringによって識別されるヘッダーのすべての値を取得します。abstract IteratorSE<MimeHeader>getNonMatchingMimeHeaders(StringSE[] names)指定された配列の名前と名前が一致しないすべてのMimeHeaderオブジェクトを取得します。abstract InputStreamSEgetRawContent()このAttachmentPartオブジェクトのコンテンツを InputStream として取得します。あたかもgetContentが呼び出され、このAttachmentPartのcontent-typeにDataContentHandlerが登録されていないかのようにします。abstract byte[]getRawContentBytes()このAttachmentPartオブジェクトの内容を、getContentが呼び出され、このAttachmentPartのcontent-typeにDataContentHandlerが登録されていないかのように、byte[] 配列として取得します。abstract intgetSize()このAttachmentPartオブジェクトのバイト数を返します。abstract voidremoveAllMimeHeaders()すべての MIME ヘッダーエントリを削除します。abstract voidremoveMimeHeader(StringSE header)指定された名前に一致するすべての MIME ヘッダーを削除します。abstract voidsetBase64Content(InputStreamSE content, StringSE contentType)Base64 ソースInputStreamからこの添付ファイルパーツのコンテンツを設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。このメソッドは、最初に base64 入力をデコードし、結果の生バイトを添付ファイルに書き込みます。abstract voidsetContent(ObjectSE object, StringSE contentType)このアタッチメントパーツのコンテンツを指定されたObjectのコンテンツに設定し、Content-Typeヘッダーの値を指定された型に設定します。voidsetContentId(StringSE contentId)名前が "Content-ID" である MIME ヘッダーを指定された値で設定します。voidsetContentLocation(StringSE contentLocation)名前が "Content-Location" である MIME ヘッダーを指定された値で設定します。voidsetContentType(StringSE contentType)名前が "Content-Type" である MIME ヘッダーを指定された値で設定します。abstract voidsetDataHandler(DataHandler dataHandler)指定されたDataHandlerオブジェクトをこのAttachmentPartオブジェクトのデータハンドラーとして設定します。abstract voidsetMimeHeader(StringSE name, StringSE value)指定された名前に一致する最初のヘッダーエントリを指定された値に変更し、既存のヘッダーが一致しない場合は新しいヘッダーを追加します。abstract voidsetRawContent(InputStreamSE content, StringSE contentType)この添付部分の内容をInputStreamcontentに含まれるものに設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。abstract voidsetRawContentBytes(byte[] content, int offset, int len, StringSE contentType)この添付部分の内容をbyte[]配列contentに含まれるものに設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。
メソッドの詳細
getSize
public abstract int getSize() throws SOAPExceptionこのAttachmentPartオブジェクトのバイト数を返します。- 戻り値:
- この
AttachmentPartオブジェクトのサイズ(バイト単位)またはサイズを判別できない場合は -1 - 例外:
SOAPException- この添付ファイルのコンテンツが破損している場合、またはサイズを決定しようとしたときに例外が発生した場合。
clearContent
public abstract void clearContent()
このAttachmentPartオブジェクトのコンテンツをクリアします。MIME ヘッダー部分は変更されません。
getContent
public abstract ObjectSE getContent() throws SOAPException
このAttachmentPartオブジェクトのコンテンツを Java オブジェクトとして取得します。返される Java オブジェクトの型は、(1) バイトの解釈に使用されるDataContentHandlerオブジェクト、および (2) ヘッダーで指定されたContent-Typeによって異なります。MIME コンテンツ型 "text/plain","text/html"、および "text/xml" の場合、
DataContentHandlerオブジェクトは、MIME 型に対応する Java 型との間の変換を実行します。他の MIME 型の場合、DataContentHandlerオブジェクトは、コンテンツデータを生のバイトとして含むInputStreamオブジェクトを返すことができます。SAAJ 準拠の実装は、少なくとも、
Content-Type値がtext/plainのコンテンツストリームに対応するjava.lang.Stringオブジェクト、Content-Type値がtext/xmlのコンテンツストリームに対応するjavax.xml.transform.stream.StreamSourceオブジェクト、コンテンツストリームに対応するjava.awt.Imageオブジェクトを返す必要があります。Content-Type値がimage/gifまたはimage/jpegの場合。インストールされたDataContentHandlerオブジェクトが理解できないコンテンツ型の場合、DataContentHandlerオブジェクトは、raw バイトを含むjava.io.InputStreamオブジェクトを返す必要があります。- 戻り値:
- この
AttachmentPartオブジェクトのコンテンツを含む Java オブジェクト - 例外:
SOAPException- このAttachmentPartオブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合
getRawContent
public abstract InputStreamSE getRawContent() throws SOAPException
このAttachmentPartオブジェクトのコンテンツを InputStream として取得します。あたかもgetContentが呼び出され、このAttachmentPartのcontent-typeにDataContentHandlerが登録されていないかのようにします。返された InputStream から読み取ると、ストリーム内のデータが消費されることに注意してください。後続の API を呼び出す前に、InputStream を適切にリセットするのは呼び出し側の責任です。未加工の添付コンテンツのコピーが必要な場合は、代わりに
getRawContentBytes()API を使用する必要があります。- 戻り値:
AttachmentPartに含まれる生データにアクセスできるInputStream。- 例外:
SOAPException- このAttachmentPartオブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。- 導入:
- 1.6、SAAJ 1.3
- 関連事項:
getRawContentBytes()
getRawContentBytes
public abstract byte[] getRawContentBytes() throws SOAPExceptionこのAttachmentPartオブジェクトの内容を、getContentが呼び出され、このAttachmentPartのcontent-typeにDataContentHandlerが登録されていないかのように、byte[] 配列として取得します。- 戻り値:
AttachmentPartの生データを含むbyte[]配列。- 例外:
SOAPException- このAttachmentPartオブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。- 導入:
- 1.6、SAAJ 1.3
getBase64Content
public abstract InputStreamSE getBase64Content() throws SOAPException
AttachmentPartのコンテンツを Base64 でエンコードされた文字データとして取得するために使用できるInputStreamを返します。このメソッドは、添付ファイルの生のバイトを base64 でエンコードして返します。- 戻り値:
- Base64 でエンコードされた
AttachmentPartを読み取ることができるInputStream。 - 例外:
SOAPException- このAttachmentPartオブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。- 導入:
- 1.6、SAAJ 1.3
setContent
public abstract void setContent(ObjectSE object, StringSE contentType)
このアタッチメントパーツのコンテンツを指定されたObjectのコンテンツに設定し、Content-Typeヘッダーの値を指定された型に設定します。Objectの型は、Content-Typeに指定された値に対応している必要があります。これは、使用中のDataContentHandlerオブジェクトの特定のセットによって異なります。- パラメーター:
object- この添付ファイル部分のコンテンツを構成する Java オブジェクトcontentType- コンテンツの型を指定する MIME 文字列- 例外:
IllegalArgumentExceptionSE- contentType がコンテンツオブジェクトの型と一致しない場合、またはこのコンテンツオブジェクトにDataContentHandlerオブジェクトがない場合にスローされる可能性があります。- 関連事項:
getContent()
setRawContent
public abstract void setRawContent(InputStreamSE content, StringSE contentType) throws SOAPException
この添付部分の内容をInputStreamcontentに含まれるものに設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。その後の getSize() の呼び出しは、コンテンツサイズの正確な測定値ではない場合があります。
- パラメーター:
content- アタッチメントパーツに追加する生データcontentType-Content-Typeヘッダーに設定する値- 例外:
SOAPException- コンテンツの設定にエラーがある場合NullPointerExceptionSE-contentが null の場合- 導入:
- 1.6、SAAJ 1.3
setRawContentBytes
public abstract void setRawContentBytes(byte[] content, int offset, int len, StringSE contentType) throws SOAPExceptionこの添付部分の内容をbyte[]配列contentに含まれるものに設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。- パラメーター:
content- アタッチメントパーツに追加する生データcontentType-Content-Typeヘッダーに設定する値offset- コンテンツのバイト配列のオフセットlen- コンテンツを形成するバイト数- 例外:
SOAPException- コンテンツの設定にエラーがある場合、またはコンテンツが null の場合- 導入:
- 1.6、SAAJ 1.3
setBase64Content
public abstract void setBase64Content(InputStreamSE content, StringSE contentType) throws SOAPException
Base64 ソースInputStreamからこの添付ファイルパーツのコンテンツを設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。このメソッドは、最初に base64 入力をデコードし、結果の生バイトを添付ファイルに書き込みます。その後の getSize() の呼び出しは、コンテンツサイズの正確な測定値ではない場合があります。
- パラメーター:
content- 添付ファイル部分に追加する base64 でエンコードされたデータcontentType-Content-Typeヘッダーに設定する値- 例外:
SOAPException- コンテンツの設定にエラーがある場合NullPointerExceptionSE-contentが null の場合- 導入:
- 1.6、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オブジェクト- 例外:
IllegalArgumentExceptionSE- 指定されたDataHandlerオブジェクトに問題があった場合
getContentId
public StringSE getContentId()
名前が "Content-ID" である MIME ヘッダーの値を取得します。- 戻り値:
- "Content-ID" ヘッダーの値を示す
String、または存在しない場合はnull - 関連事項:
setContentId(java.lang.String)
getContentLocation
public StringSE getContentLocation()
名前が "Content-Location" である MIME ヘッダーの値を取得します。- 戻り値:
- "Content-Location" ヘッダーの値を示す
String、または存在しない場合はnull
getContentType
public StringSE getContentType()
名前が "Content-Type" である MIME ヘッダーの値を取得します。- 戻り値:
- "Content-Type" ヘッダーの値を示す
String、または存在しない場合はnull
setContentId
public void setContentId(StringSE contentId)
名前が "Content-ID" である MIME ヘッダーを指定された値で設定します。- パラメーター:
contentId- "Content-ID" ヘッダーの値を提供するString- 例外:
IllegalArgumentExceptionSE- 指定されたcontentId値に問題があった場合- 関連事項:
getContentId()
setContentLocation
public void setContentLocation(StringSE contentLocation)
名前が "Content-Location" である MIME ヘッダーを指定された値で設定します。- パラメーター:
contentLocation- "Content-Location" ヘッダーの値を提供するString- 例外:
IllegalArgumentExceptionSE- 指定されたコンテンツの場所に問題があった場合
setContentType
public void setContentType(StringSE contentType)
名前が "Content-Type" である MIME ヘッダーを指定された値で設定します。- パラメーター:
contentType- "Content-Type" ヘッダーの値を与えるString- 例外:
IllegalArgumentExceptionSE- 指定されたコンテンツ型に問題があった場合
removeMimeHeader
public abstract void removeMimeHeader(StringSE header)
指定された名前に一致するすべての MIME ヘッダーを削除します。- パラメーター:
header- 削除する MIME ヘッダーの文字列名
removeAllMimeHeaders
public abstract void removeAllMimeHeaders()
すべての MIME ヘッダーエントリを削除します。
getMimeHeader
public abstract StringSE[] getMimeHeader(StringSE name)
指定されたStringによって識別されるヘッダーのすべての値を取得します。- パラメーター:
name- ヘッダーの名前。例: 「コンテンツ型」- 戻り値:
- 指定されたヘッダーの値を与える
String配列 - 関連事項:
setMimeHeader(java.lang.String, java.lang.String)
setMimeHeader
public abstract void setMimeHeader(StringSE name, StringSE value)
指定された名前に一致する最初のヘッダーエントリを指定された値に変更し、既存のヘッダーが一致しない場合は新しいヘッダーを追加します。このメソッドは、最初のヘッダーを除くすべての一致するヘッダーも削除します。RFC822 ヘッダーには、US-ASCII 文字のみを含めることができることに注意してください。
- パラメーター:
name- 検索するヘッダーの名前を示すStringvalue- 名前が指定された名前と一致するヘッダーに設定される値を与えるString- 例外:
IllegalArgumentExceptionSE- 指定された mime ヘッダーの名前または値に問題があった場合
addMimeHeader
public abstract void addMimeHeader(StringSE name, StringSE value)
指定された名前と値の MIME ヘッダーをこのAttachmentPartオブジェクトに追加します。RFC822 ヘッダーには、US-ASCII 文字のみを含めることができることに注意してください。
- パラメーター:
name- 追加するヘッダーの名前を示すStringvalue- 追加するヘッダーの値を示すString- 例外:
IllegalArgumentExceptionSE- 指定された mime ヘッダーの名前または値に問題があった場合
getAllMimeHeaders
public abstract IteratorSE<MimeHeader> getAllMimeHeaders()
このAttachmentPartオブジェクトのすべてのヘッダーを、MimeHeaderオブジェクトのイテレーターとして取得します。- 戻り値:
- この
AttachmentPartオブジェクトのすべての Mime ヘッダーを含むIteratorオブジェクト
getMatchingMimeHeaders
public abstract IteratorSE<MimeHeader> getMatchingMimeHeaders(StringSE[] names)
指定された配列の名前に一致するすべてのMimeHeaderオブジェクトを取得します。- パラメーター:
names- 返される MIME ヘッダーの名前を持つString配列- 戻り値:
- 指定された配列内の名前の 1 つに
Iteratorオブジェクトとして一致するすべての MIME ヘッダー
getNonMatchingMimeHeaders
public abstract IteratorSE<MimeHeader> getNonMatchingMimeHeaders(StringSE[] names)
指定された配列の名前と名前が一致しないすべてのMimeHeaderオブジェクトを取得します。- パラメーター:
names- 返されない MIME ヘッダーの名前を持つString配列- 戻り値:
- 指定された配列内の名前のいずれかに一致するものを除く、この
AttachmentPartオブジェクト内のすべての MIME ヘッダー。一致しない MIME ヘッダーは、Iteratorオブジェクトとして返されます。