Package org.jpwg.jini.print.data (which is not part of the Jini Print Service API) contains sample implementations of the Print Data interfaces in package net.jini.print.data for providing print data to a Print Job. These implementations are for the convenience of Jini Print Service client application developers. A Jini Print Service client can use the implementation classes in package org.jpwg.jini.print.data, or it can use its own classes that implement the interfaces in package net.jini.print.data.

The classes in package org.jpwg.jini.print.data that provide implementations of interface Doc are organized this way:

- Helper classes. These are used inside the implementations of the other classes.
  - Class RmiInputStream -- Lets a remote object read a local InputStream (byte stream).
  - Class RmiReader -- Lets a remote object read a local Reader (character stream).

- Doc classes. These implement interface Doc, letting a Print Job obtain client formatted print data from various sources.
  - Class AbstractDoc -- Abstract base class with common implementations of the Doc methods.
  - Class StringDoc -- Print a string.
  - Class URLDoc -- Print a URL the printer accesses directly (not through the client).
  - Class InputStreamDoc -- Print the contents of an InputStream (byte stream) the print service reads from the client.
  - Class ReaderDoc -- Print the contents of a Reader (character stream) the print service reads from the client.

- LeasedDoc classes. These implement interface LeasedDoc, letting a Print Job obtain client formatted print data from various sources along with a lease on the print data.
  - Class LeasedAbstractDoc -- Abstract base class with common implementations of the LeasedDoc methods.
  - Class LeasedInputStreamDoc -- An input stream doc with a lease.
  - Class LeasedReaderDoc -- A reader doc with a lease.

The classes in package org.jpwg.jini.print.data that provide implementations of interface MultiDoc are organized this way:

- Class ArrayMultiDoc provides a multidoc layered on top of an array of docs.
- Class IteratorMultiDoc provides a multidoc layered on top of an Iterator over a collection of docs.

The UML class diagram below depicts the relationships among the classes mentioned above.

Placement of this package under package org.jpwg.jini.print is preliminary and not yet approved by the Jini Community.

DRAFT STANDARD VERSION 1.0 (23-MAY-2000)