From 8d5cb5f0e066a198f02f16e1e86cdd9b605253f8 Mon Sep 17 00:00:00 2001
From: Thomas Oster <thomas.oster@rwth-aachen.de>
Date: Fri, 22 Mar 2013 19:15:54 +0100
Subject: [PATCH] Missing equals and hashCode

---
 .../liblasercut/drivers/IModelaProperty.java  | 40 +++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/src/com/t_oster/liblasercut/drivers/IModelaProperty.java b/src/com/t_oster/liblasercut/drivers/IModelaProperty.java
index d889df4..9ed03cd 100644
--- a/src/com/t_oster/liblasercut/drivers/IModelaProperty.java
+++ b/src/com/t_oster/liblasercut/drivers/IModelaProperty.java
@@ -20,6 +20,7 @@
 package com.t_oster.liblasercut.drivers;
 
 import com.t_oster.liblasercut.LaserProperty;
+import com.t_oster.liblasercut.platform.Util;
 
 /**
  *
@@ -147,4 +148,43 @@ public class IModelaProperty implements LaserProperty
     return null;
   }
 
+  @Override
+  public int hashCode()
+  {
+    int hash = 13;
+    for (String k : this.getPropertyKeys())
+    {
+      if (this.getProperty(k) != null)
+      {
+        hash = 97 * hash + k.hashCode() + this.getProperty(k).hashCode();
+      }
+    }
+    hash += super.hashCode();
+    return hash;
+  }
+
+  @Override
+  public boolean equals(Object obj)
+  {
+    if (obj == null)
+    {
+      return false;
+    }
+    if (getClass() != obj.getClass())
+    {
+      return false;
+    }
+    IModelaProperty other = (IModelaProperty) obj;
+    for (String k : this.getPropertyKeys())
+    {
+      if (Util.differ(this.getProperty(k), other.getProperty(k)))
+      {
+        return false;
+      }
+    }
+    return true;
+  }
+  
+  
+
 }
-- 
GitLab