001/* JobStateReason.java --
002   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
003
004This file is part of GNU Classpath.
005
006GNU Classpath is free software; you can redistribute it and/or modify
007it under the terms of the GNU General Public License as published by
008the Free Software Foundation; either version 2, or (at your option)
009any later version.
010
011GNU Classpath is distributed in the hope that it will be useful, but
012WITHOUT ANY WARRANTY; without even the implied warranty of
013MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014General Public License for more details.
015
016You should have received a copy of the GNU General Public License
017along with GNU Classpath; see the file COPYING.  If not, write to the
018Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
01902110-1301 USA.
020
021Linking this library statically or dynamically with other modules is
022making a combined work based on this library.  Thus, the terms and
023conditions of the GNU General Public License cover the whole
024combination.
025
026As a special exception, the copyright holders of this library give you
027permission to link this library with independent modules to produce an
028executable, regardless of the license terms of these independent
029modules, and to copy and distribute the resulting executable under
030terms of your choice, provided that you also meet, for each linked
031independent module, the terms and conditions of the license of that
032module.  An independent module is a module which is not derived from
033or based on this library.  If you modify this library, you may extend
034this exception to your version of the library, but you are not
035obligated to do so.  If you do not wish to do so, delete this
036exception statement from your version. */
037
038package javax.print.attribute.standard;
039
040import javax.print.attribute.Attribute;
041import 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 */
058public 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}