View Javadoc
1   
2   /*
3    * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
4    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5    *
6    * This code is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU General Public License version 2 only, as
8    * published by the Free Software Foundation.  Oracle designates this
9    * particular file as subject to the "Classpath" exception as provided
10   * by Oracle in the LICENSE file that accompanied this code.
11   *
12   * This code is distributed in the hope that it will be useful, but WITHOUT
13   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15   * version 2 for more details (a copy is included in the LICENSE file that
16   * accompanied this code).
17   *
18   * You should have received a copy of the GNU General Public License version
19   * 2 along with this work; if not, write to the Free Software Foundation,
20   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21   *
22   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
23   * or visit www.oracle.com if you need additional information or have any
24   * questions.
25   */
26  package javax.print.attribute.standard;
27  
28  import javax.print.attribute.Attribute;
29  import javax.print.attribute.EnumSyntax;
30  import javax.print.attribute.DocAttribute;
31  import javax.print.attribute.PrintRequestAttribute;
32  import javax.print.attribute.PrintJobAttribute;
33  
34  /**
35   * Class Chromaticity is a printing attribute class, an enumeration, that
36   * specifies monochrome or color printing. This is used by a print client
37   * to specify how the print data should be generated or processed. It is not
38   * descriptive of the color capabilities of the device. Query the service's
39   * {@link ColorSupported ColorSupported} attribute to determine if the device
40   * can be verified to support color printing.
41   * <P>
42   * The table below shows the effects of specifying a Chromaticity attribute of
43   * {@link #MONOCHROME MONOCHROME} or {@link #COLOR COLOR}
44   * for a monochrome or color document.
45   * <P>
46   * <TABLE BORDER=1 CELLPADDING=2 CELLSPACING=1 SUMMARY="Shows effects of specifying MONOCHROME or COLOR Chromaticity attributes">
47   * <TR>
48   * <TH>
49   * Chromaticity<BR>Attribute
50   * </TH>
51   * <TH>
52   * Effect on<BR>Monochrome Document
53   * </TH>
54   * <TH>
55   * Effect on<BR>Color Document
56   * </TH>
57   * </TR>
58   * <TR>
59   * <TD>
60   * {@link #MONOCHROME MONOCHROME}
61   * </TD>
62   * <TD>
63   * Printed as is, in monochrome
64   * </TD>
65   * <TD>
66   * Printed in monochrome, with colors converted to shades of gray
67   * </TD>
68   * </TR>
69   * <TR>
70   * <TD>
71   * {@link #COLOR COLOR}
72   * </TD>
73   * <TD>
74   * Printed as is, in monochrome
75   * </TD>
76   * <TD>
77   * Printed as is, in color
78   * </TD>
79   * </TR>
80   * </TABLE>
81   * <P>
82   * <P>
83   * <B>IPP Compatibility:</B> Chromaticity is not an IPP attribute at present.
84   * <P>
85   *
86   * @author  Alan Kaminsky
87   */
88  public final class Chromaticity extends EnumSyntax
89      implements DocAttribute, PrintRequestAttribute, PrintJobAttribute {
90  
91      private static final long serialVersionUID = 4660543931355214012L;
92  
93      /**
94       * Monochrome printing.
95       */
96      public static final Chromaticity MONOCHROME = new Chromaticity(0);
97  
98      /**
99       * Color printing.
100      */
101     public static final Chromaticity COLOR = new Chromaticity(1);
102 
103 
104     /**
105      * Construct a new chromaticity enumeration value with the given integer
106      * value.
107      *
108      * @param  value  Integer value.
109      */
110     protected Chromaticity(int value) {
111         super(value);
112     }
113 
114     private static final String[] myStringTable = {"monochrome",
115                                                    "color"};
116 
117     private static final Chromaticity[] myEnumValueTable = {MONOCHROME,
118                                                             COLOR};
119 
120     /**
121      * Returns the string table for class Chromaticity.
122      */
123     protected String[] getStringTable() {
124         return myStringTable;
125     }
126 
127     /**
128      * Returns the enumeration value table for class Chromaticity.
129      */
130     protected EnumSyntax[] getEnumValueTable() {
131         return myEnumValueTable;
132     }
133 
134     /**
135      * Get the printing attribute class which is to be used as the "category"
136      * for this printing attribute value.
137      * <P>
138      * For class Chromaticity, the category is the class Chromaticity itself.
139      *
140      * @return  Printing attribute class (category), an instance of class
141      *          {@link java.lang.Class java.lang.Class}.
142      */
143     public final Class<? extends Attribute> getCategory() {
144         return Chromaticity.class;
145     }
146 
147     /**
148      * Get the name of the category of which this attribute value is an
149      * instance.
150      * <P>
151      * For class Chromaticity, the category name is <CODE>"chromaticity"</CODE>.
152      *
153      * @return  Attribute category name.
154      */
155         public final String getName() {
156             return "chromaticity";
157         }
158 
159         }