javax.print.attribute.standard

## Class JobHoldUntil

- java.lang.Object
- - javax.print.attribute.DateTimeSyntax
  - - javax.print.attribute.standard.JobHoldUntil

All Implemented Interfaces:
  Serializable, Cloneable, Attribute, PrintJobAttribute, PrintRequestAttribute

    public final class JobHoldUntil
    extends DateTimeSyntax
    implements PrintRequestAttribute, PrintJobAttribute

Class JobHoldUntil is a printing attribute class, a date-time attribute, that specifies the exact date and time at which the job must become a candidate for printing.

If the value of this attribute specifies a date-time that is in the future, the printer should add the `JobStateReason` value of JOB_HOLD_UNTIL_SPECIFIED to the job's `JobStateReasons` attribute, must move the job to the PENDING_HELD state, and must not schedule the job for printing until the specified date-time arrives.

When the specified date-time arrives, the printer must remove the `JobStateReason` value of JOB_HOLD_UNTIL_SPECIFIED from the job's `JobStateReasons` attribute, if present. If there are no other job state reasons that keep the job in the PENDING_HELD state, the printer must consider the job as a candidate for processing by moving the job to the PENDING state.

If the specified date-time has already passed, the job must be a candidate for processing immediately. Thus, one way to make the job immediately become a candidate for processing is to specify a JobHoldUntil attribute constructed like this (denoting a date-time of January 1, 1970, 00:00:00 GMT):

         JobHoldUntil immediately = new JobHoldUntil (new Date (0L));

If the client does not supply this attribute in a Print Request and the printer supports this attribute, the printer must use its (implementation-dependent) default JobHoldUntil value at job submission time (unlike most job template attributes that are used if necessary at job processing time).

To construct a JobHoldUntil attribute from separate values of the year, month, day, hour, minute, and so on, use a `Calendar` object to construct a `Date` object, then use the `Date` object to construct the JobHoldUntil attribute. To convert a JobHoldUntil attribute to separate values of the year, month, day, hour, minute, and so on, create a `Calendar` object and set it to the `Date` from the JobHoldUntil attribute.

IPP Compatibility: Although IPP supports a "job-hold-until" attribute specified as a keyword, IPP does not at this time support a "job-hold-until" attribute specified as a date and time. However, the date and time can be converted to one of the standard IPP keywords with some loss of precision; for example, a JobHoldUntil value with today's date and 9:00pm local time might be converted to the standard IPP keyword "night". The category name returned by `getName()` gives the IPP attribute name.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`JobHoldUntil(Date dateTime)` Construct a new job hold until date-time attribute with the given `Date` value.

### Method Summary

Methods
`boolean` `equals(Object object)` Returns whether this job hold until attribute is equivalent to the passed in object.
`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 inherited from class javax.print.attribute.DateTimeSyntax

`getValue, hashCode, toString`

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### JobHoldUntil

    public JobHoldUntil(Date dateTime)

Construct a new job hold until date-time attribute with the given `Date` value.

Parameters:
  `dateTime` - `Date` value.
Throws:
  `NullPointerException` - (unchecked exception) Thrown if `dateTime` is null.

### Method Detail

#### equals

    public boolean equals(Object object)

Returns whether this job hold until attribute is equivalent to the passed in object. To be equivalent, all of the following conditions must be true:

1. `object` is not null.
2. `object` is an instance of class JobHoldUntil.
3. This job hold until attribute's `Date` value and `object`'s `Date` value are equal.

Overrides:
  `equals` in class `DateTimeSyntax`
Parameters:
  `object` - Object to compare to.
Returns:
  True if `object` is equivalent to this job hold until attribute, false otherwise.
See Also:
  `Object.hashCode()`, `Hashtable`

#### 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 JobHoldUntil, the category is class JobHoldUntil 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 JobHoldUntil, the category name is `"job-hold-until"`.

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

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.