/* * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.print.attribute.standard; import javax.print.attribute.EnumSyntax; import javax.print.attribute.Attribute; /** * Class PrinterStateReason is a printing attribute class, an enumeration, * that provides additional information about the printer's current state, * i.e., information that augments the value of the printer's * {@link PrinterState PrinterState} attribute. * Class PrinterStateReason defines standard printer * state reason values. A Print Service implementation only needs to report * those printer state reasons which are appropriate for the particular * implementation; it does not have to report every defined printer state * reason. *

* Instances of PrinterStateReason do not appear in a Print Service's * attribute set directly. * Rather, a {@link PrinterStateReasons PrinterStateReasons} * attribute appears in the Print Service's attribute set. The {@link * PrinterStateReasons PrinterStateReasons} attribute contains zero, one, or * more than one PrinterStateReason objects which pertain to the * Print Service's status, and each PrinterStateReason object is * associated with a {@link Severity Severity} level of REPORT (least severe), * WARNING, or ERROR (most severe). The printer adds a PrinterStateReason * object to the Print Service's * {@link PrinterStateReasons PrinterStateReasons} attribute when the * corresponding condition becomes true of the printer, and the printer * removes the PrinterStateReason object again when the corresponding * condition becomes false, regardless of whether the Print Service's overall * {@link PrinterState PrinterState} also changed. *

* IPP Compatibility: * The string values returned by each individual {@link PrinterStateReason} and * associated {@link Severity} object's toString() * methods, concatenated together with a hyphen ("-") in * between, gives the IPP keyword value for a {@link PrinterStateReasons}. * The category name returned by getName() gives the IPP * attribute name. * * @author Alan Kaminsky */ public class PrinterStateReason extends EnumSyntax implements Attribute { private static final long serialVersionUID = -1623720656201472593L; /** * The printer has detected an error other than ones listed below. */ public static final PrinterStateReason OTHER = new PrinterStateReason(0); /** * A tray has run out of media. */ public static final PrinterStateReason MEDIA_NEEDED = new PrinterStateReason(1); /** * The device has a media jam. */ public static final PrinterStateReason MEDIA_JAM = new PrinterStateReason(2); /** * Someone has paused the printer, but the device(s) are taking an * appreciable time to stop. Later, when all output has stopped, * the {@link PrinterState PrinterState} becomes STOPPED, * and the PAUSED value replaces * the MOVING_TO_PAUSED value in the {@link PrinterStateReasons * PrinterStateReasons} attribute. This value must be supported if the * printer can be paused and the implementation takes significant time to * pause a device in certain circumstances. */ public static final PrinterStateReason MOVING_TO_PAUSED = new PrinterStateReason(3); /** * Someone has paused the printer and the printer's {@link PrinterState * PrinterState} is STOPPED. In this state, a printer must not produce * printed output, but it must perform other operations requested by a * client. If a printer had been printing a job when the printer was * paused, * the Printer must resume printing that job when the printer is no longer * paused and leave no evidence in the printed output of such a pause. * This value must be supported if the printer can be paused. */ public static final PrinterStateReason PAUSED = new PrinterStateReason(4); /** * Someone has removed a printer from service, and the device may be * powered down or physically removed. * In this state, a printer must not produce * printed output, and unless the printer is realized by a print server * that is still active, the printer must perform no other operations * requested by a client. * If a printer had been printing a job when it was shut down, * the printer need not resume printing that job when the printer is no * longer shut down. If the printer resumes printing such a job, it may * leave evidence in the printed output of such a shutdown, e.g. the part * printed before the shutdown may be printed a second time after the * shutdown. */ public static final PrinterStateReason SHUTDOWN = new PrinterStateReason(5); /** * The printer has scheduled a job on the output device and is in the * process of connecting to a shared network output device (and might not * be able to actually start printing the job for an arbitrarily long time * depending on the usage of the output device by other servers on the * network). */ public static final PrinterStateReason CONNECTING_TO_DEVICE = new PrinterStateReason(6); /** * The server was able to connect to the output device (or is always * connected), but was unable to get a response from the output device. */ public static final PrinterStateReason TIMED_OUT = new PrinterStateReason(7); /** * The printer is in the process of stopping the device and will be * stopped in a while. * When the device is stopped, the printer will change the * {@link PrinterState PrinterState} to STOPPED. The STOPPING reason is * never an error, even for a printer with a single output device. When an * output device ceases accepting jobs, the printer's {@link * PrinterStateReasons PrinterStateReasons} will have this reason while * the output device completes printing. */ public static final PrinterStateReason STOPPING = new PrinterStateReason(8); /** * When a printer controls more than one output device, this reason * indicates that one or more output devices are stopped. If the reason's * severity is a report, fewer than half of the output devices are * stopped. * If the reason's severity is a warning, half or more but fewer than * all of the output devices are stopped. */ public static final PrinterStateReason STOPPED_PARTLY = new PrinterStateReason(9); /** * The device is low on toner. */ public static final PrinterStateReason TONER_LOW = new PrinterStateReason(10); /** * The device is out of toner. */ public static final PrinterStateReason TONER_EMPTY = new PrinterStateReason(11); /** * The limit of persistent storage allocated for spooling has been * reached. * The printer is temporarily unable to accept more jobs. The printer will * remove this reason when it is able to accept more jobs. * This value should be used by a non-spooling printer that only * accepts one or a small number * jobs at a time or a spooling printer that has filled the spool space. */ public static final PrinterStateReason SPOOL_AREA_FULL = new PrinterStateReason(12); /** * One or more covers on the device are open. */ public static final PrinterStateReason COVER_OPEN = new PrinterStateReason(13); /** * One or more interlock devices on the printer are unlocked. */ public static final PrinterStateReason INTERLOCK_OPEN = new PrinterStateReason(14); /** * One or more doors on the device are open. */ public static final PrinterStateReason DOOR_OPEN = new PrinterStateReason(15); /** * One or more input trays are not in the device. */ public static final PrinterStateReason INPUT_TRAY_MISSING = new PrinterStateReason(16); /** * At least one input tray is low on media. */ public static final PrinterStateReason MEDIA_LOW = new PrinterStateReason(17); /** * At least one input tray is empty. */ public static final PrinterStateReason MEDIA_EMPTY = new PrinterStateReason(18); /** * One or more output trays are not in the device. */ public static final PrinterStateReason OUTPUT_TRAY_MISSING = new PrinterStateReason(19); /** * One or more output areas are almost full * (e.g. tray, stacker, collator). */ public static final PrinterStateReason OUTPUT_AREA_ALMOST_FULL = new PrinterStateReason(20); /** * One or more output areas are full (e.g. tray, stacker, collator). */ public static final PrinterStateReason OUTPUT_AREA_FULL = new PrinterStateReason(21); /** * The device is low on at least one marker supply (e.g. toner, ink, * ribbon). */ public static final PrinterStateReason MARKER_SUPPLY_LOW = new PrinterStateReason(22); /** * The device is out of at least one marker supply (e.g. toner, ink, * ribbon). */ public static final PrinterStateReason MARKER_SUPPLY_EMPTY = new PrinterStateReason(23); /** * The device marker supply waste receptacle is almost full. */ public static final PrinterStateReason MARKER_WASTE_ALMOST_FULL = new PrinterStateReason(24); /** * The device marker supply waste receptacle is full. */ public static final PrinterStateReason MARKER_WASTE_FULL = new PrinterStateReason(25); /** * The fuser temperature is above normal. */ public static final PrinterStateReason FUSER_OVER_TEMP = new PrinterStateReason(26); /** * The fuser temperature is below normal. */ public static final PrinterStateReason FUSER_UNDER_TEMP = new PrinterStateReason(27); /** * The optical photo conductor is near end of life. */ public static final PrinterStateReason OPC_NEAR_EOL = new PrinterStateReason(28); /** * The optical photo conductor is no longer functioning. */ public static final PrinterStateReason OPC_LIFE_OVER = new PrinterStateReason(29); /** * The device is low on developer. */ public static final PrinterStateReason DEVELOPER_LOW = new PrinterStateReason(30); /** * The device is out of developer. */ public static final PrinterStateReason DEVELOPER_EMPTY = new PrinterStateReason(31); /** * An interpreter resource is unavailable (e.g., font, form). */ public static final PrinterStateReason INTERPRETER_RESOURCE_UNAVAILABLE = new PrinterStateReason(32); /** * Construct a new printer state reason enumeration value with * the given integer value. * * @param value Integer value. */ protected PrinterStateReason(int value) { super (value); } private static final String[] myStringTable = { "other", "media-needed", "media-jam", "moving-to-paused", "paused", "shutdown", "connecting-to-device", "timed-out", "stopping", "stopped-partly", "toner-low", "toner-empty", "spool-area-full", "cover-open", "interlock-open", "door-open", "input-tray-missing", "media-low", "media-empty", "output-tray-missing", "output-area-almost-full", "output-area-full", "marker-supply-low", "marker-supply-empty", "marker-waste-almost-full", "marker-waste-full", "fuser-over-temp", "fuser-under-temp", "opc-near-eol", "opc-life-over", "developer-low", "developer-empty", "interpreter-resource-unavailable" }; private static final PrinterStateReason[] myEnumValueTable = { OTHER, MEDIA_NEEDED, MEDIA_JAM, MOVING_TO_PAUSED, PAUSED, SHUTDOWN, CONNECTING_TO_DEVICE, TIMED_OUT, STOPPING, STOPPED_PARTLY, TONER_LOW, TONER_EMPTY, SPOOL_AREA_FULL, COVER_OPEN, INTERLOCK_OPEN, DOOR_OPEN, INPUT_TRAY_MISSING, MEDIA_LOW, MEDIA_EMPTY, OUTPUT_TRAY_MISSING, OUTPUT_AREA_ALMOST_FULL, OUTPUT_AREA_FULL, MARKER_SUPPLY_LOW, MARKER_SUPPLY_EMPTY, MARKER_WASTE_ALMOST_FULL, MARKER_WASTE_FULL, FUSER_OVER_TEMP, FUSER_UNDER_TEMP, OPC_NEAR_EOL, OPC_LIFE_OVER, DEVELOPER_LOW, DEVELOPER_EMPTY, INTERPRETER_RESOURCE_UNAVAILABLE }; /** * Returns the string table for class PrinterStateReason. */ protected String[] getStringTable() { return myStringTable.clone(); } /** * Returns the enumeration value table for class PrinterStateReason. */ protected EnumSyntax[] getEnumValueTable() { return (EnumSyntax[])myEnumValueTable.clone(); } /** * Get the printing attribute class which is to be used as the "category" * for this printing attribute value. *

* For class PrinterStateReason and any vendor-defined subclasses, the * category is class PrinterStateReason itself. * * @return Printing attribute class (category), an instance of class * {@link java.lang.Class java.lang.Class}. */ public final Class getCategory() { return PrinterStateReason.class; } /** * Get the name of the category of which this attribute value is an * instance. *

* For class PrinterStateReason and any vendor-defined subclasses, the * category name is "printer-state-reason". * * @return Attribute category name. */ public final String getName() { return "printer-state-reason"; } }