001    /* JobStateReason.java --
002       Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
003    
004    This file is part of GNU Classpath.
005    
006    GNU Classpath is free software; you can redistribute it and/or modify
007    it under the terms of the GNU General Public License as published by
008    the Free Software Foundation; either version 2, or (at your option)
009    any later version.
010    
011    GNU Classpath is distributed in the hope that it will be useful, but
012    WITHOUT ANY WARRANTY; without even the implied warranty of
013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014    General Public License for more details.
015    
016    You should have received a copy of the GNU General Public License
017    along with GNU Classpath; see the file COPYING.  If not, write to the
018    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
019    02110-1301 USA.
020    
021    Linking this library statically or dynamically with other modules is
022    making a combined work based on this library.  Thus, the terms and
023    conditions of the GNU General Public License cover the whole
024    combination.
025    
026    As a special exception, the copyright holders of this library give you
027    permission to link this library with independent modules to produce an
028    executable, regardless of the license terms of these independent
029    modules, and to copy and distribute the resulting executable under
030    terms of your choice, provided that you also meet, for each linked
031    independent module, the terms and conditions of the license of that
032    module.  An independent module is a module which is not derived from
033    or based on this library.  If you modify this library, you may extend
034    this exception to your version of the library, but you are not
035    obligated to do so.  If you do not wish to do so, delete this
036    exception statement from your version. */
037    
038    package javax.print.attribute.standard;
039    
040    import javax.print.attribute.Attribute;
041    import javax.print.attribute.EnumSyntax;
042    
043    
044    /**
045     * The <code>JobStateReason</code> attribute provides additional
046     * information about the current state of a job. Its always part
047     * of the {@link javax.print.attribute.standard.JobStateReasons}
048     * printing attribute.
049     * <p>
050     * <b>IPP Compatibility:</b> JobStateReason is not an IPP 1.1
051     * attribute itself but used inside the <code>JobStateReasons</code>
052     * attribute.
053     * </p>
054     *
055     * @author Michael Koch (konqueror@gmx.de)
056     * @author Wolfgang Baer (WBaer@gmx.de)
057     */
058    public class JobStateReason extends EnumSyntax
059      implements Attribute
060    {
061      private static final long serialVersionUID = -8765894420449009168L;
062    
063      /**
064       * The printer has accepted the job or is retrieving document
065       * data for processing.
066       */
067      public static final JobStateReason JOB_INCOMING = new JobStateReason(0);
068    
069      /**
070       * The printer is expecting additional document data before it
071       * can move this job into the processing state.
072       */
073      public static final JobStateReason JOB_DATA_INSUFFICIENT = new JobStateReason(1);
074    
075      /**
076       * The printer is unable to access one or more documents provided
077       * by reference in the print job.
078       */
079      public static final JobStateReason DOCUMENT_ACCESS_ERROR = new JobStateReason(2);
080    
081      /**
082       * The printer has not received the whole job submission. This
083       * indicates no reason for the interruption.
084       */
085      public static final JobStateReason SUBMISSION_INTERRUPTED = new JobStateReason(3);
086    
087      /**
088       * The printer transfers the job to the actual output device.
089       */
090      public static final JobStateReason JOB_OUTGOING = new JobStateReason(4);
091    
092      /**
093       * The job was submitted with a <code>JobHoldUntil</code> attribute which
094       * specifies a time period still in the future and causes the job to
095       * be on hold.
096       */
097      public static final JobStateReason JOB_HOLD_UNTIL_SPECIFIED = new JobStateReason(5);
098    
099      /**
100       * One or more resources needed by the job are not ready. E.g. needed
101       * media type.
102       */
103      public static final JobStateReason RESOURCES_ARE_NOT_READY = new JobStateReason(6);
104    
105      /**
106       * The printer stopped partly.
107       */
108      public static final JobStateReason PRINTER_STOPPED_PARTLY = new JobStateReason(7);
109    
110      /**
111       * The printer stopped complete.
112       */
113      public static final JobStateReason PRINTER_STOPPED = new JobStateReason(8);
114    
115      /**
116       * The printer is currently interpreting the jobs document data.
117       * Detailed state of the job's processing state.
118       */
119      public static final JobStateReason JOB_INTERPRETING = new JobStateReason(9);
120    
121      /**
122       * The printer has queued the document data.
123       * Detailed state of the job's processing state.
124       */
125      public static final JobStateReason JOB_QUEUED = new JobStateReason(10);
126    
127      /**
128       * The printer is transforming the document data to another representation.
129       * Detailed state of the job's processing state.
130       */
131      public static final JobStateReason JOB_TRANSFORMING = new JobStateReason(11);
132    
133      /**
134       * The job is queued for marking.
135       */
136      public static final JobStateReason JOB_QUEUED_FOR_MARKER = new JobStateReason(12);
137    
138      /**
139       * The job is currently printing.
140       */
141      public static final JobStateReason JOB_PRINTING = new JobStateReason(13);
142    
143      /**
144       * The job was canceled by the user (the owner of the job).
145       */
146      public static final JobStateReason JOB_CANCELED_BY_USER = new JobStateReason(14);
147    
148      /**
149       * The job was canceled by the operator.
150       */
151      public static final JobStateReason JOB_CANCELED_BY_OPERATOR = new JobStateReason(15);
152    
153      /**
154       * The job was canceled by an unidentified local user at the device.
155       */
156      public static final JobStateReason JOB_CANCELED_AT_DEVICE = new JobStateReason(16);
157    
158      /**
159       * The job has been aborted by the system.
160       */
161      public static final JobStateReason ABORTED_BY_SYSTEM = new JobStateReason(17);
162    
163      /**
164       * The printer aborted the job because of an unsupported compression while
165       * trying to decompress the document data.
166       */
167      public static final JobStateReason UNSUPPORTED_COMPRESSION = new JobStateReason(18);
168    
169      /**
170       * The printer aborted the job because of a compression error while
171       * trying to decompress the document data. If this state is given the test
172       * for supported compression has already been passed.
173       */
174      public static final JobStateReason COMPRESSION_ERROR = new JobStateReason(19);
175    
176      /**
177       * The printer aborted the job because of the document format is not supported.
178       * This may happen if a job is specified as application/octet-stream format.
179       */
180      public static final JobStateReason UNSUPPORTED_DOCUMENT_FORMAT = new JobStateReason(20);
181    
182      /**
183       * The printer aborted the job because of an error in the document data.
184       */
185      public static final JobStateReason DOCUMENT_FORMAT_ERROR = new JobStateReason(21);
186    
187      /**
188       * The client has either canceled the job or the printer aborted the job.
189       * However the printer still performs some action on the job e.g. to cleanup.
190       */
191      public static final JobStateReason PROCESSING_TO_STOP_POINT = new JobStateReason(22);
192    
193      /**
194       * The printer is offline and therefore is not accepting jobs.
195       */
196      public static final JobStateReason SERVICE_OFF_LINE = new JobStateReason(23);
197    
198      /**
199       * The printer completed the job successfully.
200       */
201      public static final JobStateReason JOB_COMPLETED_SUCCESSFULLY = new JobStateReason(24);
202    
203      /**
204       * The printer completed the job with warnings.
205       */
206      public static final JobStateReason JOB_COMPLETED_WITH_WARNINGS = new JobStateReason(25);
207    
208      /**
209       * The printer completed the job with errors.
210       */
211      public static final JobStateReason JOB_COMPLETED_WITH_ERRORS = new JobStateReason(26);
212    
213      /**
214       * The job is retained and is able to be restared.
215       */
216      public static final JobStateReason JOB_RESTARTABLE = new JobStateReason(27);
217    
218      /**
219       * The printer has forwarded the job to the actual output device. This device
220       * is not capable of reporting the state back so that the job state is set
221       * to completed by the printer.
222       */
223      public static final JobStateReason QUEUED_IN_DEVICE = new JobStateReason(28);
224    
225      private static final String[] stringTable =
226        { "job-incoming", "job-data-insufficient", "document-access-error",
227          "submission-interrupted", "job-outgoing", "job-hold-until-specified",
228          "resources-are-not-ready", "printer-stopped-partly", "printer-stopped",
229          "job-interpreting", "job-queued", "job-transforming",
230          "job-queued-for-marker", "job-printing", "job-canceled-by-user",
231          "job-canceled-by-operator", "job-canceled-at-device",
232          "aborted-by-system", "unsupported-compression", "compression-error",
233          "unsupported-document-format", "document-format-error",
234          "processing-to-stop-point", "service-off-line",
235          "job-completed-successfully", "job-completed-with-warnings",
236          "job-completed-with-errors", "job-restartable", "queued-in-device" };
237    
238      private static final JobStateReason[] enumValueTable =
239        { JOB_INCOMING, JOB_DATA_INSUFFICIENT, DOCUMENT_ACCESS_ERROR,
240          SUBMISSION_INTERRUPTED, JOB_OUTGOING, JOB_HOLD_UNTIL_SPECIFIED,
241          RESOURCES_ARE_NOT_READY, PRINTER_STOPPED_PARTLY, PRINTER_STOPPED,
242          JOB_INTERPRETING, JOB_QUEUED, JOB_TRANSFORMING, JOB_QUEUED_FOR_MARKER,
243          JOB_PRINTING, JOB_CANCELED_BY_USER, JOB_CANCELED_BY_OPERATOR,
244          JOB_CANCELED_AT_DEVICE, ABORTED_BY_SYSTEM, UNSUPPORTED_COMPRESSION,
245          COMPRESSION_ERROR, UNSUPPORTED_DOCUMENT_FORMAT, DOCUMENT_FORMAT_ERROR,
246          PROCESSING_TO_STOP_POINT, SERVICE_OFF_LINE, JOB_COMPLETED_SUCCESSFULLY,
247          JOB_COMPLETED_WITH_WARNINGS, JOB_COMPLETED_WITH_ERRORS, JOB_RESTARTABLE,
248          QUEUED_IN_DEVICE };
249    
250      /**
251       * Constructs a <code>JobStateReason</code> object.
252       *
253       * @param value the enum value.
254       */
255      protected JobStateReason(int value)
256      {
257        super(value);
258      }
259    
260      /**
261       * Returns category of this class.
262       *
263       * @return The class <code>JobStateReason</code> itself.
264       */
265      public Class< ? extends Attribute> getCategory()
266      {
267        return JobStateReason.class;
268      }
269    
270      /**
271       * Returns the name of this attribute.
272       *
273       * @return The name "job-state-reason".
274       */
275      public final String getName()
276      {
277        return "job-state-reason";
278      }
279    
280      /**
281       * Returns a table with the enumeration values represented as strings
282       * for this object.
283       *
284       * @return The enumeration values as strings.
285       */
286      protected String[] getStringTable()
287      {
288        return stringTable;
289      }
290    
291      /**
292       * Returns a table with the enumeration values for this object.
293       *
294       * @return The enumeration values.
295       */
296      protected EnumSyntax[] getEnumValueTable()
297      {
298        return enumValueTable;
299      }
300    }