Author: jbellis
Date: Tue Apr  6 21:48:37 2010
New Revision: 931341

URL: http://svn.apache.org/viewvc?rev=931341&view=rev
Log:
add CFMetaData.hashCode.  patch by Matthew Dennis; reviewed by Stu Hood for 
CASSANDRA-945

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java?rev=931341&r1=931340&r2=931341&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java Tue 
Apr  6 21:48:37 2010
@@ -18,25 +18,17 @@
 
 package org.apache.cassandra.config;
 
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.ListMultimap;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Multimaps;
-import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.Pair;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.commons.lang.ObjectUtils;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.utils.Pair;
 
 public final class CFMetaData
 {
@@ -195,23 +187,49 @@ public final class CFMetaData
         return new CFMetaData(tableName, cfName, columnType, comparator, 
subcolumnComparator, comment, rowCacheSize, keyCacheSize, readRepairChance, 
cfId);
     }
     
-    public boolean equals(Object obj)
+
+    public boolean equals(Object obj) 
     {
-        if (!(obj instanceof CFMetaData))
+        if (obj == this)
+        {
+            return true;
+        }
+        else if (obj == null || obj.getClass() != getClass())
+        {
             return false;
-        CFMetaData other = (CFMetaData)obj;
-        return other.tableName.equals(tableName)
-                && other.cfName.equals(cfName)
-                && other.columnType.equals(columnType)
-                && other.comparator.equals(comparator)
-                && ObjectUtils.equals(other.subcolumnComparator, 
subcolumnComparator)
-                && ObjectUtils.equals(other.comment, comment)
-                && other.rowCacheSize == rowCacheSize
-                && other.keyCacheSize == keyCacheSize
-                && other.readRepairChance == readRepairChance
-                && other.cfId == cfId;
+        }
+
+        CFMetaData rhs = (CFMetaData) obj;
+        return new EqualsBuilder()
+            .append(tableName, rhs.tableName)
+            .append(cfName, rhs.cfName)
+            .append(columnType, rhs.columnType)
+            .append(comparator, rhs.comparator)
+            .append(subcolumnComparator, rhs.subcolumnComparator)
+            .append(comment, rhs.comment)
+            .append(rowCacheSize, rhs.rowCacheSize)
+            .append(keyCacheSize, rhs.keyCacheSize)
+            .append(readRepairChance, rhs.readRepairChance)
+            .append(cfId, rhs.cfId)
+            .isEquals();
+    }
+
+    public int hashCode()
+    {
+        return new HashCodeBuilder(29, 1597)
+            .append(tableName)
+            .append(cfName)
+            .append(columnType)
+            .append(comparator)
+            .append(subcolumnComparator)
+            .append(comment)
+            .append(rowCacheSize)
+            .append(keyCacheSize)
+            .append(readRepairChance)
+            .append(cfId)
+            .toHashCode();
     }
-    
+
     private static int nextId() 
     {
         return idGen.getAndIncrement();


Reply via email to