001    /* PrinterStateReason.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    
039    package javax.print.attribute.standard;
040    
041    import javax.print.attribute.Attribute;
042    import 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     */
058    public 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    }