javax.mail.internet
クラス MimeMultipart

java.lang.Object
  |
  +--javax.mail.Multipart
        |
        +--javax.mail.internet.MimeMultipart

public class MimeMultipart
extends Multipart

MimeMultipart クラスは、multipart データについて MIME 規則を使用する抽象 Multipart クラスの実装です。

MimeMultipart は、プライマリタイプが「multipart」である MimePart から (パートの getContent() メソッドを呼び出すことによって) 取得するか、新しい MimeMessage の作成の一部としてクライアントにより作成できます。

デフォルトの multipart サブタイプは「mixed」です。他の multipart サブタイプである「alternative」や「related」などは、MimeMultipart のサブクラスとして実装し、そのタイプの multipart コンテンツの補足的なセマンティクスを実装するメソッドを追加することによって実装できます。この目的は、サービスプロバイダ、メール JavaBean 開発者、およびメールクライアントが多数の同様なサブクラスと Command Beans を作成し、JavaBeans Activation Framework にインストールして、任意の JavaMail 実装とクライアントがこれらのクラスを透過的に見つけ、使用できるようにすることです。したがって、MIME multipart ハンドラは他の任意のハンドラと同様に扱われ、multipart ハンドラの提供処理を JavaMail API から分離します。こうした補足的な MimeMultipart サブクラスがない場合、MIME multipart データのすべてのサブタイプは MimeMultipart オブジェクトとして現れます。

アプリケーションは、MimeMultipart(String Subtype) コンストラクタを使用することで、任意のサブタイプの MIME multipart オブジェクトを直接作成できます。たとえば、「multipart/alternative」オブジェクトを作成するには new MimeMultipart("alternative") を使用します。


フィールドの概要
protected  DataSource ds
          InputStream を供給する DataSource です。
protected  boolean parsed
          InputStream からのデータを構文解析したかどうかを示します。
 
クラス javax.mail.Multipart から継承したフィールド
contentType, parent, parts
 
コンストラクタの概要
MimeMultipart()
          デフォルトのコンストラクタです。
MimeMultipart(DataSource ds)
          MimeMultipart オブジェクトとその本文部分を、指定された DataSource から構築します。
MimeMultipart(java.lang.String subtype)
          指定されたサブタイプの MimeMultipart オブジェクトを構築します。
 
メソッドの概要
protected  InternetHeaders createInternetHeaders(java.io.InputStream is)
          指定された InputStream からヘッダをロードする InternetHeaders オブジェクトを作成し、返します。
protected  MimeBodyPart createMimeBodyPart(java.io.InputStream is)
          InputStream から構文解析される本文部分を表す MimeBodyPart オブジェクトを作成し、返します。
protected  MimeBodyPart createMimeBodyPart(InternetHeaders headers, byte[] content)
          InputStream から構文解析される本文部分を表す MimeBodyPart オブジェクトを作成し、返します。
 BodyPart getBodyPart(int index)
          指定された BodyPart を取得します。
 BodyPart getBodyPart(java.lang.String CID)
          指定された ContentID (CID) により参照される MimeBodyPart を取得します。
 int getCount()
          含まれる BodyPart オブジェクトの数を返します。
protected  void parse()
          DataSource からの InputStream を構文解析し、適切な MimeBodyParts を構築します。
 void setSubType(java.lang.String subtype)
          サブタイプを設定します。
protected  void updateHeaders()
          ヘッダを更新します。
 void writeTo(java.io.OutputStream os)
          すべてのパートを通じて繰り返し、境界で区切られた各 Mime パートを出力します。
 
クラス javax.mail.Multipart から継承したメソッド
addBodyPart, addBodyPart, getContentType, getParent, removeBodyPart, removeBodyPart, setMultipartDataSource, setParent
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ds

protected DataSource ds
InputStream を供給する DataSource です。

parsed

protected boolean parsed
InputStream からのデータを構文解析したかどうかを示します。デフォルトは true です。コンストラクタに構文解析が必要な InputStream を持つ DataSource が指定されている場合は、false に設定します。
コンストラクタの詳細

MimeMultipart

public MimeMultipart()
デフォルトのコンストラクタです。空の MimeMultipart オブジェクトが作成されます。コンテンツ形式は「multipart/mixed」に設定されます。一意の境界文字列が生成され、この文字列は contentType フィールドの「boundary」パラメータとして設定されます。

MimeBodyParts を後で追加することができます。


MimeMultipart

public MimeMultipart(java.lang.String subtype)
指定されたサブタイプの MimeMultipart オブジェクトを構築します。一意の境界文字列が生成され、この文字列は contentType フィールドの「boundary」パラメータとして設定されます。

MimeBodyParts を後で追加することができます。


MimeMultipart

public MimeMultipart(DataSource ds)
              throws MessagingException
MimeMultipart オブジェクトとその本文部分を、指定された DataSource から構築します。

このコンストラクタは、指定された DataSource が MultipartDataSource オブジェクトである状況を特殊なケースとして処理します。この場合、このメソッドは、MultipartDataSource オブジェクトを使用するスーパークラス (つまり、Multipart) コンストラクタを呼び出すだけです。

