javax.print
public final class: SimpleDoc [javadoc |
source]
java.lang.Object
javax.print.SimpleDoc
All Implemented Interfaces:
Doc
This class is an implementation of interface
Doc
that can
be used in many common printing requests.
It can handle all of the presently defined "pre-defined" doc flavors
defined as static variables in the DocFlavor class.
In particular this class implements certain required semantics of the
Doc specification as follows:
- constructs a stream for the service if requested and appropriate.
- ensures the same object is returned for each call on a method.
- ensures multiple threads can access the Doc
- performs some validation of that the data matches the doc flavor.
Clients who want to re-use the doc object in other jobs,
or need a MultiDoc will not want to use this class.
If the print data is a stream, or a print job requests data as a
stream, then SimpleDoc
does not monitor if the service
properly closes the stream after data transfer completion or job
termination.
Clients may prefer to use provide their own implementation of doc that
adds a listener to monitor job completion and to validate that
resources such as streams are freed (ie closed).
Constructor: |
public SimpleDoc(Object printData,
DocFlavor flavor,
DocAttributeSet attributes) {
if (flavor == null || printData == null) {
throw new IllegalArgumentException("null argument(s)");
}
Class repClass = null;
try {
repClass = Class.forName(flavor.getRepresentationClassName());
} catch (Throwable e) {
throw new IllegalArgumentException("unknown representation class");
}
if (!repClass.isInstance(printData)) {
throw new IllegalArgumentException("data is not of declared type");
}
this.flavor = flavor;
if (attributes != null) {
this.attributes = AttributeSetUtilities.unmodifiableView(attributes);
}
this.printData = printData;
}
Constructs a SimpleDoc with the specified
print data, doc flavor and doc attribute set. Parameters:
printData - the print data object
flavor - the DocFlavor object
attributes - a DocAttributeSet , which can
be null
Throws:
IllegalArgumentException - if flavor or
printData is null , or the
printData does not correspond
to the specified doc flavor--for example, the data is
not of the type specified as the representation in the
DocFlavor .
|
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |