diff options
author | Reinier Zwitserloot <reinier@tipit.to> | 2009-07-28 17:38:26 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@tipit.to> | 2009-07-28 17:41:56 +0200 |
commit | fb6be45d2bcb97e0e0288ba81a602679c7bedc46 (patch) | |
tree | a5495fdf2769d06714b5eb96e203b33430513450 /usage_examples/EqualsAndHashCodeExample_post.jpage | |
parent | e744f1829adf95f3b54fa54d813eb26c4c8e8c76 (diff) | |
download | lombok-fb6be45d2bcb97e0e0288ba81a602679c7bedc46.tar.gz lombok-fb6be45d2bcb97e0e0288ba81a602679c7bedc46.tar.bz2 lombok-fb6be45d2bcb97e0e0288ba81a602679c7bedc46.zip |
Added website feature documentation for @ToString and @EqualsAndHashCode, and modified the docs for @Data to refer to the docs of these new annotations.
The build script for the website has been updated to clean out the website build dir first, so files that used to exist but have now been tossed are no longer there.
There's also a special website-no-videos target which builds a website deployable without the videos. This makes the upload a lot faster if the videos haven't changed.
Diffstat (limited to 'usage_examples/EqualsAndHashCodeExample_post.jpage')
-rw-r--r-- | usage_examples/EqualsAndHashCodeExample_post.jpage | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/usage_examples/EqualsAndHashCodeExample_post.jpage b/usage_examples/EqualsAndHashCodeExample_post.jpage new file mode 100644 index 00000000..b3f6e035 --- /dev/null +++ b/usage_examples/EqualsAndHashCodeExample_post.jpage @@ -0,0 +1,60 @@ +import java.util.Arrays; + +public class EqualsAndHashCodeExample { + private transient int transientVar = 10; + private String name; + private double score; + private Shape shape = new Square(5, 10); + private String[] tags; + private int id; + + @Override public boolean equals(Object o) { + if (o == this) return true; + if (o == null) return false; + if (o.getClass() != this.getClass()) return false; + EqualsAndHashCodeExample other = (EqualsAndHashCodeExample) o; + if (name == null ? other.name != null : !name.equals(other.name)) return false; + if (Double.compare(score, other.score) != 0) return false; + if (!Arrays.deepEquals(tags, other.tags)) return false; + return true; + } + + @Override public int hashCode() { + final int PRIME = 31; + int result = 1; + final long temp1 = Double.doubleToLongBits(score); + result = (result*PRIME) + (name == null ? 0 : name.hashCode()); + result = (result*PRIME) + (int)(temp1 ^ (temp1 >>> 32)); + result = (result*PRIME) + Arrays.deepHashCode(tags); + return result; + } + + public static class Square extends Shape { + private final int width, height; + + public Square(int width, int height) { + this.width = width; + this.height = height; + } + + @Override public boolean equals(Object o) { + if (o == this) return true; + if (o == null) return false; + if (o.getClass() != this.getClass()) return false; + if (!super.equals(o)) return false; + Square other = (Square) o; + if (width != o.width) return false; + if (height != o.height) return false; + return true; + } + + @Override public int hashCode() { + final int PRIME = 31; + int result = 1; + result = (result*PRIME) + super.hashCode(); + result = (result*PRIME) + width; + result = (result*PRIME) + height; + return result; + } + } +} |