]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/function/UnsaturatedFunction4.java
(refs #7090) Generated Function objects implement equals and hashCode
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / function / UnsaturatedFunction4.java
index 7d17072ff2d6d5c39315e1c0b5c7be100877b6a3..93baf458601642e25f9297a988069554b1ec4ddd 100644 (file)
@@ -71,6 +71,7 @@ public class UnsaturatedFunction4 implements Function {
             nps[i + 4] = ps[i];
         return f.applyArray(nps);
     }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -82,4 +83,49 @@ public class UnsaturatedFunction4 implements Function {
         sb.append(")");
         return sb.toString();
     }
+
+    @Override
+    public int hashCode() {
+        int result = f.hashCode();
+        result = 31 * result + (p0 == null ? 0 : p0.hashCode());
+        result = 31 * result + (p1 == null ? 0 : p1.hashCode());
+        result = 31 * result + (p2 == null ? 0 : p2.hashCode());
+        result = 31 * result + (p3 == null ? 0 : p3.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        UnsaturatedFunction4 other = (UnsaturatedFunction4) obj;
+        if(!f.equals(other.f))
+            return false;
+        if(p0 == null) {
+            if (other.p0 != null)
+                return false;
+        } else if (!p0.equals(other.p0))
+            return false;
+        if(p1 == null) {
+            if (other.p1 != null)
+                return false;
+        } else if (!p1.equals(other.p1))
+            return false;
+        if(p2 == null) {
+            if (other.p2 != null)
+                return false;
+        } else if (!p2.equals(other.p2))
+            return false;
+        if(p3 == null) {
+            if (other.p3 != null)
+                return false;
+        } else if (!p3.equals(other.p3))
+            return false;
+        return true;
+    }
+
 }