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

# Class Copies

java.lang.Object
javax.print.attribute.IntegerSyntax
javax.print.attribute.standard.Copies

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

public final class Copies extends IntegerSyntax implements PrintRequestAttribute, PrintJobAttribute
Class `Copies` is an integer valued printing attribute class that specifies the number of copies to be printed.

On many devices the supported number of collated copies will be limited by the number of physical output bins on the device, and may be different from the number of uncollated copies which can be supported.

The effect of a `Copies` attribute with a value of n on a multidoc print job (a job with multiple documents) depends on the (perhaps defaulted) value of the `MultipleDocumentHandling` attribute:

- `SINGLE_DOCUMENT` -- The result will be n copies of a single output document comprising all the input docs.
- `SINGLE_DOCUMENT_NEW_SHEET` -- The result will be n copies of a single output document comprising all the input docs, and the first impression of each input doc will always start on a new media sheet.
- `SEPARATE_DOCUMENTS_UNCOLLATED_COPIES` -- The result will be n copies of the first input document, followed by n copies of the second input document, . . . followed by n copies of the last input document.
- `SEPARATE_DOCUMENTS_COLLATED_COPIES` -- The result will be the first input document, the second input document, . . . the last input document, the group of documents being repeated n times.

IPP Compatibility: The integer value gives the IPP integer value. The category name returned by `getName()` gives the IPP attribute name.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`Copies(int value)`
Construct a new copies attribute with the given integer value.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object object)`
Returns whether this copies attribute is equivalent to the passed in object.
`final Class<? extends Attribute>`
`getCategory()`
Get the printing attribute class which is to be used as the "category" for this printing attribute value.
`final String`
`getName()`
Get the name of the category of which this attribute value is an instance.

### Methods declared in class javax.print.attribute.IntegerSyntax

`getValue, hashCode, toString`

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

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

## Constructor Details

### Copies

public Copies(int value)
Construct a new copies attribute with the given integer value.

Parameters:
  `value` - Integer value
Throws:
  `IllegalArgumentException` - if `value < 1`

## Method Details

### equals

public boolean equals(Object object)
Returns whether this copies 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 `Copies`.
3. This copies attribute's value and `object`'s value are equal.

Overrides:
  `equals` in class `IntegerSyntax`
Parameters:
  `object` - `Object` to compare to
Returns:
  `true` if `object` is equivalent to this copies attribute, `false` otherwise
See Also:
  - `Object.hashCode()`
  - `HashMap`

### 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 `Copies`, the category is class `Copies` 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 `Copies`, the category name is `"copies"`.

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