< prev index next >

src/java.desktop/share/classes/javax/print/attribute/standard/JobKOctets.java

Print this page

        

*** 20,198 **** * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.print.attribute.standard; import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; - import javax.print.attribute.PrintRequestAttribute; import javax.print.attribute.PrintJobAttribute; /** ! * Class JobKOctets is an integer valued printing attribute class that specifies ! * the total size of the document(s) in K octets, i.e., in units of 1024 octets ! * requested to be processed in the job. The value must be rounded up, so that a ! * job between 1 and 1024 octets must be indicated as being 1K octets, 1025 to ! * 2048 must be 2K octets, etc. For a multidoc print job (a job with multiple ! * documents), the JobKOctets value is computed by adding up the individual ! * documents' sizes in octets, then rounding up to the next K octets value. ! * <P> ! * The JobKOctets attribute describes the size of the job. This attribute is not ! * intended to be a counter; it is intended to be useful routing and scheduling ! * information if known. The printer may try to compute the JobKOctets ! * attribute's value if it is not supplied in the Print Request. Even if the ! * client does supply a value for the JobKOctets attribute in the Print Request, ! * the printer may choose to change the value if the printer is able to compute ! * a value which is more accurate than the client supplied value. The printer ! * may be able to determine the correct value for the JobKOctets attribute ! * either right at job submission time or at any later point in time. ! * <P> ! * The JobKOctets value must not include the multiplicative factors contributed ! * by the number of copies specified by the {@link Copies Copies} attribute, ! * independent of whether the device can process multiple copies without making ! * multiple passes over the job or document data and independent of whether the ! * output is collated or not. Thus the value is independent of the ! * implementation and indicates the size of the document(s) measured in K octets ! * independent of the number of copies. ! * <P> ! * The JobKOctets value must also not include the multiplicative factor due to a ! * copies instruction embedded in the document data. If the document data ! * actually includes replications of the document data, this value will include ! * such replication. In other words, this value is always the size of the source ! * document data, rather than a measure of the hardcopy output to be produced. ! * <P> * The size of a doc is computed based on the print data representation class as ! * specified by the doc's {@link javax.print.DocFlavor DocFlavor}, as ! * shown in the table below. ! * * <table class="striped"> * <caption>Table showing computation of doc sizes</caption> * <thead> ! * <TR> ! * <TH>Representation Class</TH> ! * <TH>Document Size</TH> ! * </TR> * </thead> * <tbody> ! * <TR> ! * <TD>byte[]</TD> ! * <TD>Length of the byte array</TD> ! * </TR> ! * <TR> ! * <TD>java.io.InputStream</TD> ! * <TD>Number of bytes read from the stream</TD> ! * </TR> ! * <TR> ! * <TD>char[]</TD> ! * <TD>Length of the character array x 2</TD> ! * </TR> ! * <TR> ! * <TD>java.lang.String</TD> ! * <TD>Length of the string x 2</TD> ! * </TR> ! * <TR> ! * <TD>java.io.Reader</TD> ! * <TD>Number of characters read from the stream x 2</TD> ! * </TR> ! * <TR> ! * <TD>java.net.URL</TD> ! * <TD>Number of bytes read from the file at the given URL address</TD> ! * </TR> ! * <TR> ! * <TD>java.awt.image.renderable.RenderableImage</TD> ! * <TD>Implementation dependent*</TD> ! * </TR> ! * <TR> ! * <TD>java.awt.print.Printable</TD> ! * <TD>Implementation dependent*</TD> ! * </TR> ! * <TR> ! * <TD>java.awt.print.Pageable</TD> ! * <TD>Implementation dependent*</TD> ! * </TR> * </tbody> ! * </TABLE> ! * <P> * * In these cases the Print Service itself generates the print data sent ! * to the printer. If the Print Service supports the JobKOctets attribute, for ! * these cases the Print Service itself must calculate the size of the print ! * data, replacing any JobKOctets value the client specified. ! * <P> ! * <B>IPP Compatibility:</B> The integer value gives the IPP integer value. The ! * category name returned by {@code getName()} gives the IPP attribute ! * name. * * @see JobKOctetsSupported * @see JobKOctetsProcessed * @see JobImpressions * @see JobMediaSheets - * - * @author Alan Kaminsky */ public final class JobKOctets extends IntegerSyntax implements PrintRequestAttribute, PrintJobAttribute { private static final long serialVersionUID = -8959710146498202869L; /** * Construct a new job K octets attribute with the given integer value. * ! * @param value Integer value. ! * ! * @exception IllegalArgumentException ! * (Unchecked exception) Thrown if {@code value} is less than 0. */ public JobKOctets(int value) { super (value, 0, Integer.MAX_VALUE); } /** * Returns whether this job K octets attribute is equivalent to the passed * in object. To be equivalent, all of the following conditions must be * true: ! * <OL TYPE=1> ! * <LI> ! * {@code object} is not null. ! * <LI> ! * {@code object} is an instance of class JobKOctets. ! * <LI> ! * This job K octets attribute's value and {@code object}'s value ! * are equal. ! * </OL> ! * ! * @param object Object to compare to. ! * ! * @return True if {@code object} is equivalent to this job K ! * octets attribute, false otherwise. */ public boolean equals(Object object) { return super.equals(object) && object instanceof JobKOctets; } /** * Get the printing attribute class which is to be used as the "category" * for this printing attribute value. ! * <P> ! * For class JobKOctets, the category is class JobKOctets itself. * ! * @return Printing attribute class (category), an instance of class ! * {@link java.lang.Class java.lang.Class}. */ public final Class<? extends Attribute> getCategory() { return JobKOctets.class; } /** * Get the name of the category of which this attribute value is an * instance. ! * <P> ! * For class JobKOctets, the category name is {@code "job-k-octets"}. * ! * @return Attribute category name. */ public final String getName() { return "job-k-octets"; } - } --- 20,188 ---- * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ + package javax.print.attribute.standard; import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; + import javax.print.attribute.PrintRequestAttribute; /** ! * Class {@code JobKOctets} is an integer valued printing attribute class that ! * specifies the total size of the document(s) in K octets, i.e., in units of ! * 1024 octets requested to be processed in the job. The value must be rounded ! * up, so that a job between 1 and 1024 octets must be indicated as being 1K ! * octets, 1025 to 2048 must be 2K octets, etc. For a multidoc print job (a job ! * with multiple documents), the {@code JobKOctets} value is computed by adding ! * up the individual documents' sizes in octets, then rounding up to the next K ! * octets value. ! * <p> ! * The {@code JobKOctets} attribute describes the size of the job. This ! * attribute is not intended to be a counter; it is intended to be useful ! * routing and scheduling information if known. The printer may try to compute ! * the {@code JobKOctets} attribute's value if it is not supplied in the Print ! * Request. Even if the client does supply a value for the {@code JobKOctets} ! * attribute in the Print Request, the printer may choose to change the value if ! * the printer is able to compute a value which is more accurate than the client ! * supplied value. The printer may be able to determine the correct value for ! * the {@code JobKOctets} attribute either right at job submission time or at ! * any later point in time. ! * <p> ! * The {@code JobKOctets} value must not include the multiplicative factors ! * contributed by the number of copies specified by the {@link Copies Copies} ! * attribute, independent of whether the device can process multiple copies ! * without making multiple passes over the job or document data and independent ! * of whether the output is collated or not. Thus the value is independent of ! * the implementation and indicates the size of the document(s) measured in K ! * octets independent of the number of copies. ! * <p> ! * The {@code JobKOctets} value must also not include the multiplicative factor ! * due to a copies instruction embedded in the document data. If the document ! * data actually includes replications of the document data, this value will ! * include such replication. In other words, this value is always the size of ! * the source document data, rather than a measure of the hardcopy output to be ! * produced. ! * <p> * The size of a doc is computed based on the print data representation class as ! * specified by the doc's {@link javax.print.DocFlavor DocFlavor}, as shown in ! * the table below. * <table class="striped"> * <caption>Table showing computation of doc sizes</caption> * <thead> ! * <tr> ! * <th>Representation Class ! * <th>Document Size * </thead> * <tbody> ! * <tr> ! * <td>{@code byte[]} ! * <td>Length of the byte array ! * <tr> ! * <td>{@code java.io.InputStream} ! * <td>Number of bytes read from the stream ! * <tr> ! * <td>{@code char[]} ! * <td>Length of the character array x 2 ! * <tr> ! * <td>{@code java.lang.String} ! * <td>Length of the string x 2 ! * <tr> ! * <td>{@code java.io.Reader} ! * <td>Number of characters read from the stream x 2 ! * <tr> ! * <td>{@code java.net.URL} ! * <td>Number of bytes read from the file at the given {@code URL} address ! * <tr> ! * <td>{@code java.awt.image.renderable.RenderableImage} ! * <td>Implementation dependent* ! * <tr> ! * <td>{@code java.awt.print.Printable} ! * <td>Implementation dependent* ! * <tr> ! * <td>{@code java.awt.print.Pageable} ! * <td>Implementation dependent* * </tbody> ! * </table> ! * <p> * * In these cases the Print Service itself generates the print data sent ! * to the printer. If the Print Service supports the {@code JobKOctets} ! * attribute, for these cases the Print Service itself must calculate the size ! * of the print data, replacing any {@code JobKOctets} value the client ! * specified. ! * <p> ! * <b>IPP Compatibility:</b> The integer value gives the IPP integer value. The ! * category name returned by {@code getName()} gives the IPP attribute name. * + * @author Alan Kaminsky * @see JobKOctetsSupported * @see JobKOctetsProcessed * @see JobImpressions * @see JobMediaSheets */ public final class JobKOctets extends IntegerSyntax implements PrintRequestAttribute, PrintJobAttribute { + /** + * Use serialVersionUID from JDK 1.4 for interoperability. + */ private static final long serialVersionUID = -8959710146498202869L; /** * Construct a new job K octets attribute with the given integer value. * ! * @param value Integer value ! * @throws IllegalArgumentException if {@code value} is negative */ public JobKOctets(int value) { super (value, 0, Integer.MAX_VALUE); } /** * Returns whether this job K octets attribute is equivalent to the passed * in object. To be equivalent, all of the following conditions must be * true: ! * <ol type=1> ! * <li>{@code object} is not {@code null}. ! * <li>{@code object} is an instance of class {@code JobKOctets}. ! * <li>This job K octets attribute's value and {@code object}'s value are ! * equal. ! * </ol> ! * ! * @param object {@code Object} to compare to ! * @return {@code true} if {@code object} is equivalent to this job K octets ! * attribute, {@code false} otherwise */ public boolean equals(Object object) { return super.equals(object) && object instanceof JobKOctets; } /** * Get the printing attribute class which is to be used as the "category" * for this printing attribute value. ! * <p> ! * For class {@code JobKOctets}, the category is class ! * {@code JobKOctets} itself. * ! * @return printing attribute class (category), an instance of class ! * {@link Class java.lang.Class} */ public final Class<? extends Attribute> getCategory() { return JobKOctets.class; } /** * Get the name of the category of which this attribute value is an * instance. ! * <p> ! * For class {@code JobKOctets}, the category name is ! * {@code "job-k-octets"}. * ! * @return attribute category name */ public final String getName() { return "job-k-octets"; } }
< prev index next >