001/* PrinterStateReason.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
038
039package javax.print.attribute.standard;
040
041import javax.print.attribute.Attribute;
042import javax.print.attribute.EnumSyntax;
043
044/**
045 * The <code>PrinterStateReason</code> attribute provides additional
046 * information about the current state of the printer device. Its always part
047 * of the {@link javax.print.attribute.standard.PrinterStateReasons}
048 * printing attribute. 
049 * <p>
050 * <b>IPP Compatibility:</b> PrinterStateReason is not an IPP 1.1 
051 * attribute itself but used inside the <code>PrinterStateReasons</code>
052 * attribute.
053 * </p>
054 * 
055 * @author Michael Koch (konqueror@gmx.de)
056 * @author Wolfgang Baer (WBaer@gmx.de)
057 */
058public class PrinterStateReason extends EnumSyntax
059  implements Attribute
060{
061  private static final long serialVersionUID = -1623720656201472593L;
062
063  /**
064   * Any state other state not listed here.
065   */
066  public static final PrinterStateReason OTHER = new PrinterStateReason(0);
067  
068  /**
069   * A media tray has run out of media.
070   */
071  public static final PrinterStateReason MEDIA_NEEDED =
072    new PrinterStateReason(1);
073  
074  /**
075   * A media jam occured in the printer device.
076   */
077  public static final PrinterStateReason MEDIA_JAM = new PrinterStateReason(2);
078  
079  /**
080   * Indicates that the printer has been paused by the pause printer
081   * operation and is currently moving to the pause state.
082   */
083  public static final PrinterStateReason MOVING_TO_PAUSED =
084    new PrinterStateReason(3);
085  
086  /**
087   * The printer device has be paused by the pause printer operation.
088   */
089  public static final PrinterStateReason PAUSED = new PrinterStateReason(4);
090  
091  /**
092   * The printer device has been shutdown or removed from service.
093   */
094  public static final PrinterStateReason SHUTDOWN = new PrinterStateReason(5);
095  
096  /**
097   * The printer object is connecting to the device. If a printer
098   * device is on the network the printer object may be unable to connect. 
099   */
100  public static final PrinterStateReason CONNECTING_TO_DEVICE =
101    new PrinterStateReason(6);
102  
103  /**
104   * The connection to the device has timed out. 
105   */
106  public static final PrinterStateReason TIMED_OUT = new PrinterStateReason(7);
107  
108  /**
109   * The printer object is stopping the printer device.
110   */
111  public static final PrinterStateReason STOPPING = new PrinterStateReason(8);
112  
113  /**
114   * The printer object has stopped partly. A printer object may control
115   * several physical output devices (e.g. a printer class in CUPS) and
116   * stop only some of the devices.
117   */
118  public static final PrinterStateReason STOPPED_PARTLY =
119    new PrinterStateReason(9);
120  
121  /**
122   * The printer device is low on toner.
123   */
124  public static final PrinterStateReason TONER_LOW =
125    new PrinterStateReason(10);
126  
127  /**
128   * The printer device is out of toner.
129   */
130  public static final PrinterStateReason TONER_EMPTY =
131    new PrinterStateReason(11);
132  
133  /**
134   * The printers spool area is currently full. The printer is
135   * currently not able to accept jobs.
136   */
137  public static final PrinterStateReason SPOOL_AREA_FULL =
138    new PrinterStateReason(12);
139  
140  /**
141   * One or more covers of the printer device are open.
142   */
143  public static final PrinterStateReason COVER_OPEN =
144    new PrinterStateReason(13);
145  
146  /**
147   * One or more interlocks of the printer device are open.
148   */
149  public static final PrinterStateReason INTERLOCK_OPEN =
150    new PrinterStateReason(14);
151  
152  /**
153   * One or more doors of the printer device are open.
154   */
155  public static final PrinterStateReason DOOR_OPEN =
156    new PrinterStateReason(15);
157  
158  /**
159   * One or more input trays are missing in the printer device.
160   */
161  public static final PrinterStateReason INPUT_TRAY_MISSING =
162    new PrinterStateReason(16);
163  
164  /**
165   * The printer device is low on media.
166   */
167  public static final PrinterStateReason MEDIA_LOW =
168    new PrinterStateReason(17);
169  
170  /**
171   * The printer device is out of media.
172   */
173  public static final PrinterStateReason MEDIA_EMPTY =
174    new PrinterStateReason(18);
175  
176  /**
177   * One or more output trays are missing in the printer device.
178   */
179  public static final PrinterStateReason OUTPUT_TRAY_MISSING =
180    new PrinterStateReason(19);
181  
182  /**
183   * One or more output areas of the printer device are almost full.
184   */
185  public static final PrinterStateReason OUTPUT_AREA_ALMOST_FULL =
186    new PrinterStateReason(20);
187  
188  /**
189   * One or more output areas of the printer device are full.
190   */
191  public static final PrinterStateReason OUTPUT_AREA_FULL =
192    new PrinterStateReason(21);
193  
194  /**
195   * The printer device is low on marker supply.
196   */
197  public static final PrinterStateReason MARKER_SUPPLY_LOW =
198    new PrinterStateReason(22);
199  
200  /**
201   * The printer device is out of marker supply.
202   */
203  public static final PrinterStateReason MARKER_SUPPLY_EMPTY =
204    new PrinterStateReason(23);
205  
206  /**
207   * The marker waste bin of the printer device is almost full.
208   */
209  public static final PrinterStateReason MARKER_WASTE_ALMOST_FULL =
210    new PrinterStateReason(24);
211  
212  /**
213   * The marker waste bin of the printer device is full.
214   */
215  public static final PrinterStateReason MARKER_WASTE_FULL =
216    new PrinterStateReason(25);
217  
218  /**
219   * The fuser of the printer device is over temperature.
220   */
221  public static final PrinterStateReason FUSER_OVER_TEMP =
222    new PrinterStateReason(26);
223  
224  /**
225   * The fuser of the printer device is under the needed temperature.
226   */
227  public static final PrinterStateReason FUSER_UNDER_TEMP =
228    new PrinterStateReason(27);
229  
230  /**
231   * The optical photo conductor is near its end of life (EOL).
232   */
233  public static final PrinterStateReason OPC_NEAR_EOL =
234    new PrinterStateReason(28);
235  
236  /**
237   * The optical photo conductor has reached its end of life.
238   */
239  public static final PrinterStateReason OPC_LIFE_OVER =
240    new PrinterStateReason(29);
241  
242  /**
243   * The printer device is low on developer.
244   */
245  public static final PrinterStateReason DEVELOPER_LOW =
246    new PrinterStateReason(30);
247  
248  /**
249   * The printer device is out of developer.
250   */
251  public static final PrinterStateReason DEVELOPER_EMPTY =
252    new PrinterStateReason(31);
253  
254  /**
255   * An interpreter resource (e.g. font) is unavailable.
256   */
257  public static final PrinterStateReason INTERPRETER_RESOURCE_UNAVAILABLE =
258    new PrinterStateReason(32);
259
260  private static final String[] stringTable = 
261    { "other", "media-needed",  "media-jam", "moving-to-paused", "paused", 
262    "shutdown", "connecting-to-device", "timed-out", "stopping", 
263    "stopped-partly", "toner-low", "toner-empty", "spool-area-full", 
264    "cover-open", "interlock-open", "door-open", "input-tray-missing", 
265    "media-low", "media-empty", "output-tray-missing", "output-area-almost-full",
266    "output-area-full", "marker-supply-low", "marker-supply-empty", 
267    "marker-waste-almost-full", "marker-waste-full", "fuser-over-temp", 
268    "fuser-under-temp", "opc-near-eol", "opc-life-over", "developer-low", 
269    "developer-empty", "interpreter-resource-unavailable" };
270
271  private static final PrinterStateReason[] enumValueTable = 
272    { OTHER, MEDIA_NEEDED, MEDIA_JAM, MOVING_TO_PAUSED, PAUSED, SHUTDOWN,
273    CONNECTING_TO_DEVICE, TIMED_OUT, STOPPING, STOPPED_PARTLY, TONER_LOW,
274    TONER_EMPTY, SPOOL_AREA_FULL, COVER_OPEN, INTERLOCK_OPEN, DOOR_OPEN,
275    INPUT_TRAY_MISSING, MEDIA_LOW, MEDIA_EMPTY, OUTPUT_TRAY_MISSING,
276    OUTPUT_AREA_ALMOST_FULL, OUTPUT_AREA_FULL, MARKER_SUPPLY_LOW,
277    MARKER_SUPPLY_EMPTY, MARKER_WASTE_ALMOST_FULL, MARKER_WASTE_FULL,
278    FUSER_OVER_TEMP, FUSER_UNDER_TEMP, OPC_NEAR_EOL, OPC_LIFE_OVER, 
279    DEVELOPER_LOW, DEVELOPER_EMPTY, INTERPRETER_RESOURCE_UNAVAILABLE };
280
281  /**
282   * Constructs a <code>PrinterStateReason</code> object.
283   * 
284   * @param value the enum value.
285   */
286  protected PrinterStateReason(int value)
287  {
288    super(value);
289  }
290
291  /**
292   * Returns category of this class.
293   *
294   * @return The class <code>PrintStateReason</code> itself.
295   */
296  public Class< ? extends Attribute> getCategory()
297  {
298    return PrinterStateReason.class;
299  }
300
301  /**
302   * Returns the name of this attribute.
303   *
304   * @return The name "printer-state-reason".
305   */
306  public final String getName()
307  {
308    return "printer-state-reason";
309  }
310  
311  /**
312   * Returns a table with the enumeration values represented as strings
313   * for this object.
314   *
315   * @return The enumeration values as strings.
316   */
317  protected String[] getStringTable()
318  {
319    return stringTable;
320  }
321
322  /**
323   * Returns a table with the enumeration values for this object.
324   *
325   * @return The enumeration values.
326   */
327  protected EnumSyntax[] getEnumValueTable()
328  {
329    return enumValueTable;
330  }
331}