JobStateReasons (Java SE 15 & JDK 15)
Description: declaration: module: java.desktop, package: javax.print.attribute.standard, class: JobStateReasons
Keywords: javax.print.attribute.standard.JobStateReasons class

Module java.desktop
Package javax.print.attribute.standard

# Class JobStateReasons

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
java.util.HashSet<JobStateReason>
javax.print.attribute.standard.JobStateReasons

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Iterable<JobStateReason>`, `Collection<JobStateReason>`, `Set<JobStateReason>`, `Attribute`, `PrintJobAttribute`

    public final class JobStateReasons
    extends HashSet<JobStateReason>
    implements PrintJobAttribute

Class `JobStateReasons` is a printing attribute class, a set of enumeration values, that provides additional information about the job's current state, i.e., information that augments the value of the job's `JobState` attribute.

Instances of `JobStateReason` do not appear in a Print Job's attribute set directly. Rather, a `JobStateReasons` attribute appears in the Print Job's attribute set. The `JobStateReasons` attribute contains zero, one, or more than one `JobStateReason` objects which pertain to the Print Job's status. The printer adds a `JobStateReason` object to the Print Job's JobStateReasons attribute when the corresponding condition becomes true of the Print Job, and the printer removes the `JobStateReason` object again when the corresponding condition becomes false, regardless of whether the Print Job's overall `JobState` also changed.

Class `JobStateReasons` inherits its implementation from class `java.util.HashSet`. Unlike most printing attributes which are immutable once constructed, class `JobStateReasons` is designed to be mutable; you can add `JobStateReason` objects to an existing `JobStateReasons` object and remove them again. However, like class `java.util.HashSet`, class `JobStateReasons` is not multiple thread safe. If a `JobStateReasons` object will be used by multiple threads, be sure to synchronize its operations (e.g., using a synchronized set view obtained from class `java.util.Collections`).

IPP Compatibility: The string value returned by each individual `JobStateReason` object's `toString()` method gives the IPP keyword value. The category name returned by `getName()` gives the IPP attribute name.

See Also:
  Serialized Form

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `JobStateReasons()` | Construct a new, empty job state reasons attribute; the underlying hash set has the default initial capacity and load factor.
  `JobStateReasons​(int initialCapacity)` | Construct a new, empty job state reasons attribute; the underlying hash set has the given initial capacity and the default load factor.
  `JobStateReasons​(int initialCapacity, float loadFactor)` | Construct a new, empty job state reasons attribute; the underlying hash set has the given initial capacity and load factor.
  `JobStateReasons​(Collection<JobStateReason> collection)` | Construct a new job state reasons attribute that contains the same `JobStateReason` objects as the given collection.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `boolean` | `add​(JobStateReason o)` | Adds the specified element to this job state reasons attribute if it is not already present.
  `Class<? extends Attribute>` | `getCategory()` | Get the printing attribute class which is to be used as the "category" for this printing attribute value.
  `String` | `getName()` | Get the name of the category of which this attribute value is an instance.

  ### Methods declared in class java.util.HashSet

  `clear, clone, contains, isEmpty, iterator, remove, size, spliterator`

  ### Methods declared in class java.util.AbstractSet

  `equals, hashCode, removeAll`

  ### Methods declared in class java.util.AbstractCollection

  `addAll, containsAll, retainAll, toArray, toArray, toString`

  ### Methods declared in class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods declared in interface java.util.Collection

  `parallelStream, removeIf, stream, toArray`

  ### Methods declared in interface java.lang.Iterable

  `forEach`

  ### Methods declared in interface java.util.Set

  `addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray`

- ## Constructor Details

  - ### JobStateReasons

    public JobStateReasons()
    Construct a new, empty job state reasons attribute; the underlying hash set has the default initial capacity and load factor.

  - ### JobStateReasons

    public JobStateReasons​(int initialCapacity)
    Construct a new, empty job state reasons attribute; the underlying hash set has the given initial capacity and the default load factor.
    Parameters:
      `initialCapacity` - initial capacity
    Throws:
      `IllegalArgumentException` - if the initial capacity is negative

  - ### JobStateReasons

    public JobStateReasons​(int initialCapacity, float loadFactor)
    Construct a new, empty job state reasons attribute; the underlying hash set has the given initial capacity and load factor.
    Parameters:
      `initialCapacity` - initial capacity
      `loadFactor` - load factor
    Throws:
      `IllegalArgumentException` - if the initial capacity is negative

  - ### JobStateReasons

    public JobStateReasons​(Collection<JobStateReason> collection)
    Construct a new job state reasons attribute that contains the same `JobStateReason` objects as the given collection. The underlying hash set's initial capacity and load factor are as specified in the superclass constructor `HashSet(Collection)`.
    Parameters:
      `collection` - collection to copy
    Throws:
      `NullPointerException` - if `collection` is `null` or if any element in `collection` is `null`
      `ClassCastException` - if any element in `collection` is not an instance of class `JobStateReason`

- ## Method Details

  - ### add

    public boolean add​(JobStateReason o)
    Adds the specified element to this job state reasons attribute if it is not already present. The element to be added must be an instance of class `JobStateReason`. If this job state reasons attribute already contains the specified element, the call leaves this job state reasons attribute unchanged and returns `false`.
    Specified by:
      `add` in interface `Collection<JobStateReason>`
    Specified by:
      `add` in interface `Set<JobStateReason>`
    Overrides:
      `add` in class `HashSet<JobStateReason>`
    Parameters:
      `o` - element to be added to this job state reasons attribute
    Returns:
      `true` if this job state reasons attribute did not already contain the specified element
    Throws:
      `NullPointerException` - if the specified element is `null`
      `ClassCastException` - if the specified element is not an instance of class `JobStateReason`
    Since:
      1.5

  - ### getCategory

    public final Class<? extends Attribute> getCategory()
    Get the printing attribute class which is to be used as the "category" for this printing attribute value.

    For class `JobStateReasons`, the category is class JobStateReasons itself.

    Specified by:
      `getCategory` in interface `Attribute`
    Returns:
      printing attribute class (category), an instance of class `java.lang.Class`

  - ### getName

    public final String getName()
    Get the name of the category of which this attribute value is an instance.

    For class JobStateReasons, the category name is `"job-state-reasons"`.

    Specified by:
      `getName` in interface `Attribute`
    Returns:
      attribute category name