//******************************************************************************
//
// File:    DocPrintRequest.java
// Package: net.jini.print.job
// Unit:    Interface net.jini.print.job.DocPrintRequest
//
//******************************************************************************

package net.jini.print.job;

import net.jini.print.data.Doc;

/**
 * Interface DocPrintRequest specifies the interface for conveying to a Jini 
 * Print Service instance a request to print a job consisting of a single piece 
 * of print data. Interface DocPrintRequest extends interface {@link 
 * PrintRequest PrintRequest} with a method to specify the {@link 
 * net.jini.print.data.Doc Doc} object to be printed. ("Doc" is a short, 
 * easy-to-pronounce term that means "a piece of print data.") 
 * <P>
 * Interface DocPrintRequest's methods do not throw {@link 
 * java.rmi.RemoteException RemoteException}; these methods are not intended to 
 * make remote method calls and must be implemented locally. 
 * <P>
 * <B>DRAFT STANDARD VERSION 1.0 (23-MAY-2000)</B>
 *
 * @author  Alan Kaminsky
 * @version 12-May-2000
 */
public interface DocPrintRequest
	extends PrintRequest
	{

// Exported operations.

	/**
	 * Specify the doc for this print request. The previous print data is 
	 * replaced with the given doc. 
	 * <P>
	 * The <CODE>setDoc()</CODE> method does <I>not</I> verify whether this Jini 
	 * Print Service instance supports the given doc's doc flavor and printing 
	 * attributes. This verification is done during Print Job processing after 
	 * this Print Request has been submitted. 
	 *
	 * @param  theDoc  Doc to be printed.
	 *
	 * @exception  NullPointerException
	 *     (unchecked exception) Thrown if <CODE>theDoc</CODE> is null.
	 */
	public void setDoc
		(Doc theDoc) throws java.rmi.RemoteException;

	}