そうでない場合、DataSource は MIME multipart バイトストリームを提供するものとみなされます。parsed フラグは false に設定されます。本文部分のデータが必要な場合、パーサはこの DataSource のコンテンツ形式から「boundary」パラメータを抽出し、「プリアンブル」をスキップして終了境界までバイトを読み込み、ストリームの各パートごとに MimeBodyParts を作成します。

パラメータ:
ds - MultipartDataSource となる場合のある DataSource
メソッドの詳細

setSubType

public void setSubType(java.lang.String subtype)
                throws MessagingException
サブタイプを設定します。このメソッドはクライアントが作成した新しい MimeMultipart オブジェクト上で呼び出されなければなりません。こうした multipart オブジェクトのデフォルトのサブタイプは「mixed」です。

パラメータ:
subtype - サブタイプ

getCount

public int getCount()
             throws MessagingException
含まれる BodyPart オブジェクトの数を返します。
オーバーライド:
クラス Multipart 内の getCount
戻り値:
パートの数

getBodyPart

public BodyPart getBodyPart(int index)
                     throws MessagingException
指定された BodyPart を取得します。BodyParts には 0 から始まる番号が付けられます。
オーバーライド:
クラス Multipart 内の getBodyPart
パラメータ:
index - 要求する BodyPart のインデックス
戻り値:
Part
例外:
MessagingException - 要求された BodyPart が存在しない場合

getBodyPart

public BodyPart getBodyPart(java.lang.String CID)
                     throws MessagingException
指定された ContentID (CID) により参照される MimeBodyPart を取得します。パートが見つからない場合は null を返します。
パラメータ:
CID - 要求するパートの ContentID
戻り値:
Part

updateHeaders

protected void updateHeaders()
                      throws MessagingException
ヘッダを更新します。ここでのデフォルトの実装は、子の BodyParts のそれぞれで updateHeaders メソッドを呼び出すだけです。

新しい空の MimeMultipart オブジェクトが作成される場合、境界パラメータはすでに設定されていることに注意してください。

このメソッドは、この Multipart を含む Message オブジェクト上で saveChanges メソッドが呼び出されるときに呼び出されます。これは一般に Message 送信処理の一部として行われますが、クライアントから何度でも呼び出すことが可能であることに注意してください。したがって、ヘッダ更新処理が特定の MimeMultipart サブクラスにとって負荷が重い場合、内部状態が実際に変化したかどうかを追跡し、必要な場合にのみヘッダ更新を行うこともあります。


writeTo

public void writeTo(java.io.OutputStream os)
             throws java.io.IOException,
                    MessagingException
すべてのパートを通じて繰り返し、境界で区切られた各 Mime パートを出力します。
オーバーライド:
クラス Multipart 内の writeTo
クラス javax.mail.Multipart からコピーされたタグ:
例外:
java.io.IOException - IO 関連の例外が発生した場合
MessagingException -  

parse

protected void parse()
              throws MessagingException
DataSource からの InputStream を構文解析し、適切な MimeBodyParts を構築します。parsed フラグは true に設定されます。呼ばれた時に true の場合は何も行われません。このメソッドは本文部分のデータが必要な他のすべてのメソッドにより呼び出され、データが構文解析済みであることを保証します。
導入されたバージョン:
JavaMail 1.2

createInternetHeaders

protected InternetHeaders createInternetHeaders(java.io.InputStream is)
                                         throws MessagingException
指定された InputStream からヘッダをロードする InternetHeaders オブジェクトを作成し、返します。必要であれば、サブクラスはこのメソッドをオーバーライドし、InternetHeaders のサブクラスを返すことができます。この実装は単に InternetHeaders オブジェクトを構築し、返します。
パラメータ:
is - ヘッダ読み込み元の InputStream
例外:
MessagingException -  
導入されたバージョン:
JavaMail 1.2

createMimeBodyPart

protected MimeBodyPart createMimeBodyPart(InternetHeaders headers,
                                          byte[] content)
                                   throws MessagingException
InputStream から構文解析される本文部分を表す MimeBodyPart オブジェクトを作成し、返します。必要であれば、サブクラスはこのメソッドをオーバーライドし、MimeBodyPart のサブクラスを返すことができます。この実装は単に MimeBodyPart オブジェクトを構築し、返します。
パラメータ:
headers - 本文部分のヘッダ
content - 本文部分のコンテンツ
例外:
MessagingException -  
導入されたバージョン:
JavaMail 1.2

createMimeBodyPart

protected MimeBodyPart createMimeBodyPart(java.io.InputStream is)
                                   throws MessagingException
InputStream から構文解析される本文部分を表す MimeBodyPart オブジェクトを作成し、返します。必要であれば、サブクラスはこのメソッドをオーバーライドし、MimeBodyPart のサブクラスを返すことができます。この実装は単に MimeBodyPart オブジェクトを構築し、返します。
パラメータ:
is - 本文部分を含む InputStream
例外:
MessagingException -  
導入されたバージョン:
JavaMail 1.2


Copyright 2002 Sun Microsystems, Inc. All rights reserved.
使用には使用許諾契約が適用されます。