[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Field position attribute handling
From: |
Dalibor Topic |
Subject: |
Re: [PATCH] Field position attribute handling |
Date: |
Tue, 18 Nov 2003 20:30:44 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312 |
Hi Mark,
Mark Wielaard wrote:
Hi,
On Sat, 2003-11-15 at 19:43, Dalibor Topic wrote:
2003-11-15 Guilhem Lavaux <address@hidden>
* java/text/FieldPosition.java (field_attribute): New field.
(FieldPosition (Format.Field), FieldPosition(Format.Field, int),
getFieldAttribute) New methods.
Shouldn't the hashCode(), equals() and possibly toString() methods be
updated to take the new field into account?
Thanks for pointing that out. Please take a look at the updated,
attached patch, and check it in.
2003-11-18 Guilhem Lavaux <address@hidden>
* java/text/FieldPosition.java (field_attribute): New field.
(FieldPosition (Format.Field), FieldPosition(Format.Field, int),
getFieldAttribute) New methods.
2003-11-18 Dalibor Topic <address@hidden>
* java/text/FieldPosition.java (equals) : Adapted to handle
field_attribute. Added fast-circuit check for comparison to self.
Replaced use of instanceof by getClass to fix symmetry for derived
types.
(toString) Adapted to handle field_attribute. Improved readability.
(hashCode) New method.
Index: java/text/FieldPosition.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/text/FieldPosition.java,v
retrieving revision 1.5
diff -u -r1.5 FieldPosition.java
--- java/text/FieldPosition.java 22 Jan 2002 22:27:01 -0000 1.5
+++ java/text/FieldPosition.java 18 Nov 2003 18:42:32 -0000
@@ -65,6 +65,38 @@
private int end;
/**
+ * This is the field attribute value.
+ */
+ private Format.Field field_attribute;
+
+ /**
+ * This method initializes a new instance of <code>FieldPosition</code>
+ * to have the specified field attribute. The attribute will be used as
+ * an id.
+ *
+ * @param field The field format attribute.
+ */
+ public FieldPosition (Format.Field field)
+ {
+ this.field_attribute = field;
+ }
+
+ /**
+ * This method initializes a new instance of <code>FieldPosition</code>
+ * to have the specified field attribute. The attribute will be used as
+ * an id is non null. The integer field id is only used if the Format.Field
+ * attribute is not used by the formatter.
+ *
+ * @param field The field format attribute.
+ * @param field_id The field identifier value.
+ */
+ public FieldPosition (Format.Field field, int field_id)
+ {
+ this.field_attribute = field;
+ this.field_id = field_id;
+ }
+
+ /**
* This method initializes a new instance of <code>FieldPosition</code> to
* have the specified field id.
*
@@ -85,6 +117,11 @@
return field_id;
}
+ public Format.Field getFieldAttribute ()
+ {
+ return field_attribute;
+ }
+
/**
* This method returns the beginning index for this field.
*
@@ -132,8 +169,8 @@
* <ul>
* <li>The specified object is not <code>null</code>.
* <li>The specified object is an instance of <code>FieldPosition</code>.
- * <li>The specified object has the same field identifier and beginning
- * and ending index as this object.
+ * <li>The specified object has the same field identifier, field attribute
+ * and beginning and ending index as this object.
* </ul>
*
* @param obj The object to test for equality to this object.
@@ -143,15 +180,39 @@
*/
public boolean equals (Object obj)
{
- if (! (obj instanceof FieldPosition))
+ if (this == obj)
+ return true;
+
+ if (obj != null && (obj.getClass() != this.getClass()))
return false;
FieldPosition fp = (FieldPosition) obj;
return (field_id == fp.field_id
+ && (field_attribute == fp.field_attribute
+ || (field_attribute != null
+ && field_attribute.equals(fp.field_attribute)))
&& begin == fp.begin
&& end == fp.end);
}
+
+ /**
+ * This method returns a hash value for this object
+ *
+ * @return A hash value for this object.
+ */
+ public int hashCode ()
+ {
+ int hash = 7;
+
+ hash = 31 * hash + field_id;
+ hash = 31 * hash + begin;
+ hash = 31 * hash + end;
+ hash = 31 * hash + (null == field_attribute ? 0 :
field_attribute.hashCode());
+
+ return hash;
+ }
+
/**
* This method returns a <code>String</code> representation of this
* object.
@@ -160,7 +221,11 @@
*/
public String toString ()
{
- return (getClass ().getName () + "[field=" + getField () + ",beginIndex="
- + getBeginIndex () + ",endIndex=" + getEndIndex () + "]");
+ return (getClass ().getName ()
+ + "[field=" + getField ()
+ + ",attribute=" + getFieldAttribute ()
+ + ",beginIndex=" + getBeginIndex ()
+ + ",endIndex=" + getEndIndex ()
+ + "]");
}
}
- [PATCH] Field position attribute handling, Dalibor Topic, 2003/11/15
- Re: [PATCH] Field position attribute handling, Mark Wielaard, 2003/11/15
- Re: [PATCH] Field position attribute handling,
Dalibor Topic <=
- Re: [PATCH] Field position attribute handling, Mark Wielaard, 2003/11/18
- Re: [PATCH] Field position attribute handling, Dalibor Topic, 2003/11/18
- Re: [PATCH] Field position attribute handling, Mark Wielaard, 2003/11/19
- Re: [PATCH] Field position attribute handling, Dalibor Topic, 2003/11/23
- Re: [PATCH] Field position attribute handling, Mark Wielaard, 2003/11/25
- The right way(tm) of writing toString() (Was: Re: [PATCH] Field position attribute handling), Dalibor Topic, 2003/11/29
- Re: The right way(tm) of writing toString() (Was: Re: [PATCH] Field position attribute handling), Etienne Gagnon, 2003/11/29
- 2nd attempt at Re: The right way(tm) of writing toString() (Was: Re: [PATCH] Field position attribute handling), Dalibor Topic, 2003/11/30