Class PrinterStateReasons is a printing attribute class, a set of enumeration values, 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.
Instances of {@link PrinterStateReason PrinterStateReason} do not appear ina Print Service's attribute set directly. Rather, a PrinterStateReasons attribute appears in the Print Service's attribute set. The PrinterStateReasons attribute contains zero, one, or more than one {@link PrinterStateReason PrinterStateReason} objects which pertain to the PrintService's status, and each {@link PrinterStateReason PrinterStateReason}object is associated with a {@link Severity Severity} level of REPORT(least severe), WARNING, or ERROR (most severe). The printer adds a {@link PrinterStateReason PrinterStateReason} object to the Print Service'sPrinterStateReasons attribute when the corresponding condition becomes true of the printer, and the printer removes the {@link PrinterStateReason PrinterStateReason} object again when the corresponding condition becomesfalse, regardless of whether the Print Service's overall {@link PrinterState PrinterState} also changed.
Class PrinterStateReasons inherits its implementation from class {@link java.util.HashMap java.util.HashMap}. Each entry in the map consists of a {@link PrinterStateReason PrinterStateReason} object (key) mapping to a{@link Severity Severity} object (value):
Unlike most printing attributes which are immutable once constructed, class PrinterStateReasons is designed to be mutable; you can add {@link PrinterStateReason PrinterStateReason} objects to an existingPrinterStateReasons object and remove them again. However, like class {@link java.util.HashMap java.util.HashMap}, class PrinterStateReasons is not multiple thread safe. If a PrinterStateReasons object will be used by multiple threads, be sure to synchronize its operations (e.g., using a synchronized map view obtained from class {@link java.util.Collections java.util.Collections}).
IPP Compatibility: The string values returned by each individual {@link PrinterStateReason PrinterStateReason} object's and the associated{@link Severity Severity} object's toString()
methods,concatenated together with a hyphen ("-"
) in between, gives the IPP keyword value. The category name returned by getName()
gives the IPP attribute name.
@author Alan Kaminsky