< prev index next >

src/java.desktop/share/classes/javax/print/attribute/package-info.java

Print this page




 120  * their own but are always aggregated into higher-level attributes. These
 121  * low-level attribute classes only implement interface
 122  * <a href="Attribute.html">Attribute</a>, not any of the tagging subinterfaces.
 123  * <p>
 124  * The Java Print Service API defines a group of standard attribute classes
 125  * modeled upon the attributes in the Internet Printing Protocol (IPP) version
 126  * 1.1. The standard attribute classes are in the subpackage
 127  * {@code javax.print.attribute.standard} to keep the actual attribute classes
 128  * conceptually separate from the generic apparatus defined in package
 129  * {@code javax.print.attribute}.
 130  *
 131  * <h2>Attribute Sets</h2>
 132  * A client usually needs to provide more than one processing instruction when
 133  * submitting a print job. For example, the client might need to specify a media
 134  * size of A4 and a landscape orientation. To send more than one processing
 135  * instruction, the client collects the attributes into an attribute set, which
 136  * the Java Print Service API represents with the
 137  * <a href="AttributeSet.html">AttributeSet</a> interface.
 138  * <p>
 139  * The {@code AttributeSet} interface is similar to the
 140  * <a href="../../../java/util/Map.html">Map</a> interface: it provides a map of
 141  * key to values, in which each key is unique and can contain no more than one
 142  * value. However, the {@code AttributeSet} interface is designed to
 143  * specifically support the needs of the Java Print Service API. An
 144  * {@code AttributeSet} requires that:
 145  * <ol type=1>
 146  *   <li>Each key in an {@code AttributeSet} corresponds to a category, and the
 147  *   value of the key can only be one of the attribute values that belong to the
 148  *   category represented by the key. Thus, unlike a {@code Map}, an
 149  *   {@code AttributeSet} restricts the possible values of a key: an attribute
 150  *   category cannot be set to an attribute value that does not belong to that
 151  *   category.
 152  *   <li>No two attributes from the same category can exist in the same set. For
 153  *   example, an attribute collection must not contain both a "one-sided"
 154  *   attribute and a "two-sided" attribute because these two attributes give the
 155  *   printer conflicting instructions.
 156  *   <li>Only attributes implementing the {@code Attribute} interface can be
 157  *   added to the set.
 158  * </ol>
 159  * The {@code javax.print.attribute} package includes
 160  * <a href="HashAttributeSet.html">HashAttributeSet</a> as a concrete




 120  * their own but are always aggregated into higher-level attributes. These
 121  * low-level attribute classes only implement interface
 122  * <a href="Attribute.html">Attribute</a>, not any of the tagging subinterfaces.
 123  * <p>
 124  * The Java Print Service API defines a group of standard attribute classes
 125  * modeled upon the attributes in the Internet Printing Protocol (IPP) version
 126  * 1.1. The standard attribute classes are in the subpackage
 127  * {@code javax.print.attribute.standard} to keep the actual attribute classes
 128  * conceptually separate from the generic apparatus defined in package
 129  * {@code javax.print.attribute}.
 130  *
 131  * <h2>Attribute Sets</h2>
 132  * A client usually needs to provide more than one processing instruction when
 133  * submitting a print job. For example, the client might need to specify a media
 134  * size of A4 and a landscape orientation. To send more than one processing
 135  * instruction, the client collects the attributes into an attribute set, which
 136  * the Java Print Service API represents with the
 137  * <a href="AttributeSet.html">AttributeSet</a> interface.
 138  * <p>
 139  * The {@code AttributeSet} interface is similar to the
 140  * {@link java.util.Map Map} interface: it provides a map of
 141  * key to values, in which each key is unique and can contain no more than one
 142  * value. However, the {@code AttributeSet} interface is designed to
 143  * specifically support the needs of the Java Print Service API. An
 144  * {@code AttributeSet} requires that:
 145  * <ol type=1>
 146  *   <li>Each key in an {@code AttributeSet} corresponds to a category, and the
 147  *   value of the key can only be one of the attribute values that belong to the
 148  *   category represented by the key. Thus, unlike a {@code Map}, an
 149  *   {@code AttributeSet} restricts the possible values of a key: an attribute
 150  *   category cannot be set to an attribute value that does not belong to that
 151  *   category.
 152  *   <li>No two attributes from the same category can exist in the same set. For
 153  *   example, an attribute collection must not contain both a "one-sided"
 154  *   attribute and a "two-sided" attribute because these two attributes give the
 155  *   printer conflicting instructions.
 156  *   <li>Only attributes implementing the {@code Attribute} interface can be
 157  *   added to the set.
 158  * </ol>
 159  * The {@code javax.print.attribute} package includes
 160  * <a href="HashAttributeSet.html">HashAttributeSet</a> as a concrete


< prev index next >