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 * <a href="../../../../java.base/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
|