blob: da4060965a071f155b575cad0e6a566297a5b76e [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.EnumSyntax;
29import javax.print.attribute.DocAttribute;
30import javax.print.attribute.PrintRequestAttribute;
31import javax.print.attribute.PrintJobAttribute;
32
33/**
34 * Class PrintQuality is a printing attribute class, an enumeration,
35 * that specifies the print quality that the printer uses for the job.
36 * <P>
37 * <B>IPP Compatibility:</B> The category name returned by
38 * <CODE>getName()</CODE> is the IPP attribute name. The enumeration's
39 * integer value is the IPP enum value. The <code>toString()</code> method
40 * returns the IPP string representation of the attribute value.
41 * <P>
42 *
43 * @author David Mendenhall
44 * @author Alan Kaminsky
45 */
46public class PrintQuality extends EnumSyntax
47 implements DocAttribute, PrintRequestAttribute, PrintJobAttribute {
48
49 private static final long serialVersionUID = -3072341285225858365L;
50 /**
51 * Lowest quality available on the printer.
52 */
53 public static final PrintQuality DRAFT = new PrintQuality(3);
54
55 /**
56 * Normal or intermediate quality on the printer.
57 */
58 public static final PrintQuality NORMAL = new PrintQuality(4);
59
60 /**
61 * Highest quality available on the printer.
62 */
63 public static final PrintQuality HIGH = new PrintQuality(5);
64
65 /**
66 * Construct a new print quality enumeration value with the given integer
67 * value.
68 *
69 * @param value Integer value.
70 */
71 protected PrintQuality(int value) {
72 super (value);
73 }
74
75 private static final String[] myStringTable = {
76 "draft",
77 "normal",
78 "high"
79 };
80
81 private static final PrintQuality[] myEnumValueTable = {
82 DRAFT,
83 NORMAL,
84 HIGH
85 };
86
87 /**
88 * Returns the string table for class PrintQuality.
89 */
90 protected String[] getStringTable() {
91 return (String[])myStringTable.clone();
92 }
93
94 /**
95 * Returns the enumeration value table for class PrintQuality.
96 */
97 protected EnumSyntax[] getEnumValueTable() {
98 return (EnumSyntax[])myEnumValueTable.clone();
99 }
100
101 /**
102 * Returns the lowest integer value used by class PrintQuality.
103 */
104 protected int getOffset() {
105 return 3;
106 }
107
108 /**
109 * Get the printing attribute class which is to be used as the "category"
110 * for this printing attribute value.
111 * <P>
112 * For class PrintQuality and any vendor-defined subclasses, the category is
113 * class PrintQuality itself.
114 *
115 * @return Printing attribute class (category), an instance of class
116 * {@link java.lang.Class java.lang.Class}.
117 */
118 public final Class<? extends Attribute> getCategory() {
119 return PrintQuality.class;
120 }
121
122 /**
123 * Get the name of the category of which this attribute value is an
124 * instance.
125 * <P>
126 * For class PrintQuality and any vendor-defined subclasses, the category
127 * name is <CODE>"print-quality"</CODE>.
128 *
129 * @return Attribute category name.
130 */
131 public final String getName() {
132 return "print-quality";
133 }
134
135}