blob: dcb2b87f776e6030f969ae5684ea154a423986fa [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2000-2004 Sun Microsystems, Inc. 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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25package javax.print.attribute.standard;
26
27import javax.print.attribute.Attribute;
28import javax.print.attribute.IntegerSyntax;
29import javax.print.attribute.PrintRequestAttribute;
30import javax.print.attribute.PrintJobAttribute;
31
32/**
33 * Class JobPriority is an integer valued printing attribute class that
34 * specifies a print job's priority.
35 * <P>
36 * If a JobPriority attribute is specified for a Print Job, it specifies a
37 * priority for scheduling the job. A higher value specifies a higher priority.
38 * The value 1 indicates the lowest possible priority. The value 100 indicates
39 * the highest possible priority. Among those jobs that are ready to print, a
40 * printer must print all jobs with a priority value of <I>n</I> before printing
41 * those with a priority value of <I>n</I>-1 for all <I>n.</I>
42 * <P>
43 * If the client does not specify a JobPriority attribute for a Print Job and
44 * the printer does support the JobPriority attribute, the printer must use an
45 * implementation-defined default JobPriority value.
46 * <P>
47 * The client can always specify any job priority value from 1 to 100 for a job.
48 * However, a Print Service instance may support fewer than 100 different
49 * job priority levels. If this is the case, the Print Service instance
50 * automatically maps the client-specified job priority value to one of the
51 * supported job priority levels, dividing the 100 job priority values equally
52 * among the available job priority levels.
53 * <P>
54 * <B>IPP Compatibility:</B> The integer value gives the IPP integer value. The
55 * category name returned by <CODE>getName()</CODE> gives the IPP attribute
56 * name.
57 * <P>
58 *
59 * @author Alan Kaminsky
60 */
61public final class JobPriority extends IntegerSyntax
62 implements PrintRequestAttribute, PrintJobAttribute {
63
64 private static final long serialVersionUID = -4599900369040602769L;
65
66 /**
67 * Construct a new job priority attribute with the given integer value.
68 *
69 * @param value Integer value.
70 *
71 * @exception IllegalArgumentException
72 * (Unchecked exception) Thrown if <CODE>value</CODE> is less than 1
73 * or greater than 100.
74 */
75 public JobPriority(int value) {
76 super (value, 1, 100);
77 }
78
79 /**
80 * Returns whether this job priority attribute is equivalent to the passed
81 * in object. To be equivalent, all of the following conditions must be
82 * true:
83 * <OL TYPE=1>
84 * <LI>
85 * <CODE>object</CODE> is not null.
86 * <LI>
87 * <CODE>object</CODE> is an instance of class JobPriority.
88 * <LI>
89 * This job priority attribute's value and <CODE>object</CODE>'s value
90 * are equal.
91 * </OL>
92 *
93 * @param object Object to compare to.
94 *
95 * @return True if <CODE>object</CODE> is equivalent to this job
96 * priority attribute, false otherwise.
97 */
98 public boolean equals(Object object) {
99 return (super.equals (object) && object instanceof JobPriority);
100 }
101
102 /**
103 * Get the printing attribute class which is to be used as the "category"
104 * for this printing attribute value.
105 * <P>
106 * For class JobPriority, the category is class JobPriority itself.
107 *
108 * @return Printing attribute class (category), an instance of class
109 * {@link java.lang.Class java.lang.Class}.
110 */
111 public final Class<? extends Attribute> getCategory() {
112 return JobPriority.class;
113 }
114
115 /**
116 * Get the name of the category of which this attribute value is an
117 * instance.
118 * <P>
119 * For class JobPriority, the category name is <CODE>"job-priority"</CODE>.
120 *
121 * @return Attribute category name.
122 */
123 public final String getName() {
124 return "job-priority";
125 }
126
127}