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

package net.jini.print.job;

import net.jini.print.data.MultiDoc;

/**
 * Interface MultiDocPrintRequest specifies the interface for conveying to a 
 * Jini Print Service instance a request to print a job consisting of multiple 
 * pieces of print data. Interface MultiDocPrintRequest extends interface {@link 
 * PrintRequest PrintRequest} with a method to specify the {@link 
 * net.jini.print.data.MultiDoc MultiDoc} object to be printed. ("Doc" is a 
 * short, easy-to-pronounce term that means "a piece of print data," and a 
 * "multidoc" is a group of several docs.) 
 * <P>
 * Interface MultiDocPrintRequest'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 MultiDocPrintRequest
	extends PrintRequest
	{

// Exported operations.

	/**
	 * Specify the multidoc for this print request. The previous print data is 
	 * replaced with the given multidoc. 
	 * <P>
	 * The <CODE>setMultiDoc()</CODE> method does <I>not</I> verify whether this 
	 * Jini Print Service instance supports the doc flavors and printing 
	 * attributes of the docs in the given multidoc. This verification is done 
	 * during Print Job processing after this Print Request has been submitted. 
	 *
	 * @param  theMultiDoc  Multidoc to be printed.
	 *
	 * @exception  NullPointerException
	 *     (unchecked exception) Thrown if <CODE>theMultiDoc</CODE> is null.
	 */
	public void setMultiDoc
		(MultiDoc theMultiDoc);

	}