| 
 | 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 の getDoc()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 オブジェクトの取得に成功するまで、getDoc()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.