summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java')
-rw-r--r--libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java139
1 files changed, 135 insertions, 4 deletions
diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java b/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java
index d81313f7c85..67f160d42fc 100644
--- a/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java
+++ b/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java
@@ -1,5 +1,5 @@
/* PrinterStateReasons.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,12 +38,35 @@ exception statement from your version. */
package javax.print.attribute.standard;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
import javax.print.attribute.PrintServiceAttribute;
/**
+ * The <code>PrinterStateReasons</code> attribute provides the set of
+ * additional informations available about the current state of the printer
+ * device.
+ * <p>
+ * The attribute is basically a map with <code>PrinterStateReason</code>
+ * objects as keys associated with their severity level as
+ * <code>Severity</code> instances. The IPP keyword value can be
+ * constructed as follows: <br>
+ * <code>reason.toString() + '-' + severity.toString()</code>
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterStateReasons is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.PrinterState
+ * @see javax.print.attribute.standard.PrinterStateReason
+ * @see javax.print.attribute.standard.Severity
+ *
* @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
*/
public final class PrinterStateReasons extends HashMap
implements PrintServiceAttribute
@@ -51,9 +74,117 @@ public final class PrinterStateReasons extends HashMap
private static final long serialVersionUID = -3731791085163619457L;
/**
+ * Constructs an empty <code>PrinterStateReasons</code> attribute.
+ */
+ public PrinterStateReasons()
+ {
+ super();
+ }
+
+ /**
+ * Constructs an empty <code>PrinterStateReasons</code> attribute
+ * with the given initial capacity and load factor.
+ *
+ * @param initialCapacity the intial capacity.
+ * @param loadFactor the load factor of the underlying HashMap.
+ *
+ * @throws IllegalArgumentException if initialCapacity &lt; 0
+ * @throws IllegalArgumentException if initialCapacity or loadFactor &lt; 0
+ */
+ public PrinterStateReasons(int initialCapacity, float loadFactor)
+ {
+ super(initialCapacity, loadFactor);
+ }
+
+ /**
+ * Constructs an empty <code>PrinterStateReasons</code> attribute
+ * with the given initial capacity and the default load factor.
+ *
+ * @param initialCapacity the intial capacity.
+ *
+ * @throws IllegalArgumentException if initialCapacity &lt; 0
+ */
+ public PrinterStateReasons(int initialCapacity)
+ {
+ super(initialCapacity);
+ }
+
+ /**
+ * Constructs a <code>PrinterStateReasons</code> attribute
+ * with the given content of the map.
+ *
+ * @param map the map for the initial values with the same
+ * <code>PrinterStateReason</code> to <code>Severity</code> mappings.
+ *
+ * @throws NullPointerException if map or any key/value is <code>null</code>.
+ * @throws ClassCastException if values of map are not of type
+ * <code>PrinterStateReason</code> and keys are not of type
+ * <code>Severity</code>.
+ */
+ public PrinterStateReasons(Map map)
+ {
+ super(map.size(), 0.75f);
+ Iterator it = map.entrySet().iterator();
+ while (it.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) it.next();
+ put(entry.getKey(), entry.getValue());
+ }
+ }
+
+ /**
+ * Constructs an unmodifiable view of the contained printer state reasons
+ * associated with the given severity level.
+ *
+ * @param severity the severity level for the constructed set.
+ * @return The set of printer state reasons.
+ */
+ public Set printerStateReasonSet(Severity severity)
+ {
+ if (severity == null)
+ throw new NullPointerException("severity is null");
+
+ HashSet set = new HashSet();
+ Iterator it = entrySet().iterator();
+ while (it.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) it.next();
+ if (entry.getValue().equals(severity))
+ set.add(entry.getKey());
+ }
+
+ return Collections.unmodifiableSet(set);
+ }
+
+ /**
+ * Puts the given reason object associated with the given severity object
+ * into the set.
+ *
+ * @param reason the reason of type <code>PrinterStateReason</code>.
+ * @param severity the severity of the reason of type <code>Severity</code>.
+ *
+ * @return The previously associated severity of the reason or
+ * <code>null</code> if the reason object was not in the map before.
+ *
+ * @throws NullPointerException if any of the values is <code>null</code>.
+ * @throws ClassCastException if reason is not a
+ * <code>PrinterStateReason</code> and severity is not a
+ * <code>Severity</code> instance.
+ */
+ public Object put(Object reason, Object severity)
+ {
+ if (reason == null)
+ throw new NullPointerException("reason is null");
+ if (severity == null)
+ throw new NullPointerException("severity is null");
+
+ return put((PrinterStateReason) reason, (Severity) severity);
+ }
+
+ /**
* Returns category of this class.
*
- * @return the class <code>PrintStateReasons</code> itself
+ * @return The class <code>PrintStateReasons</code> itself.
*/
public Class getCategory()
{
@@ -61,9 +192,9 @@ public final class PrinterStateReasons extends HashMap
}
/**
- * Returns name of this class.
+ * Returns the name of this attribute.
*
- * @return the string "printer-state-reasons"
+ * @return The name "printer-state-reasons".
*/
public String getName()
{
OpenPOWER on IntegriCloud