461 lines · 18.9 KB · Java
RawDownload
/* * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.  Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * 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.EnumSyntax;import javax.print.attribute.Attribute; /** * Class JobStateReason is a printing attribute class, an enumeration, that * provides additional information about the job's current state, i.e., * information that augments the value of the job's {@link JobState JobState} * attribute. Class JobStateReason defines standard job state reason values. A * Print Service implementation only needs to report those job state * reasons which are appropriate for the particular implementation; it does not * have to report every defined job state reason. * <P> * Instances of JobStateReason do not appear in a Print Job's attribute set * directly. Rather, a {@link JobStateReasons JobStateReasons} attribute appears * in the Print Job's attribute set. The {@link JobStateReasons JobStateReasons} * attribute contains zero, one, or more than one JobStateReason objects which * pertain to the Print Job's status. The printer adds a JobStateReason object * to the Print Job's {@link JobStateReasons JobStateReasons} attribute when the * corresponding condition becomes true of the Print Job, and the printer * removes the JobStateReason object again when the corresponding condition * becomes false, regardless of whether the Print Job's overall {@link JobState * JobState} also changed. * <P> * <B>IPP Compatibility:</B> The category name returned by * <CODE>getName()</CODE> is the IPP attribute name.  The enumeration's * integer value is the IPP enum value.  The <code>toString()</code> method * returns the IPP string representation of the attribute value. * <P> * * @author  Alan Kaminsky */public class JobStateReason extends EnumSyntax implements Attribute {     private static final long serialVersionUID = -8765894420449009168L;     /**     * The printer has created the Print Job, but the printer has not finished     * accessing or accepting all the print data yet.     */    public static final JobStateReason        JOB_INCOMING = new JobStateReason(0);     /**     * The printer has created the Print Job, but the printer is expecting     * additional print data before it can move the job into the PROCESSING     * state. If a printer starts processing before it has received all data,     * the printer removes the JOB_DATA_INSUFFICIENT reason, but the     * JOB_INCOMING reason remains. If a printer starts processing after it     * has received all data, the printer removes the JOB_DATA_INSUFFICIENT     * and JOB_INCOMING reasons at the same time.     */    public static final JobStateReason        JOB_DATA_INSUFFICIENT = new JobStateReason(1);     /**     * The Printer could not access one or more documents passed by reference     * (i.e., the print data representation object is a URL). This reason is     * intended to cover any file access problem,including file does not exist     * and access denied because of an access control problem. Whether the     * printer aborts the job and moves the job to the ABORTED job state or     * prints all documents that are accessible and moves the job to the     * COMPLETED job state and adds the COMPLETED_WITH_ERRORS reason to the     * job's {@link JobStateReasons JobStateReasons} attribute depends on     * implementation and/or site policy. This value should be supported if     * the printer supports doc flavors with URL print data representation     * objects.     */    public static final JobStateReason        DOCUMENT_ACCESS_ERROR = new JobStateReason(2);     /**     * The job was not completely submitted for some unforeseen reason.     * Possibilities include (1) the printer has crashed before the job was     * fully submitted by the client, (2) the printer or the document transfer     * method has crashed in some non-recoverable way before the document data     * was entirely transferred to the printer, (3) the client crashed before     * the job was fully submitted.     */    public static final JobStateReason        SUBMISSION_INTERRUPTED = new JobStateReason(3);     /**     * The printer is transmitting the job to the output device.     */    public static final JobStateReason        JOB_OUTGOING = new JobStateReason(4);     /**     * The value of the job's {@link JobHoldUntil JobHoldUntil} attribute was     * specified with a date-time that is still in the future. The job must     * not be a candidate for processing until this reason is removed and     * there are     * no other reasons to hold the job. This value should be supported if the     * {@link JobHoldUntil JobHoldUntil} job template attribute is supported.     */    public static final JobStateReason        JOB_HOLD_UNTIL_SPECIFIED = new JobStateReason(5);     /**     * At least one of the resources needed by the job, such as media, fonts,     * resource objects, etc., is not ready on any of the physical printers     * for which the job is a candidate. This condition may be detected     * when the job is accepted, or subsequently while the job is pending     * or processing, depending on implementation.     * The job may remain in its current state or     * be moved to the PENDING_HELD state, depending on implementation and/or     * job scheduling policy.     */    public static final JobStateReason        RESOURCES_ARE_NOT_READY = new JobStateReason(6);     /**     * The value of the printer's {@link PrinterStateReasons     * PrinterStateReasons} attribute contains a {@link PrinterStateReason     * PrinterStateReason} value of STOPPED_PARTLY.     */    public static final JobStateReason        PRINTER_STOPPED_PARTLY = new JobStateReason(7);     /**     * The value of the printer's {@link PrinterState PrinterState} attribute     * ia STOPPED.     */    public static final JobStateReason        PRINTER_STOPPED = new JobStateReason(8);     /**     * The job is in the PROCESSING state, but more specifically, the printer     * ia interpreting the document data.     */    public static final JobStateReason        JOB_INTERPRETING = new JobStateReason(9);     /**     * The job is in the PROCESSING state, but more specifically, the printer     * has queued the document data.     */    public static final JobStateReason JOB_QUEUED = new JobStateReason(10);     /**     * The job is in the PROCESSING state, but more specifically, the printer     * is interpreting document data and producing another electronic     * representation.     */    public static final JobStateReason        JOB_TRANSFORMING = new JobStateReason(11);     /**     * The job is in the PENDING_HELD, PENDING, or PROCESSING state, but more     * specifically, the printer has completed enough processing of the document     * to be able to start marking and the job is waiting for the marker.     * Systems that require human intervention to release jobs put the job into     * the PENDING_HELD job state. Systems that automatically select a job to     * use the marker put the job into the PENDING job state or keep the job     * in the PROCESSING job state while waiting for the marker, depending on     * implementation. All implementations put the job into (or back into) the     * PROCESSING state when marking does begin.     */    public static final JobStateReason        JOB_QUEUED_FOR_MARKER = new JobStateReason(12);     /**     * The output device is marking media. This value is useful for printers     * which spend a great deal of time processing (1) when no marking is     * happening and then want to show that marking is now happening or (2) when     * the job is in the process of being canceled or aborted while the job     * remains in the PROCESSING state, but the marking has not yet stopped so     * that impression or sheet counts are still increasing for the job.     */    public static final JobStateReason        JOB_PRINTING = new JobStateReason(13);     /**     * The job was canceled by the owner of the job, i.e., by a user whose     * authenticated identity is the same as the value of the originating user     * that created the Print Job, or by some other authorized end-user, such as     * a member of the job owner's security group. This value should be     * supported.     */    public static final JobStateReason        JOB_CANCELED_BY_USER = new JobStateReason(14);     /**     * The job was canceled by the operator, i.e., by a user who has been     * authenticated as having operator privileges (whether local or remote). If     * the security policy is to allow anyone to cancel anyone's job, then this     * value may be used when the job is canceled by someone other than the     * owner of the job. For such a security policy, in effect, everyone is an     * operator as far as canceling jobs is concerned. This value should be     * supported if the implementation permits canceling by someone other than     * the owner of the job.     */    public static final JobStateReason        JOB_CANCELED_BY_OPERATOR = new JobStateReason(15);     /**     * The job was canceled by an unidentified local user, i.e., a user at a     * console at the device. This value should be supported if the     * implementation supports canceling jobs at the console.     */    public static final JobStateReason        JOB_CANCELED_AT_DEVICE = new JobStateReason(16);     /**     * The job was aborted by the system. Either the job (1) is in the process     * of being aborted, (2) has been aborted by the system and placed in the     * ABORTED state, or (3) has been aborted by the system and placed in the     * PENDING_HELD state, so that a user or operator can manually try the job     * again. This value should be supported.     */    public static final JobStateReason        ABORTED_BY_SYSTEM = new JobStateReason(17);     /**     * The job was aborted by the system because the printer determined while     * attempting to decompress the document's data that the compression is     * actually not among those supported by the printer. This value must be     * supported, since {@link Compression Compression} is a required doc     * description attribute.     */    public static final JobStateReason        UNSUPPORTED_COMPRESSION = new JobStateReason(18);     /**     * The job was aborted by the system because the printer encountered an     * error in the document data while decompressing it. If the printer posts     * this reason, the document data has already passed any tests that would     * have led to the UNSUPPORTED_COMPRESSION job state reason.     */    public static final JobStateReason        COMPRESSION_ERROR = new JobStateReason(19);     /**     * The job was aborted by the system because the document data's document     * format (doc flavor) is not among those supported by the printer. If the     * client specifies a doc flavor with a MIME type of     * <CODE>"application/octet-stream"</CODE>, the printer may abort the job if     * the printer cannot determine the document data's actual format through     * auto-sensing (even if the printer supports the document format if     * specified explicitly). This value must be supported, since a doc flavor     * is required to be specified for each doc.     */    public static final JobStateReason        UNSUPPORTED_DOCUMENT_FORMAT = new JobStateReason(20);     /**     * The job was aborted by the system because the printer encountered an     * error in the document data while processing it. If the printer posts this     * reason, the document data has already passed any tests that would have     * led to the UNSUPPORTED_DOCUMENT_FORMAT job state reason.     */    public static final JobStateReason        DOCUMENT_FORMAT_ERROR = new JobStateReason(21);     /**     * The requester has canceled the job or the printer has aborted the job,     * but the printer is still performing some actions on the job until a     * specified stop point occurs or job termination/cleanup is completed.     * <P>     * If the implementation requires some measurable time to cancel the job in     * the PROCESSING or PROCESSING_STOPPED job states, the printer must use     * this reason to indicate that the printer is still performing some actions     * on the job while the job remains in the PROCESSING or PROCESSING_STOPPED     * state. After all the job's job description attributes have stopped     * incrementing, the printer moves the job from the PROCESSING state to the     * CANCELED or ABORTED job states.     */    public static final JobStateReason        PROCESSING_TO_STOP_POINT = new JobStateReason(22);     /**     * The printer is off-line and accepting no jobs. All PENDING jobs are put     * into the PENDING_HELD state. This situation could be true if the     * service's or document transform's input is impaired or broken.     */    public static final JobStateReason        SERVICE_OFF_LINE = new JobStateReason(23);     /**     * The job completed successfully. This value should be supported.     */    public static final JobStateReason        JOB_COMPLETED_SUCCESSFULLY = new JobStateReason(24);     /**     * The job completed with warnings. This value should be supported if the     * implementation detects warnings.     */    public static final JobStateReason        JOB_COMPLETED_WITH_WARNINGS = new JobStateReason(25);     /**     * The job completed with errors (and possibly warnings too). This value     * should be supported if the implementation detects errors.     */    public static final JobStateReason        JOB_COMPLETED_WITH_ERRORS = new JobStateReason(26);     /**     * This job is retained and is currently able to be restarted. If     * JOB_RESTARTABLE is contained in the job's {@link JobStateReasons     * JobStateReasons} attribute, then the printer must accept a request to     * restart that job. This value should be supported if restarting jobs is     * supported. <I>[The capability for restarting jobs is not in the Java     * Print Service API at present.]</I>     */    public static final JobStateReason        JOB_RESTARTABLE = new JobStateReason(27);     /**     * The job has been forwarded to a device or print system that is unable to     * send back status. The printer sets the job's {@link JobState JobState}     * attribute to COMPLETED and adds the QUEUED_IN_DEVICE reason to the job's     * {@link JobStateReasons JobStateReasons} attribute to indicate that the     * printer has no additional information about the job and never will have     * any better information.     */    public static final JobStateReason        QUEUED_IN_DEVICE = new JobStateReason(28);     /**     * Construct a new job state reason enumeration value with the given     * integer  value.     *     * @param  value  Integer value.     */    protected JobStateReason(int value) {        super (value);    }     private static final String[] myStringTable = {        "job-incoming",        "job-data-insufficient",        "document-access-error",        "submission-interrupted",        "job-outgoing",        "job-hold-until-specified",        "resources-are-not-ready",        "printer-stopped-partly",        "printer-stopped",        "job-interpreting",        "job-queued",        "job-transforming",        "job-queued-for-marker",        "job-printing",        "job-canceled-by-user",        "job-canceled-by-operator",        "job-canceled-at-device",        "aborted-by-system",        "unsupported-compression",        "compression-error",        "unsupported-document-format",        "document-format-error",        "processing-to-stop-point",        "service-off-line",        "job-completed-successfully",        "job-completed-with-warnings",        "job-completed-with-errors",        "job-restartable",        "queued-in-device"};     private static final JobStateReason[] myEnumValueTable = {        JOB_INCOMING,        JOB_DATA_INSUFFICIENT,        DOCUMENT_ACCESS_ERROR,        SUBMISSION_INTERRUPTED,        JOB_OUTGOING,        JOB_HOLD_UNTIL_SPECIFIED,        RESOURCES_ARE_NOT_READY,        PRINTER_STOPPED_PARTLY,        PRINTER_STOPPED,        JOB_INTERPRETING,        JOB_QUEUED,        JOB_TRANSFORMING,        JOB_QUEUED_FOR_MARKER,        JOB_PRINTING,        JOB_CANCELED_BY_USER,        JOB_CANCELED_BY_OPERATOR,        JOB_CANCELED_AT_DEVICE,        ABORTED_BY_SYSTEM,        UNSUPPORTED_COMPRESSION,        COMPRESSION_ERROR,        UNSUPPORTED_DOCUMENT_FORMAT,        DOCUMENT_FORMAT_ERROR,        PROCESSING_TO_STOP_POINT,        SERVICE_OFF_LINE,        JOB_COMPLETED_SUCCESSFULLY,        JOB_COMPLETED_WITH_WARNINGS,        JOB_COMPLETED_WITH_ERRORS,        JOB_RESTARTABLE,        QUEUED_IN_DEVICE};     /**     * Returns the string table for class JobStateReason.     */    protected String[] getStringTable() {        return (String[])myStringTable.clone();    }     /**     * Returns the enumeration value table for class JobStateReason.     */    protected EnumSyntax[] getEnumValueTable() {        return (EnumSyntax[])myEnumValueTable.clone();    }      /**     * Get the printing attribute class which is to be used as the "category"     * for this printing attribute value.     * <P>     * For class JobStateReason and any vendor-defined subclasses, the     * category  is class JobStateReason itself.     *     * @return  Printing attribute class (category), an instance of class     *          {@link java.lang.Class java.lang.Class}.     */    public final Class<? extends Attribute> getCategory() {        return JobStateReason.class;    }     /**     * Get the name of the category of which this attribute value is an     * instance.     * <P>     * For class JobStateReason and any vendor-defined subclasses, the     * category name is <CODE>"job-state-reason"</CODE>.     *     * @return  Attribute category name.     */    public final String getName() {        return "job-state-reason";    } }