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
PrinterState
attribute.
Instances of PrinterStateReason
do not appear in a 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 PrinterStateReason
objects which pertain to the Print Service's status, and each PrinterStateReason
object is associated with a Severity
level of REPORT
(least severe), WARNING
, or ERROR
(most severe). The printer adds a PrinterStateReason
object to the Print Service's 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 PrinterState
also changed.
Class PrinterStateReasons inherits its implementation from class java.util.HashMap
. Each entry in the map consists of a PrinterStateReason
object (key) mapping to a Severity
object (value):
Unlike most printing attributes which are immutable once constructed, class PrinterStateReasons
is designed to be mutable; you can add PrinterStateReason
objects to an existing PrinterStateReasons
object and remove them again. However, like class 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 java.util.Collections
).
IPP Compatibility: The string values returned by each individual PrinterStateReason
object's and the associated 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.