| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
public interface MultiDoc
接口 MultiDoc 指定某个对象的接口,该对象为 PrintJob 提供多部分打印数据。"Doc" 是一个简短、易于发音的术语,指“部分打印数据”,而 "multidoc" 指一组多个 doc。客户端向 PrintJob 传递一个实现了接口 MultiDoc 的对象,PrintJob 则在该对象上调用方法来获得打印数据。
接口 MultiDoc 提供了类似于多个 doc“链接列表”的抽象概念。一个 multidoc 对象就像该链接列表中的一个节点,包含列表中的当前 doc 和一个指向列表中下一个节点 (multidoc) 的指针。PrintJob 可以调用 multidoc 的 getDoc()next()
      void processMultiDoc(MultiDoc theMultiDoc) {
          
          MultiDoc current = theMultiDoc;
          while (current != null) {
              processDoc (current.getDoc());
              current = current.next();
          }
      }
 
 当然,可以满足协定的任意方式来实现接口 MultiDoc;不必在实现中使用链接列表。
要获得 multidoc PrintJob 的所有打印数据,PrintService 代理可以使用以下两种模式:
为了解决此问题并简化客户端向 PrintJob 提供多个 doc 的设计,必需让所有支持 multidoc PrintJob 的 PrintService 代理使用 interleaved 模式来访问 MultiDoc 对象。也就是说,如果给定了 MultiDoc 对象,则 PrintService 代理将调用 getDoc()next()
对于同时访问同一 multidoc 的客户端线程的数目没有限制。因此,必须将接口 MultiDoc 的所有实现设计为多线程安全的。实际上,在 PrintJob 线程从 doc 列表(概念上的列表)的开始获取 doc 的同时,客户端线程可以向该列表的末尾添加 doc;只要 multidoc 对象可正确地对这些线程实现同步,这两个线程将互不干扰。
| 方法摘要 | |
|---|---|
|  Doc | getDoc()获取当前的 doc 对象。 | 
|  MultiDoc | next()转到包含 doc 对象序列中下一个 doc 对象的 multidoc 对象。 | 
| 方法详细信息 | 
|---|
Doc getDoc()
           throws IOException
IOException - 如果读取文档时出现错误。
MultiDoc next()
              throws IOException
IOException - 如果查找下一个文档时出现错误| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。