1 /* 2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 27 package javax.print.attribute; 28 29 /** 30 * Interface PrintRequestAttributeSet specifies the interface for a set of 31 * print request attributes, i.e. printing attributes that implement interface 32 * {@link PrintRequestAttribute PrintRequestAttribute}. 33 * The client uses a PrintRequestAttributeSet to specify the settings to be 34 * applied to a whole print job and to all the docs in the print job. 35 * <P> 36 * PrintRequestAttributeSet is just an {@link AttributeSet AttributeSet} whose 37 * constructors and mutating operations guarantee an additional invariant, 38 * namely that all attribute values in the PrintRequestAttributeSet must be 39 * instances of interface {@link PrintRequestAttribute PrintRequestAttribute}. 40 * The {@link #add(Attribute) add(Attribute)}, and 41 * {@link #addAll(AttributeSet) addAll(AttributeSet)} operations 42 * are respecified below to guarantee this additional invariant. 43 * <P> 44 * 45 * @author Alan Kaminsky 46 */ 47 public interface PrintRequestAttributeSet extends AttributeSet { 48 49 /** 50 * Adds the specified attribute value to this attribute set if it is not 51 * already present, first removing any existing value in the same 52 * attribute category as the specified attribute value (optional 53 * operation). 54 * 55 * @param attribute Attribute value to be added to this attribute set. 56 * 57 * @return <tt>true</tt> if this attribute set changed as a result of 58 * the call, i.e., the given attribute value was not already a 59 * member of this attribute set. 60 * 61 * @throws UnmodifiableSetException 62 * (unchecked exception) Thrown if this attribute set does not 63 * support the <CODE>add()</CODE> operation. 64 * @throws ClassCastException 65 * (unchecked exception) Thrown if the <CODE>attribute</CODE> is 66 * not an instance of interface 67 * {@link PrintRequestAttribute PrintRequestAttribute}. 68 * @throws NullPointerException 69 * (unchecked exception) Thrown if the <CODE>attribute</CODE> is null. 70 */ 71 public boolean add(Attribute attribute); 72 73 /** 74 * Adds all of the elements in the specified set to this attribute. 75 * The outcome is the same as if the 76 * {@link #add(Attribute) add(Attribute)} 77 * operation had been applied to this attribute set successively with 78 * each element from the specified set. If none of the categories in the 79 * specified set are the same as any categories in this attribute set, 80 * the <tt>addAll()</tt> operation effectively modifies this attribute 81 * set so that its value is the <i>union</i> of the two sets. 82 * <P> 83 * The behavior of the <CODE>addAll()</CODE> operation is unspecified if 84 * the specified set is modified while the operation is in progress. 85 * <P> 86 * If the <CODE>addAll()</CODE> operation throws an exception, the effect 87 * on this attribute set's state is implementation dependent; elements 88 * from the specified set before the point of the exception may or 89 * may not have been added to this attribute set. 90 * 91 * @param attributes whose elements are to be added to this attribute 92 * set. 93 * 94 * @return <tt>true</tt> if this attribute set changed as a result of 95 * the call. 96 * 97 * @throws UnmodifiableSetException 98 * (Unchecked exception) Thrown if this attribute set does not 99 * support the <tt>addAll()</tt> method. 100 * @throws ClassCastException 101 * (Unchecked exception) Thrown if some element in the specified 102 * set is not an instance of interface {@link PrintRequestAttribute 103 * PrintRequestAttribute}. 104 * @throws NullPointerException 105 * (Unchecked exception) Thrown if the specified set is null. 106 * 107 * @see #add(Attribute) 108 */ 109 public boolean addAll(AttributeSet attributes); 110 111 }