Re: [cp-patches] Patch: javax.print.attribute.EnumSyntax

2005-11-13 Thread Wolfgang Baer

Mark Wielaard wrote:

Hi,

On Sat, 2005-11-12 at 21:06 +0100, Wolfgang Baer wrote:


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 ?



Yes please.


Committed.

Wolfgang


___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


Re: [cp-patches] Patch: javax.print.attribute.EnumSyntax

2005-11-12 Thread Mark Wielaard
Hi,

On Sat, 2005-11-12 at 21:06 +0100, Wolfgang Baer wrote:
> 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 ?

Yes please.
Now I see how you found that ObjectInputStream bug the other day :)

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] Patch: javax.print.attribute.EnumSyntax

2005-11-12 Thread Wolfgang Baer

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