import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import javax.print.attribute.Attribute; import javax.print.attribute.standard.PrinterStateReason; import javax.print.attribute.standard.PrinterStateReasons; import javax.print.attribute.standard.Severity; public class PrinterStateReasonsImpl { private PrinterStateReasons printerStateReasons; /** * Construct a new, empty printer state reasons attribute; the underlying * hash map has the default initial capacity and load factor. **/ public PrinterStateReasonsImpl() { printerStateReasons = new PrinterStateReasons(); } /** * super a new, empty printer state reasons attribute; the underlying hash * map has the given initial capacity and the default load factor. **/ public PrinterStateReasonsImpl(int initialCapacity) { printerStateReasons = new PrinterStateReasons(initialCapacity); } /** * Construct a new, empty printer state reasons attribute; the underlying * hash map has the given initial capacity and load factor. **/ public PrinterStateReasonsImpl(int initialCapacity, float loadFactor) { printerStateReasons = new PrinterStateReasons(initialCapacity, loadFactor); } /** * Construct a new printer state reasons attribute that contains the same * PrinterStateReason-to-Severity mappings as the given map. **/ public PrinterStateReasonsImpl(Map map) { printerStateReasons = new PrinterStateReasons(map); } /** Removes all of the mappings from this map. **/ public void clear() { printerStateReasons.clear(); } /** * Returns a shallow copy of this HashMap instance: the keys and values * themselves are not cloned. **/ public Object clone() { return printerStateReasons.clone(); } /** Returns true if this map contains a mapping for the specified key. **/ public boolean containsKey(Object key) { return printerStateReasons.containsKey(key); } /** Returns true if this map maps one or more keys to the specified value. **/ public boolean containsValue(Object value) { return printerStateReasons.containsValue(value); } /** Returns a Set view of the mappings contained in this map. **/ public Set> entrySet() { return printerStateReasons.entrySet(); } /** * Returns the value to which the specified key is mapped, or null if this * map contains no mapping for the key. **/ public Severity get(Object key) { return printerStateReasons.get(key); } /** Returns true if this map contains no key-value mappings. **/ public boolean isEmpty() { return printerStateReasons.isEmpty(); } /** Returns a Set view of the keys contained in this map. **/ public Set keySet() { return printerStateReasons.keySet(); } /** Associates the specified value with the specified key in this map. **/ public Severity put(PrinterStateReason reason, Severity severity) { return printerStateReasons.put(reason, severity); } /** Copies all of the mappings from the specified map to this map. **/ public void putAll(Map m) { printerStateReasons.putAll(m); } /** Removes the mapping for the specified key from this map if present. **/ public Severity remove(Object key) { return printerStateReasons.remove(key); } /** Returns the number of key-value mappings in this map. **/ public int size() { return printerStateReasons.size(); } /** Returns a Collection view of the values contained in this map. **/ public Collection values() { return printerStateReasons.values(); } /** * Get the printing attribute class which is to be used as the "category" * for this printing attribute value. **/ public Class getCategory() { return printerStateReasons.getCategory(); } /** * Get the name of the category of which this attribute value is an * instance. **/ public String getName() { return printerStateReasons.getName(); } /** * Obtain an unmodifiable set view of the individual printer state reason * attributes at the given severity level in this PrinterStateReasons * attribute. **/ public Set printerStateReasonSet(Severity severity) { return printerStateReasons.printerStateReasonSet(severity); } public static void main(String... arg) { PrinterStateReasonsImpl printerStateReasons = new PrinterStateReasonsImpl(); printerStateReasons.put(PrinterStateReason.CONNECTING_TO_DEVICE,Severity.ERROR); printerStateReasons.put(PrinterStateReason.COVER_OPEN,Severity.REPORT); printerStateReasons.put(PrinterStateReason.INPUT_TRAY_MISSING, Severity.WARNING); System.out.println("the key set of the printerStateReasons is "); Set keySet = printerStateReasons.keySet(); Iterator itr = keySet.iterator(); while (itr.hasNext()) { System.out.print(itr.next() + "\t"); } System.out.println(); System.out.println("the values of the printerStateReasons is "); Collection collectionValues = printerStateReasons.values(); Iterator citr = collectionValues.iterator(); while (citr.hasNext()) { System.out.print(citr.next() + "\t"); } System.out.println(); System.out.println("the entry set of the printerStateReasons is "); Iterator> eitr; Set> entrySet = printerStateReasons.entrySet(); eitr = entrySet.iterator(); while (eitr.hasNext()) { System.out.println(eitr.next() + "\t"); } System.out.println("the printerStateReasons contains Key CONNECTING_TO_DEVICE :" + printerStateReasons.containsKey(PrinterStateReason.CONNECTING_TO_DEVICE)); System.out.println("the printerStateReasons contains Value ERROR :" + printerStateReasons.containsValue(Severity.ERROR)); System.out.println("the size of the printerStateReasons is " + printerStateReasons.size()); printerStateReasons.clear(); if (printerStateReasons.isEmpty()) System.out.println("the printerStateReasons is empty"); else System.out.println("the printerStateReasons is not empty"); } } /* the key set of the printerStateReasons is input-tray-missing connecting-to-device cover-open the values of the printerStateReasons is warning error report the entry set of the printerStateReasons is input-tray-missing=warning connecting-to-device=error cover-open=report the printerStateReasons contains Key CONNECTING_TO_DEVICE :true the printerStateReasons contains Value ERROR :true the size of the printerStateReasons is 3 the printerStateReasons is empty