Author: gdusbabek
Date: Wed Mar 30 14:30:33 2011
New Revision: 1086964
URL: http://svn.apache.org/viewvc?rev=1086964&view=rev
Log:
AbstractType converts types to Strings (not just ByteBuffers)
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AsciiType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/BytesType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java
Wed Mar 30 14:30:33 2011
@@ -94,6 +94,9 @@ public abstract class AbstractType<T> im
public abstract T compose(ByteBuffer bytes);
+ /** get a string representation of a particular type. */
+ public abstract String toString(T t);
+
/** get a string representation of the bytes suitable for log messages */
public abstract String getString(ByteBuffer bytes);
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AsciiType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AsciiType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AsciiType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AsciiType.java Wed
Mar 30 14:30:33 2011
@@ -34,7 +34,6 @@ public class AsciiType extends AbstractT
AsciiType() {} // singleton
- @Override
public String getString(ByteBuffer bytes)
{
try
@@ -47,6 +46,11 @@ public class AsciiType extends AbstractT
}
}
+ public String toString(String s)
+ {
+ return s;
+ }
+
public int compare(ByteBuffer o1, ByteBuffer o2)
{
return BytesType.bytesCompare(o1, o2);
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/BytesType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/BytesType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/BytesType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/BytesType.java Wed
Mar 30 14:30:33 2011
@@ -57,6 +57,11 @@ public class BytesType extends AbstractT
return ByteBufferUtil.bytesToHex(bytes);
}
+ public String toString(ByteBuffer byteBuffer)
+ {
+ return getString(byteBuffer);
+ }
+
public ByteBuffer fromString(String source)
{
try
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
Wed Mar 30 14:30:33 2011
@@ -45,6 +45,11 @@ public class CounterColumnType extends A
return ByteBufferUtil.bytesToHex(bytes);
}
+ public String toString(Long l)
+ {
+ return l.toString();
+ }
+
/**
* create commutative column
*/
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java
Wed Mar 30 14:30:33 2011
@@ -129,6 +129,11 @@ public final class IntegerType extends A
return new
java.math.BigInteger(TBaseHelper.byteBufferToByteArray(bytes)).toString(10);
}
+
+ public String toString(BigInteger bi)
+ {
+ return bi.toString();
+ }
public ByteBuffer fromString(String source) throws MarshalException
{
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
Wed Mar 30 14:30:33 2011
@@ -65,6 +65,11 @@ public class LexicalUUIDType extends Abs
return UUIDGen.getUUID(bytes).toString();
}
+ public String toString(UUID uuid)
+ {
+ return uuid.toString();
+ }
+
public ByteBuffer fromString(String source) throws MarshalException
{
// Return an empty ByteBuffer for an empty string.
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
Wed Mar 30 14:30:33 2011
@@ -48,6 +48,11 @@ public class LocalByPartionerType<T exte
return ByteBufferUtil.bytesToHex(bytes);
}
+ public String toString(ByteBuffer bb)
+ {
+ return getString(bb);
+ }
+
public ByteBuffer fromString(String source)
{
throw new NotImplementedException();
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java Wed
Mar 30 14:30:33 2011
@@ -66,10 +66,14 @@ public class LongType extends AbstractTy
throw new MarshalException("A long is exactly 8 bytes:
"+bytes.remaining());
}
-
return String.valueOf(bytes.getLong(bytes.position()));
}
+ public String toString(Long l)
+ {
+ return l.toString();
+ }
+
public ByteBuffer fromString(String source) throws MarshalException
{
// Return an empty ByteBuffer for an empty string.
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
Wed Mar 30 14:30:33 2011
@@ -119,6 +119,11 @@ public class TimeUUIDType extends Abstra
return uuid.toString();
}
+ public String toString(UUID uuid)
+ {
+ return uuid.toString();
+ }
+
public ByteBuffer fromString(String source) throws MarshalException
{
// Return an empty ByteBuffer for an empty string.
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java Wed
Mar 30 14:30:33 2011
@@ -53,6 +53,11 @@ public class UTF8Type extends AbstractTy
}
}
+ public String toString(String s)
+ {
+ return s;
+ }
+
public ByteBuffer fromString(String source)
{
return ByteBufferUtil.bytes(source);
Modified:
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java?rev=1086964&r1=1086963&r2=1086964&view=diff
==============================================================================
---
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java
(original)
+++
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java
Wed Mar 30 14:30:33 2011
@@ -22,15 +22,12 @@ package org.apache.cassandra.db.marshal;
import com.google.common.base.Charsets;
-import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.UUIDGen;
-import org.junit.Ignore;
import org.junit.Test;
import java.math.BigInteger;
import java.nio.ByteBuffer;
-import java.util.Arrays;
import java.util.Calendar;
import java.util.TimeZone;
import java.util.UUID;
@@ -46,6 +43,7 @@ public class RoundTripTest
assert
IntegerType.instance.fromString(IntegerType.instance.getString(ByteBuffer.wrap(bi.toByteArray())))
.equals(ByteBuffer.wrap(bi.toByteArray()));
assert
IntegerType.instance.compose(ByteBuffer.wrap(bi.toByteArray())).equals(bi);
+ assert IntegerType.instance.toString(bi).equals("1");
}
@Test
@@ -56,6 +54,7 @@ public class RoundTripTest
assert
LongType.instance.fromString(LongType.instance.getString(ByteBuffer.wrap(v)))
.equals(ByteBuffer.wrap(v));
assert LongType.instance.compose(ByteBuffer.wrap(v)) == 1L;
+ assert LongType.instance.toString(1L).equals("1");
}
@Test
@@ -66,17 +65,19 @@ public class RoundTripTest
assert
AsciiType.instance.fromString(AsciiType.instance.getString(ByteBuffer.wrap(abc)))
.equals(ByteBuffer.wrap(abc));
assert AsciiType.instance.compose(ByteBuffer.wrap(abc)).equals("abc");
+ assert AsciiType.instance.toString("abc").equals("abc");
}
@Test
public void testBytes()
{
byte[] v = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- assert
BytesType.instance.getString(BytesType.instance.fromString(FBUtilities.bytesToHex(v)))
+ assert
BytesType.instance.toString(BytesType.instance.fromString(FBUtilities.bytesToHex(v)))
.equals(FBUtilities.bytesToHex(v));
- assert
BytesType.instance.fromString(BytesType.instance.getString(ByteBuffer.wrap(v)))
+ assert
BytesType.instance.fromString(BytesType.instance.toString(ByteBuffer.wrap(v)))
.equals(ByteBuffer.wrap(v));
assert
BytesType.instance.compose(ByteBuffer.wrap(v)).equals(ByteBuffer.wrap(v));
+ assert
BytesType.instance.toString(ByteBuffer.wrap(v)).equals(FBUtilities.bytesToHex(v));
}
@Test
@@ -88,6 +89,7 @@ public class RoundTripTest
assert
LexicalUUIDType.instance.fromString(LexicalUUIDType.instance.getString(ByteBuffer.wrap(UUIDGen.decompose(uuid))))
.equals(ByteBuffer.wrap(UUIDGen.decompose(uuid)));
assert
LexicalUUIDType.instance.compose(ByteBuffer.wrap(UUIDGen.decompose(uuid))).equals(uuid);
+ assert LexicalUUIDType.instance.toString(uuid).equals(uuid.toString());
}
@Test
@@ -101,6 +103,7 @@ public class RoundTripTest
assert
TimeUUIDType.instance.compose(ByteBuffer.wrap(UUIDGen.decompose(uuid))).equals(uuid);
assert
uuid.equals(TimeUUIDType.instance.compose(TimeUUIDType.instance.fromString(uuid.toString())));
+ assert TimeUUIDType.instance.toString(uuid).equals(uuid.toString());
TimeZone.setDefault(TimeZone.getTimeZone("America/New_York"));
Calendar c = Calendar.getInstance();
@@ -137,5 +140,6 @@ public class RoundTripTest
assert
UTF8Type.instance.fromString(UTF8Type.instance.getString(ByteBuffer.wrap(v.getBytes(Charsets.UTF_8))))
.equals(ByteBuffer.wrap(v.getBytes(Charsets.UTF_8)));
assert
UTF8Type.instance.compose(ByteBuffer.wrap(v.getBytes(Charsets.UTF_8))).equals(v);
+ assert UTF8Type.instance.toString(v).equals(v);
}
}