You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/09/15 20:41:28 UTC

svn commit: r815442 - /incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java

Author: jbellis
Date: Tue Sep 15 18:41:28 2009
New Revision: 815442

URL: http://svn.apache.org/viewvc?rev=815442&view=rev
Log:
add DecoratedKey.java to fix build

Added:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java

Added: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java?rev=815442&view=auto
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java (added)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java Tue Sep 15 18:41:28 2009
@@ -0,0 +1,94 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.db;
+
+import org.apache.cassandra.dht.Token;
+
+/**
+ * Represents a decorated key, handy for certain operations
+ * where just working with strings gets slow.
+ */
+public class DecoratedKey<T extends Token>
+{
+    public static final String DELIMITER = ":";
+
+    private T token;
+    private String key;
+
+    public DecoratedKey(T token, String key)
+    {
+        super();
+        this.token = token;
+        this.key = key;
+    }
+
+    public T getToken()
+    {
+        return token;
+    }
+
+    public String getKey()
+    {
+        return key;
+    }
+
+    @Override
+    public int hashCode()
+    {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((key == null) ? 0 : key.hashCode());
+        result = prime * result + ((token == null) ? 0 : token.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;
+        DecoratedKey other = (DecoratedKey) obj;
+        if (key == null)
+        {
+            if (other.key != null)
+                return false;
+        } else if (!key.equals(other.key))
+            return false;
+        if (token == null)
+        {
+            if (other.token != null)
+                return false;
+        } else if (!token.equals(other.token))
+            return false;
+        return true;
+    }
+
+    /**
+     * Return the on disk format of the decorated key.
+     */
+    public String toString()
+    {
+        return token.toString() + DELIMITER + key;
+    }
+
+}