Hi,
this patch finishes javax.print.attribute.EnumSyntax by adding
the missing method readResolve and api docs all over.
2005-11-12 Wolfgang Baer <[EMAIL PROTECTED]>
* javax/print/attribute/EnumSyntax.java:
API docs added and enhanced for class and methods.
(readResolve): New method.
OK to commit ?
Regards,
Wolfgang
Index: javax/print/attribute/EnumSyntax.java
===
RCS file: /cvsroot/classpath/classpath/javax/print/attribute/EnumSyntax.java,v
retrieving revision 1.4
diff -u -r1.4 EnumSyntax.java
--- javax/print/attribute/EnumSyntax.java 2 Jul 2005 20:32:46 - 1.4
+++ javax/print/attribute/EnumSyntax.java 12 Nov 2005 20:03:33 -
@@ -1,5 +1,5 @@
/* EnumSyntax.java --
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,10 +37,69 @@
package javax.print.attribute;
+import java.io.InvalidObjectException;
+import java.io.ObjectStreamException;
import java.io.Serializable;
/**
- * @author Michael Koch
+ * EnumSyntax is the abstract base class of all enumeration classes in
+ * the Java Print Service API.
+ *
+ * Every enumeration class which extends from EnumSyntax provides several
+ * enumeration objects as singletons of its class.
+ *
+ *
+ * Notes for implementing subclasses:
+ *
+ *
+ * The values of all enumeration singelton instances have to be in a
+ * sequence which may start at any value. See: [EMAIL PROTECTED] #getOffset()}
+ *
+ *
+ * Subclasses have to override [EMAIL PROTECTED] #getEnumValueTable()} and should
+ * override [EMAIL PROTECTED] #getStringTable()} for correct serialization.
+ *
+ *
+ *
+ * Example:
+ *
+ * public class PrinterState extends EnumSyntax
+ * {
+ * public static final PrinterState IDLE = new PrinterState(1);
+ * public static final PrinterState PROCESSING = new PrinterState(2);
+ * public static final PrinterState STOPPED = new PrinterState(3);
+ *
+ * protected PrinterState(int value)
+ * {
+ * super(value);
+ * }
+ *
+ * // Overridden because values start not at zero !
+ * protected int getOffset()
+ * {
+ * return 1;
+ * }
+ *
+ * private static final String[] stringTable = { "idle", "processing",
+ * "stopped" };
+ *
+ * protected String[] getStringTable()
+ * {
+ * return stringTable;
+ * }
+ *
+ * private static final PrinterState[] enumValueTable = { IDLE,
+ * PROCESSING, STOPPED};
+ *
+ * protected EnumSyntax[] getEnumValueTable()
+ * {
+ * return enumValueTable;
+ * }
+ * }
+ *
+ *
+ * @author Michael Koch ([EMAIL PROTECTED])
+ * @author Wolfgang Baer ([EMAIL PROTECTED])
*/
public abstract class EnumSyntax implements Cloneable, Serializable
{
@@ -51,7 +110,7 @@
/**
* Creates a EnumSyntax object.
*
- * @param value the value to set
+ * @param value the value to set.
*/
protected EnumSyntax(int value)
{
@@ -59,9 +118,9 @@
}
/**
- * Returns the value of this object.
+ * Returns the value of this enumeration object.
*
- * @return the value
+ * @return The value.
*/
public int getValue()
{
@@ -71,7 +130,7 @@
/**
* Clones this object.
*
- * @return a clone of this object
+ * @return A clone of this object.
*/
public Object clone()
{
@@ -87,9 +146,10 @@
}
/**
- * Returns the hashcode for this object.
+ * Returns the hashcode for this object.
+ * The hashcode is the value of this enumeration object.
*
- * @return the hashcode
+ * @return The hashcode.
*/
public int hashCode()
{
@@ -98,8 +158,11 @@
/**
* Returns the string representation for this object.
+ * The string value from getStringTable() method is returned
+ * if subclasses override this method. Otherwise the value of this object
+ * as a string is returned.
*
- * @return the string representation
+ * @return The string representation.
*/
public String toString()
{
@@ -118,9 +181,10 @@
* Returns a table with the enumeration values represented as strings
* for this object.
*
- * The default implementation just returns null.
+ * The default implementation just returns null. Subclasses should
+ * override this method.
*
- * @return the enumeration values as strings
+ * @return The enumeration values as strings.
*/
protected String[] getStringTable()
{
@@ -128,17 +192,49 @@
}
/**
+ * Needed for singelton semantics during deserialisation.
+ *
+ * Subclasses must not override this class. Subclasses have to override
+ * getEnumValueTable() and should override
+ * getStringTable() for correct serialization.
+ *
+ * @return The Object at index value - getOffset()
+ * in getEnumValueTable.
+ * @thro