|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
MultiDoc インタフェースは、Print Job 用印刷データの複数部分を提供するオブジェクトに対するインタフェースを指定します。「Doc」は、「印刷データの一部」を意味する、短く発音しやすい用語で、「multidoc」は、複数 doc のグループです。クライアントは Print Job に MultiDoc インタフェースを実装するオブジェクトを渡し、Print Job はそのオブジェクトに対してメソッドを呼び出して印刷データを取得します。
MultiDoc インタフェースは、doc の「リンクリスト」に類似した抽出を提供します。multidoc オブジェクトは、リンクリスト内のノードに似ており、リスト内の現行 doc およびリスト内の次のノード (multidoc) へのポインタを含みます。Print Job は multidoc の
メソッドを呼び出して、現行の doc を取得できます。次の doc に進む準備ができたら、Print Job は multidoc の getDoc()
メソッドを呼び出して、次の multidoc (次の doc を含む) を取得します。このため、multidoc へのアクセスを実行する Print Job コードは、次のようになります。
next()
void processMultiDoc(MultiDoc theMultiDoc) { MultiDoc current = theMultiDoc; while (current != null) { processDoc (current.getDoc()); current = current.next(); } }
MultiDoc インタフェースは、規約に従って実装できます。実装内でリンクリストを使用しなくてもかまいません。
multidoc 印刷ジョブの印刷データすべてを取得する場合、Print Service プロキシは次の 2 つのパターンのどれかを使用できます。
この問題に対処し、Print Job に複数の doc を提供するクライアントの設計を簡略化するため、multidoc 印刷ジョブをサポートする各 Print Service プロキシは、インターリーブ化パターンを使用して MultiDoc オブジェクトにアクセスする必要があります。つまり、MultiDoc オブジェクトが指定されると、印刷サービスプロキシは、現行の Doc オブジェクトの取得に成功するまで、
を 1 回または複数回呼び出します。印刷サービスプロキシは、次に現行 doc の印刷データを取得しますが、すべての印刷データを取得するか、回復不可能なエラーが発生するまで次の作業に進みません。作業を続行可能な場合、印刷サービスプロキシは、次の MultiDoc オブジェクトまたは次が存在しないとの指示を取得するまで、getDoc()
を 1 回または複数回呼び出します。MultiDoc インタフェースの実装は、印刷サービスプロキシがこのインターリーブ化パターンに従うものと見なすことができます。その他のパターンの場合、MultiDoc 実装の動作は指定されません。
next()
1 つの multidoc に同時にアクセス可能なクライアントスレッドの数に制限はありません。このため、MultiDoc インタフェースの実装はすべて、複数のスレッドセーフに設計する必要があります。実際、Print Job スレッドが (概念上の) リストの先頭から doc を取得中に、クライアントスレッドがリストの最後に doc を追加することがあり得ます。multidoc オブジェクトが複数のスレッドを適正に同期させることができるなら、2 つのスレッドが相互に干渉することはありません。
メソッドの概要 | |
Doc |
getDoc()
現行の doc オブジェクトを取得します。 |
MultiDoc |
next()
doc オブジェクトシーケンス内で次の doc オブジェクトを含む multidoc オブジェクトに移動します。 |
メソッドの詳細 |
public Doc getDoc() throws IOException
IOException
- ドキュメントの読み込み中にエラーが発生した場合にスローされるpublic MultiDoc next() throws IOException
IOException
- 次のドキュメントの検出中にエラーが発生した場合にスローされる
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.