summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/javax/print/Doc.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/print/Doc.java')
-rw-r--r--libjava/classpath/javax/print/Doc.java81
1 files changed, 66 insertions, 15 deletions
diff --git a/libjava/classpath/javax/print/Doc.java b/libjava/classpath/javax/print/Doc.java
index 00e9dc9867f..c489de1b64e 100644
--- a/libjava/classpath/javax/print/Doc.java
+++ b/libjava/classpath/javax/print/Doc.java
@@ -1,5 +1,5 @@
/* Doc.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,51 +45,102 @@ import java.io.Reader;
import javax.print.attribute.DocAttributeSet;
/**
+ * <code>Doc</code> specifies the interface for print services how to obtain
+ * the print data and document specific attributes for printing.
+ * <p>
+ * The print data is always passed to a {@link javax.print.DocPrintJob} object
+ * as a <code>Doc</code> object which allows the print services to:
+ * <ul>
+ * <li>Determine the actual document format of the supplied print data. This
+ * is supplied as a {@link javax.print.DocFlavor} object with the MIME type
+ * and the representation class of the print data.</li>
+ * <li>Obtain the print data either in its representation class or depending
+ * on the document format through convenience methods as a
+ * {@link java.io.Reader} or an {@link java.io.InputStream}.</li>
+ * <li>Obtain the document's attribute set specifying the attributes which
+ * apply to this document instance.</li>
+ * </ul>
+ * </p><p>
+ * Every method of a <code>Doc</code> implementation has to return always the
+ * same object on every method call. Therefore if the print job consumes the
+ * print data via a stream or a reader object it can read only once the
+ * supplied print data. Implementations of this interface have to be thread
+ * safe.
+ * </p>
+ *
* @author Michael Koch (konqueror@gmx.de)
*/
public interface Doc
{
/**
- * Returns a set of attributes applying to this document.
+ * Returns the unmodifiable view of the attributes of this doc object.
+ * <p>
+ * The attributes of this doc's attributes set overrides attributes of
+ * the same category in the print job's attribute set. If an attribute
+ * is not available in this doc's attributes set or <code>null</code>
+ * is returned the attributes of the same category of the print job are
+ * used.
+ * </p>
*
- * @return the attributes
+ * @return The unmodifiable attributes set, or <code>null</code>.
*/
DocAttributeSet getAttributes();
/**
- * Returns the flavor in which this document will provide its print data.
- *
- * @return the document flavor for printing
+ * Returns the flavor of this doc objects print data.
+ *
+ * @return The document flavor.
*/
DocFlavor getDocFlavor();
/**
- * Returns the print data of this document represented in a format that supports
- * the document flavor.
- *
- * @return the print data
+ * Returns the print data of this doc object.
+ * <p>
+ * The returned object is an instance as described by the associated
+ * document flavor ({@link DocFlavor#getRepresentationClassName()})
+ * and can be cast to this representation class.
+ * </p>
*
- * @throws IOException if an error occurs
+ * @return The print data in the representation class.
+ * @throws IOException if representation class is a stream and I/O
+ * exception occures.
*/
Object getPrintData() throws IOException;
/**
* Returns a <code>Reader</code> object for extracting character print data
* from this document.
+ * <p>
+ * This method is supported if the document flavor is of type:
+ * <ul>
+ * <li><code>char[]</code></li>
+ * <li><code>java.lang.String</code></li>
+ * <li><code>java.io.Reader</code></li>
+ * </ul>
+ * otherwise this method returns <code>null</code>.
+ * </p>
*
- * @return the <code>Reader</code> object
+ * @return The <code>Reader</code> object, or <code>null</code>.
*
- * @throws IOException if an error occurs
+ * @throws IOException if an error occurs.
*/
Reader getReaderForText() throws IOException;
/**
* Returns an <code>InputStream</code> object for extracting byte print data
* from this document.
+ * <p>
+ * This method is supported if the document flavor is of type:
+ * <ul>
+ * <li><code>byte[]</code></li>
+ * <li><code>java.io.InputStream</code></li>
+ * </ul>
+ * otherwise this method returns <code>null</code>.
+ * </p>
*
- * @return the <code>InputStream</code> object
+ * @return The <code>InputStream</code> object, or <code>null</code>.
*
- * @throws IOException if an error occurs
+ * @throws IOException if an error occurs.
*/
InputStream getStreamForBytes() throws IOException;
} \ No newline at end of file
OpenPOWER on IntegriCloud