Github user mgoddard-pivotal commented on a diff in the pull request:
https://github.com/apache/incubator-hawq/pull/1365#discussion_r188469685
--- Diff: pxf/pxf-api/src/main/java/org/apache/hawq/pxf/api/Fragment.java
---
@@ -140,4 +142,48 @@ public String getProfile() {
public void setProfile(String profile) {
this.profile = profile;
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + index;
+ result = prime * result + Arrays.hashCode(metadata);
+ result = prime * result + ((profile == null) ? 0 :
profile.hashCode());
+ result = prime * result + Arrays.hashCode(replicas);
+ result = prime * result + ((sourceName == null) ? 0 :
sourceName.hashCode());
+ result = prime * result + Arrays.hashCode(userData);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
--- End diff --
Well, I just had my IDE, Eclipse, generate these two methods for me. Line
161 does what you have listed there, your top line. Line 165 performs the same
check you have there as `if (o instancef Point) {`, then `obj` is cast as
Fragment on line 167. The remainder of the logic you have within the complex
`... && ...` statement is equivalently expressed in the remaining checks, but
within the `if ... else if ... else` clauses. Is your comment meant to point
out an issue with correctness, or more of an aesthetic issue?
---