Save This Page
Home » openjdk-7 » javax » print » attribute » standard » [javadoc | source]
    1   /*
    2    * Copyright 2000-2004 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   package javax.print.attribute.standard;
   26   
   27   import javax.print.attribute.EnumSyntax;
   28   import javax.print.attribute.Attribute;
   29   
   30   /**
   31    * Class JobStateReason is a printing attribute class, an enumeration, that
   32    * provides additional information about the job's current state, i.e.,
   33    * information that augments the value of the job's {@link JobState JobState}
   34    * attribute. Class JobStateReason defines standard job state reason values. A
   35    * Print Service implementation only needs to report those job state
   36    * reasons which are appropriate for the particular implementation; it does not
   37    * have to report every defined job state reason.
   38    * <P>
   39    * Instances of JobStateReason do not appear in a Print Job's attribute set
   40    * directly. Rather, a {@link JobStateReasons JobStateReasons} attribute appears
   41    * in the Print Job's attribute set. The {@link JobStateReasons JobStateReasons}
   42    * attribute contains zero, one, or more than one JobStateReason objects which
   43    * pertain to the Print Job's status. The printer adds a JobStateReason object
   44    * to the Print Job's {@link JobStateReasons JobStateReasons} attribute when the
   45    * corresponding condition becomes true of the Print Job, and the printer
   46    * removes the JobStateReason object again when the corresponding condition
   47    * becomes false, regardless of whether the Print Job's overall {@link JobState
   48    * JobState} also changed.
   49    * <P>
   50    * <B>IPP Compatibility:</B> The category name returned by
   51    * <CODE>getName()</CODE> is the IPP attribute name.  The enumeration's
   52    * integer value is the IPP enum value.  The <code>toString()</code> method
   53    * returns the IPP string representation of the attribute value.
   54    * <P>
   55    *
   56    * @author  Alan Kaminsky
   57    */
   58   public class JobStateReason extends EnumSyntax implements Attribute {
   59   
   60       private static final long serialVersionUID = -8765894420449009168L;
   61   
   62       /**
   63        * The printer has created the Print Job, but the printer has not finished
   64        * accessing or accepting all the print data yet.
   65        */
   66       public static final JobStateReason
   67           JOB_INCOMING = new JobStateReason(0);
   68   
   69       /**
   70        * The printer has created the Print Job, but the printer is expecting
   71        * additional print data before it can move the job into the PROCESSING
   72        * state. If a printer starts processing before it has received all data,
   73        * the printer removes the JOB_DATA_INSUFFICIENT reason, but the
   74        * JOB_INCOMING reason remains. If a printer starts processing after it
   75        * has received all data, the printer removes the JOB_DATA_INSUFFICIENT
   76        * and JOB_INCOMING reasons at the same time.
   77        */
   78       public static final JobStateReason
   79           JOB_DATA_INSUFFICIENT = new JobStateReason(1);
   80   
   81       /**
   82        * The Printer could not access one or more documents passed by reference
   83        * (i.e., the print data representation object is a URL). This reason is
   84        * intended to cover any file access problem,including file does not exist
   85        * and access denied because of an access control problem. Whether the
   86        * printer aborts the job and moves the job to the ABORTED job state or
   87        * prints all documents that are accessible and moves the job to the
   88        * COMPLETED job state and adds the COMPLETED_WITH_ERRORS reason to the
   89        * job's {@link JobStateReasons JobStateReasons} attribute depends on
   90        * implementation and/or site policy. This value should be supported if
   91        * the printer supports doc flavors with URL print data representation
   92        * objects.
   93        */
   94       public static final JobStateReason
   95           DOCUMENT_ACCESS_ERROR = new JobStateReason(2);
   96   
   97       /**
   98        * The job was not completely submitted for some unforeseen reason.
   99        * Possibilities include (1) the printer has crashed before the job was
  100        * fully submitted by the client, (2) the printer or the document transfer
  101        * method has crashed in some non-recoverable way before the document data
  102        * was entirely transferred to the printer, (3) the client crashed before
  103        * the job was fully submitted.
  104        */
  105       public static final JobStateReason
  106           SUBMISSION_INTERRUPTED = new JobStateReason(3);
  107   
  108       /**
  109        * The printer is transmitting the job to the output device.
  110        */
  111       public static final JobStateReason
  112           JOB_OUTGOING = new JobStateReason(4);
  113   
  114       /**
  115        * The value of the job's {@link JobHoldUntil JobHoldUntil} attribute was
  116        * specified with a date-time that is still in the future. The job must
  117        * not be a candidate for processing until this reason is removed and
  118        * there are
  119        * no other reasons to hold the job. This value should be supported if the
  120        * {@link JobHoldUntil JobHoldUntil} job template attribute is supported.
  121        */
  122       public static final JobStateReason
  123           JOB_HOLD_UNTIL_SPECIFIED = new JobStateReason(5);
  124   
  125       /**
  126        * At least one of the resources needed by the job, such as media, fonts,
  127        * resource objects, etc., is not ready on any of the physical printers
  128        * for which the job is a candidate. This condition may be detected
  129        * when the job is accepted, or subsequently while the job is pending
  130        * or processing, depending on implementation.
  131        * The job may remain in its current state or
  132        * be moved to the PENDING_HELD state, depending on implementation and/or
  133        * job scheduling policy.
  134        */
  135       public static final JobStateReason
  136           RESOURCES_ARE_NOT_READY = new JobStateReason(6);
  137   
  138       /**
  139        * The value of the printer's {@link PrinterStateReasons
  140        * PrinterStateReasons} attribute contains a {@link PrinterStateReason
  141        * PrinterStateReason} value of STOPPED_PARTLY.
  142        */
  143       public static final JobStateReason
  144           PRINTER_STOPPED_PARTLY = new JobStateReason(7);
  145   
  146       /**
  147        * The value of the printer's {@link PrinterState PrinterState} attribute
  148        * ia STOPPED.
  149        */
  150       public static final JobStateReason
  151           PRINTER_STOPPED = new JobStateReason(8);
  152   
  153       /**
  154        * The job is in the PROCESSING state, but more specifically, the printer
  155        * ia interpreting the document data.
  156        */
  157       public static final JobStateReason
  158           JOB_INTERPRETING = new JobStateReason(9);
  159   
  160       /**
  161        * The job is in the PROCESSING state, but more specifically, the printer
  162        * has queued the document data.
  163        */
  164       public static final JobStateReason JOB_QUEUED = new JobStateReason(10);
  165   
  166       /**
  167        * The job is in the PROCESSING state, but more specifically, the printer
  168        * is interpreting document data and producing another electronic
  169        * representation.
  170        */
  171       public static final JobStateReason
  172           JOB_TRANSFORMING = new JobStateReason(11);
  173   
  174       /**
  175        * The job is in the PENDING_HELD, PENDING, or PROCESSING state, but more
  176        * specifically, the printer has completed enough processing of the document
  177        * to be able to start marking and the job is waiting for the marker.
  178        * Systems that require human intervention to release jobs put the job into
  179        * the PENDING_HELD job state. Systems that automatically select a job to
  180        * use the marker put the job into the PENDING job state or keep the job
  181        * in the PROCESSING job state while waiting for the marker, depending on
  182        * implementation. All implementations put the job into (or back into) the
  183        * PROCESSING state when marking does begin.
  184        */
  185       public static final JobStateReason
  186           JOB_QUEUED_FOR_MARKER = new JobStateReason(12);
  187   
  188       /**
  189        * The output device is marking media. This value is useful for printers
  190        * which spend a great deal of time processing (1) when no marking is
  191        * happening and then want to show that marking is now happening or (2) when
  192        * the job is in the process of being canceled or aborted while the job
  193        * remains in the PROCESSING state, but the marking has not yet stopped so
  194        * that impression or sheet counts are still increasing for the job.
  195        */
  196       public static final JobStateReason
  197           JOB_PRINTING = new JobStateReason(13);
  198   
  199       /**
  200        * The job was canceled by the owner of the job, i.e., by a user whose
  201        * authenticated identity is the same as the value of the originating user
  202        * that created the Print Job, or by some other authorized end-user, such as
  203        * a member of the job owner's security group. This value should be
  204        * supported.
  205        */
  206       public static final JobStateReason
  207           JOB_CANCELED_BY_USER = new JobStateReason(14);
  208   
  209       /**
  210        * The job was canceled by the operator, i.e., by a user who has been
  211        * authenticated as having operator privileges (whether local or remote). If
  212        * the security policy is to allow anyone to cancel anyone's job, then this
  213        * value may be used when the job is canceled by someone other than the
  214        * owner of the job. For such a security policy, in effect, everyone is an
  215        * operator as far as canceling jobs is concerned. This value should be
  216        * supported if the implementation permits canceling by someone other than
  217        * the owner of the job.
  218        */
  219       public static final JobStateReason
  220           JOB_CANCELED_BY_OPERATOR = new JobStateReason(15);
  221   
  222       /**
  223        * The job was canceled by an unidentified local user, i.e., a user at a
  224        * console at the device. This value should be supported if the
  225        * implementation supports canceling jobs at the console.
  226        */
  227       public static final JobStateReason
  228           JOB_CANCELED_AT_DEVICE = new JobStateReason(16);
  229   
  230       /**
  231        * The job was aborted by the system. Either the job (1) is in the process
  232        * of being aborted, (2) has been aborted by the system and placed in the
  233        * ABORTED state, or (3) has been aborted by the system and placed in the
  234        * PENDING_HELD state, so that a user or operator can manually try the job
  235        * again. This value should be supported.
  236        */
  237       public static final JobStateReason
  238           ABORTED_BY_SYSTEM = new JobStateReason(17);
  239   
  240       /**
  241        * The job was aborted by the system because the printer determined while
  242        * attempting to decompress the document's data that the compression is
  243        * actually not among those supported by the printer. This value must be
  244        * supported, since {@link Compression Compression} is a required doc
  245        * description attribute.
  246        */
  247       public static final JobStateReason
  248           UNSUPPORTED_COMPRESSION = new JobStateReason(18);
  249   
  250       /**
  251        * The job was aborted by the system because the printer encountered an
  252        * error in the document data while decompressing it. If the printer posts
  253        * this reason, the document data has already passed any tests that would
  254        * have led to the UNSUPPORTED_COMPRESSION job state reason.
  255        */
  256       public static final JobStateReason
  257           COMPRESSION_ERROR = new JobStateReason(19);
  258   
  259       /**
  260        * The job was aborted by the system because the document data's document
  261        * format (doc flavor) is not among those supported by the printer. If the
  262        * client specifies a doc flavor with a MIME type of
  263        * <CODE>"application/octet-stream"</CODE>, the printer may abort the job if
  264        * the printer cannot determine the document data's actual format through
  265        * auto-sensing (even if the printer supports the document format if
  266        * specified explicitly). This value must be supported, since a doc flavor
  267        * is required to be specified for each doc.
  268        */
  269       public static final JobStateReason
  270           UNSUPPORTED_DOCUMENT_FORMAT = new JobStateReason(20);
  271   
  272       /**
  273        * The job was aborted by the system because the printer encountered an
  274        * error in the document data while processing it. If the printer posts this
  275        * reason, the document data has already passed any tests that would have
  276        * led to the UNSUPPORTED_DOCUMENT_FORMAT job state reason.
  277        */
  278       public static final JobStateReason
  279           DOCUMENT_FORMAT_ERROR = new JobStateReason(21);
  280   
  281       /**
  282        * The requester has canceled the job or the printer has aborted the job,
  283        * but the printer is still performing some actions on the job until a
  284        * specified stop point occurs or job termination/cleanup is completed.
  285        * <P>
  286        * If the implementation requires some measurable time to cancel the job in
  287        * the PROCESSING or PROCESSING_STOPPED job states, the printer must use
  288        * this reason to indicate that the printer is still performing some actions
  289        * on the job while the job remains in the PROCESSING or PROCESSING_STOPPED
  290        * state. After all the job's job description attributes have stopped
  291        * incrementing, the printer moves the job from the PROCESSING state to the
  292        * CANCELED or ABORTED job states.
  293        */
  294       public static final JobStateReason
  295           PROCESSING_TO_STOP_POINT = new JobStateReason(22);
  296   
  297       /**
  298        * The printer is off-line and accepting no jobs. All PENDING jobs are put
  299        * into the PENDING_HELD state. This situation could be true if the
  300        * service's or document transform's input is impaired or broken.
  301        */
  302       public static final JobStateReason
  303           SERVICE_OFF_LINE = new JobStateReason(23);
  304   
  305       /**
  306        * The job completed successfully. This value should be supported.
  307        */
  308       public static final JobStateReason
  309           JOB_COMPLETED_SUCCESSFULLY = new JobStateReason(24);
  310   
  311       /**
  312        * The job completed with warnings. This value should be supported if the
  313        * implementation detects warnings.
  314        */
  315       public static final JobStateReason
  316           JOB_COMPLETED_WITH_WARNINGS = new JobStateReason(25);
  317   
  318       /**
  319        * The job completed with errors (and possibly warnings too). This value
  320        * should be supported if the implementation detects errors.
  321        */
  322       public static final JobStateReason
  323           JOB_COMPLETED_WITH_ERRORS = new JobStateReason(26);
  324   
  325       /**
  326        * This job is retained and is currently able to be restarted. If
  327        * JOB_RESTARTABLE is contained in the job's {@link JobStateReasons
  328        * JobStateReasons} attribute, then the printer must accept a request to
  329        * restart that job. This value should be supported if restarting jobs is
  330        * supported. <I>[The capability for restarting jobs is not in the Java
  331        * Print Service API at present.]</I>
  332        */
  333       public static final JobStateReason
  334           JOB_RESTARTABLE = new JobStateReason(27);
  335   
  336       /**
  337        * The job has been forwarded to a device or print system that is unable to
  338        * send back status. The printer sets the job's {@link JobState JobState}
  339        * attribute to COMPLETED and adds the QUEUED_IN_DEVICE reason to the job's
  340        * {@link JobStateReasons JobStateReasons} attribute to indicate that the
  341        * printer has no additional information about the job and never will have
  342        * any better information.
  343        */
  344       public static final JobStateReason
  345           QUEUED_IN_DEVICE = new JobStateReason(28);
  346   
  347       /**
  348        * Construct a new job state reason enumeration value with the given
  349        * integer  value.
  350        *
  351        * @param  value  Integer value.
  352        */
  353       protected JobStateReason(int value) {
  354           super (value);
  355       }
  356   
  357       private static final String[] myStringTable = {
  358           "job-incoming",
  359           "job-data-insufficient",
  360           "document-access-error",
  361           "submission-interrupted",
  362           "job-outgoing",
  363           "job-hold-until-specified",
  364           "resources-are-not-ready",
  365           "printer-stopped-partly",
  366           "printer-stopped",
  367           "job-interpreting",
  368           "job-queued",
  369           "job-transforming",
  370           "job-queued-for-marker",
  371           "job-printing",
  372           "job-canceled-by-user",
  373           "job-canceled-by-operator",
  374           "job-canceled-at-device",
  375           "aborted-by-system",
  376           "unsupported-compression",
  377           "compression-error",
  378           "unsupported-document-format",
  379           "document-format-error",
  380           "processing-to-stop-point",
  381           "service-off-line",
  382           "job-completed-successfully",
  383           "job-completed-with-warnings",
  384           "job-completed-with-errors",
  385           "job-restartable",
  386           "queued-in-device"};
  387   
  388       private static final JobStateReason[] myEnumValueTable = {
  389           JOB_INCOMING,
  390           JOB_DATA_INSUFFICIENT,
  391           DOCUMENT_ACCESS_ERROR,
  392           SUBMISSION_INTERRUPTED,
  393           JOB_OUTGOING,
  394           JOB_HOLD_UNTIL_SPECIFIED,
  395           RESOURCES_ARE_NOT_READY,
  396           PRINTER_STOPPED_PARTLY,
  397           PRINTER_STOPPED,
  398           JOB_INTERPRETING,
  399           JOB_QUEUED,
  400           JOB_TRANSFORMING,
  401           JOB_QUEUED_FOR_MARKER,
  402           JOB_PRINTING,
  403           JOB_CANCELED_BY_USER,
  404           JOB_CANCELED_BY_OPERATOR,
  405           JOB_CANCELED_AT_DEVICE,
  406           ABORTED_BY_SYSTEM,
  407           UNSUPPORTED_COMPRESSION,
  408           COMPRESSION_ERROR,
  409           UNSUPPORTED_DOCUMENT_FORMAT,
  410           DOCUMENT_FORMAT_ERROR,
  411           PROCESSING_TO_STOP_POINT,
  412           SERVICE_OFF_LINE,
  413           JOB_COMPLETED_SUCCESSFULLY,
  414           JOB_COMPLETED_WITH_WARNINGS,
  415           JOB_COMPLETED_WITH_ERRORS,
  416           JOB_RESTARTABLE,
  417           QUEUED_IN_DEVICE};
  418   
  419       /**
  420        * Returns the string table for class JobStateReason.
  421        */
  422       protected String[] getStringTable() {
  423           return (String[])myStringTable.clone();
  424       }
  425   
  426       /**
  427        * Returns the enumeration value table for class JobStateReason.
  428        */
  429       protected EnumSyntax[] getEnumValueTable() {
  430           return (EnumSyntax[])myEnumValueTable.clone();
  431       }
  432   
  433   
  434       /**
  435        * Get the printing attribute class which is to be used as the "category"
  436        * for this printing attribute value.
  437        * <P>
  438        * For class JobStateReason and any vendor-defined subclasses, the
  439        * category  is class JobStateReason itself.
  440        *
  441        * @return  Printing attribute class (category), an instance of class
  442        *          {@link java.lang.Class java.lang.Class}.
  443        */
  444       public final Class<? extends Attribute> getCategory() {
  445           return JobStateReason.class;
  446       }
  447   
  448       /**
  449        * Get the name of the category of which this attribute value is an
  450        * instance.
  451        * <P>
  452        * For class JobStateReason and any vendor-defined subclasses, the
  453        * category name is <CODE>"job-state-reason"</CODE>.
  454        *
  455        * @return  Attribute category name.
  456        */
  457       public final String getName() {
  458           return "job-state-reason";
  459       }
  460   
  461   }

Save This Page
Home » openjdk-7 » javax » print » attribute » standard » [javadoc | source]