1 2 /* 3 * Copyright (c) 2000, 2004, 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 }