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();