Frames | No Frames |
1: /* MultipleDocumentHandlingSupported.java -- 2: Copyright (C) 2006 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: package gnu.javax.print.ipp.attribute.supported; 39: 40: import gnu.javax.print.ipp.IppUtilities; 41: 42: import java.util.Iterator; 43: import java.util.Set; 44: 45: import javax.print.attribute.Attribute; 46: import javax.print.attribute.EnumSyntax; 47: import javax.print.attribute.SupportedValuesAttribute; 48: import javax.print.attribute.standard.MultipleDocumentHandling; 49: 50: 51: /** 52: * <code>MultipleDocumentHandlingSupported</code> provides the 53: * supported values for the MultipleDocumentHandling attribute. 54: * 55: * @author Wolfgang Baer (WBaer@gmx.de) 56: */ 57: public final class MultipleDocumentHandlingSupported extends EnumSyntax 58: implements SupportedValuesAttribute 59: { 60: 61: //a keyword based attribute in IPP - int values just starting at 0 62: 63: /** 64: * Supports only multiple documents treated as a single document. This 65: * applies to attributes which specify treatment of multiple document jobs. 66: */ 67: public static final MultipleDocumentHandlingSupported SINGLE_DOCUMENT = 68: new MultipleDocumentHandlingSupported(0); 69: 70: /** Supports multiple documents as uncollated copies */ 71: public static final MultipleDocumentHandlingSupported SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = 72: new MultipleDocumentHandlingSupported(1); 73: 74: /** Supports multiple documents as collated copies */ 75: public static final MultipleDocumentHandlingSupported SEPARATE_DOCUMENTS_COLLATED_COPIES = 76: new MultipleDocumentHandlingSupported(2); 77: 78: /** 79: * Supports multiple documents where every single document starts 80: * with a new sheet. 81: */ 82: public static final MultipleDocumentHandlingSupported SINGLE_DOCUMENT_NEW_SHEET = 83: new MultipleDocumentHandlingSupported(3); 84: 85: private static final String[] stringTable = { "single-document", 86: "separate-documents-uncollated-copies", 87: "separate-documents-collated-copies", 88: "single-document-new-sheet" }; 89: 90: private static final MultipleDocumentHandlingSupported[] enumValueTable = 91: { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, 92: SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; 93: 94: /** 95: * Constructs a <code>MultipleDocumentHandlingSupported</code> object. 96: * 97: * @param value the enum value 98: */ 99: protected MultipleDocumentHandlingSupported(int value) 100: { 101: super(value); 102: } 103: 104: /** 105: * Returns category of this class. 106: * 107: * @return The class <code>MultipleDocumentHandlingSupported</code> itself. 108: */ 109: public Class<? extends Attribute> getCategory() 110: { 111: return MultipleDocumentHandlingSupported.class; 112: } 113: 114: /** 115: * Returns the name of this attribute. 116: * 117: * @return The name "multiple-document-handling-supported". 118: */ 119: public String getName() 120: { 121: return "multiple-document-handling-supported"; 122: } 123: 124: /** 125: * Returns a table with the enumeration values represented as strings 126: * for this object. 127: * 128: * @return The enumeration values as strings. 129: */ 130: protected String[] getStringTable() 131: { 132: return stringTable; 133: } 134: 135: /** 136: * Returns a table with the enumeration values for this object. 137: * 138: * @return The enumeration values. 139: */ 140: protected EnumSyntax[] getEnumValueTable() 141: { 142: return enumValueTable; 143: } 144: 145: /** 146: * Returns the equally enum of the standard attribute class 147: * of this SupportedValuesAttribute enum. 148: * 149: * @return The enum of the standard attribute class. 150: */ 151: public MultipleDocumentHandling getAssociatedAttribute() 152: { 153: return (MultipleDocumentHandling) IppUtilities.getEnumAttribute( 154: "multiple-document-handling", new Integer(getValue())); 155: } 156: 157: /** 158: * Constructs an array from a set of -supported attributes. 159: * @param set set to process 160: * @return The constructed array. 161: * 162: * @see #getAssociatedAttribute() 163: */ 164: public static MultipleDocumentHandling[] 165: getAssociatedAttributeArray(Set<Attribute> set) 166: { 167: MultipleDocumentHandling[] result = new MultipleDocumentHandling[set.size()]; 168: int j = 0; 169: for (Attribute tmp : set) 170: { 171: result[j] = ((MultipleDocumentHandlingSupported) tmp).getAssociatedAttribute(); 172: j++; 173: } 174: return result; 175: } 176: }