Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface MultiDoc
Интерфейс MultiDoc обеспечивает абстракцию, подобную "связанному списку" документов. Объект мультидокумента походит на узел в связанном списке, содержа текущий документ в списке и указателе на следующий узел (мультидокумент) в списке. Задание Печати может вызвать мультидокумент
метод, чтобы получить текущий документ. Когда это готово продолжиться к следующему документу, Задание Печати может вызвать мультидокумент getDoc()
метод, чтобы получить следующий мультидокумент, который содержит следующий документ. Таким образом, код Задания Печати для того, чтобы получить доступ к мультидокументу мог бы быть похожим на это: next()
void processMultiDoc(MultiDoc theMultiDoc) { MultiDoc current = theMultiDoc; while (current != null) { processDoc (current.getDoc()); current = current.next(); } }
Конечно, интерфейс, MultiDoc может быть реализован всегда, который выполняет контракт; это не должно использовать связанный список в реализации.
Чтобы получить все данные печати для задания печати мультидокумента, прокси Службы печати мог использовать любой из двух образцов:
Чтобы рассмотреть эту проблему, и упростить проект клиентов, обеспечивающих многократные документы Заданию Печати, каждый прокси Службы печати, который поддерживает задания печати мультидокумента, обязан получать доступ к объекту MultiDoc использование чередованного образца. Таким образом, учитывая объект MultiDoc, прокси службы печати вызовет
один или более раз, пока это успешно не получает текущий объект Документа. Прокси службы печати тогда получит данные печати текущего документа, не продолжаясь, пока все данные печати не будут получены, или неисправимая ошибка происходит. Если это будет в состоянии продолжаться, то прокси службы печати тогда вызовет getDoc()
один или более раз, пока это успешно не получает или следующий объект MultiDoc или индикацию, что нет больше. Реализация интерфейса, MultiDoc может принять прокси службы печати, будет следовать за этим чередованным образцом; для любого другого образца использования поведение реализации MultiDoc является неуказанным. next()
Нет никакого ограничения на число клиентских потоков, которые могут одновременно получать доступ к тому же самому мультидокументу. Поэтому, все реализации интерфейса MultiDoc должны быть разработаны, чтобы быть многократны ориентированный на многопотоковое исполнение. Фактически, клиентский поток мог добавлять документы до конца (концептуального) списка, в то время как поток Задания Печати одновременно получает документы с начала списка; если объект мультидокумента синхронизирует потоки должным образом, два потока не будут вмешиваться друг в друга
Модификатор и Тип | Метод и Описание |
---|---|
Документ |
getDoc()
Получите текущий объект документа.
|
MultiDoc |
next()
Пойдите в объект мультидокумента, который содержит следующий объект документа в последовательности объектов документа.
|
Doc getDoc() throws IOException
IOException
- Брошенный, если ошибка ocurred чтение документа.MultiDoc next() throws IOException
IOException
- Брошенный, если ошибка произошла, определяя местоположение следующего документа
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92