scolebourne 2002/12/08 13:22:07 Modified: lang/src/java/org/apache/commons/lang/builder HashCodeBuilder.java Log: Add ability to build compound hashCode using superclass Revision Changes Path 1.6 +17 -2 jakarta-commons/lang/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java Index: HashCodeBuilder.java =================================================================== RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- HashCodeBuilder.java 17 Nov 2002 21:46:42 -0000 1.5 +++ HashCodeBuilder.java 8 Dec 2002 21:22:07 -0000 1.6 @@ -80,7 +80,7 @@ * public int hashCode() { * // you pick a hard-coded, randomly chosen, non-zero, odd number * // ideally different for each class - * return new HashCodeBuilder(17, 37). + * return new HashCodeBuilder(17, 37). * append(name). * append(age). * append(smoker). @@ -88,6 +88,8 @@ * } * } * </pre> + * + * <p>If required, the superclass hashCode can be added using {@link #appendSuper}.</p> * * <p>Alternatively, there is a method that uses reflection to determine * the fields to test. Because these fields are usually private, the method, @@ -295,6 +297,19 @@ return hashCodeBuilder.toHashCode(); } + //------------------------------------------------------------------------- + + /** + * <p>Adds the result of super.hashCode() to this builder.</p> + * + * @param superHashCode the result of calling <code>super.hashCode()</code> + * @return this HashCodeBuilder, used to chain calls. + */ + public HashCodeBuilder appendSuper(int superHashCode) { + iTotal = iTotal * iConstant + superHashCode; + return this; + } + //------------------------------------------------------------------------- /**
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>