diff --git a/build.xml b/build.xml index 30ca0077ad..81c3857194 100644 --- a/build.xml +++ b/build.xml @@ -736,7 +736,7 @@ - + @@ -794,7 +794,7 @@ - + @@ -827,7 +827,7 @@ - + @@ -1045,7 +1045,7 @@ --> - + diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java index 200c64f41a..e04b0157bc 100644 --- a/src/java/org/apache/cassandra/cli/CliClient.java +++ b/src/java/org/apache/cassandra/cli/CliClient.java @@ -32,7 +32,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.Iterables; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.commons.lang.StringUtils; import org.antlr.runtime.tree.Tree; diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 415bc78903..f131cda4d0 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -31,7 +31,7 @@ import com.google.common.base.Objects; import com.google.common.collect.MapDifference; import com.google.common.collect.Maps; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.EqualsBuilder; diff --git a/src/java/org/apache/cassandra/cql/QueryProcessor.java b/src/java/org/apache/cassandra/cql/QueryProcessor.java index f70effddf2..f5477ef22c 100644 --- a/src/java/org/apache/cassandra/cql/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql/QueryProcessor.java @@ -23,7 +23,7 @@ import java.nio.charset.CharacterCodingException; import java.util.*; import java.util.concurrent.TimeoutException; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/java/org/apache/cassandra/cql/Term.java b/src/java/org/apache/cassandra/cql/Term.java index 89d10ab568..6e47bfa467 100644 --- a/src/java/org/apache/cassandra/cql/Term.java +++ b/src/java/org/apache/cassandra/cql/Term.java @@ -26,7 +26,7 @@ import org.apache.cassandra.db.marshal.FloatType; import org.apache.cassandra.db.marshal.IntegerType; import org.apache.cassandra.db.marshal.LexicalUUIDType; import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; /** A term parsed from a CQL statement. */ public class Term diff --git a/src/java/org/apache/cassandra/cql3/Attributes.java b/src/java/org/apache/cassandra/cql3/Attributes.java index 4366ff27b6..360f54a60b 100644 --- a/src/java/org/apache/cassandra/cql3/Attributes.java +++ b/src/java/org/apache/cassandra/cql3/Attributes.java @@ -24,7 +24,7 @@ import org.apache.cassandra.db.ExpiringColumn; import org.apache.cassandra.db.marshal.Int32Type; import org.apache.cassandra.db.marshal.LongType; import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; /** * Utility class for the Parser to gather attributes for modification diff --git a/src/java/org/apache/cassandra/cql3/Constants.java b/src/java/org/apache/cassandra/cql3/Constants.java index 643c7f343b..bcfe00df1c 100644 --- a/src/java/org/apache/cassandra/cql3/Constants.java +++ b/src/java/org/apache/cassandra/cql3/Constants.java @@ -20,7 +20,7 @@ package org.apache.cassandra.cql3; import java.nio.ByteBuffer; import java.util.List; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/java/org/apache/cassandra/cql3/Lists.java b/src/java/org/apache/cassandra/cql3/Lists.java index 4aa0c514e5..e2a4945def 100644 --- a/src/java/org/apache/cassandra/cql3/Lists.java +++ b/src/java/org/apache/cassandra/cql3/Lists.java @@ -28,7 +28,7 @@ import org.apache.cassandra.db.marshal.CollectionType; import org.apache.cassandra.db.marshal.Int32Type; import org.apache.cassandra.db.marshal.ListType; import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Pair; diff --git a/src/java/org/apache/cassandra/cql3/Maps.java b/src/java/org/apache/cassandra/cql3/Maps.java index 7c62c05369..4486dca46d 100644 --- a/src/java/org/apache/cassandra/cql3/Maps.java +++ b/src/java/org/apache/cassandra/cql3/Maps.java @@ -28,7 +28,7 @@ import org.apache.cassandra.db.ColumnFamily; import org.apache.cassandra.db.marshal.CollectionType; import org.apache.cassandra.db.marshal.MapType; import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Pair; diff --git a/src/java/org/apache/cassandra/cql3/Sets.java b/src/java/org/apache/cassandra/cql3/Sets.java index 2c31520c4f..3c50db24bf 100644 --- a/src/java/org/apache/cassandra/cql3/Sets.java +++ b/src/java/org/apache/cassandra/cql3/Sets.java @@ -32,7 +32,7 @@ import org.apache.cassandra.db.marshal.CollectionType; import org.apache.cassandra.db.marshal.MapType; import org.apache.cassandra.db.marshal.SetType; import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.FBUtilities; diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index b5e4f5505e..a3cf6d228d 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -36,7 +36,6 @@ import org.apache.cassandra.dht.*; import org.apache.cassandra.exceptions.*; import org.apache.cassandra.service.ClientState; import org.apache.cassandra.service.QueryState; -import org.apache.cassandra.service.RangeSliceVerbHandler; import org.apache.cassandra.service.StorageProxy; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.service.pager.*; @@ -44,7 +43,7 @@ import org.apache.cassandra.db.ConsistencyLevel; import org.apache.cassandra.thrift.IndexExpression; import org.apache.cassandra.thrift.IndexOperator; import org.apache.cassandra.thrift.ThriftValidation; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Pair; diff --git a/src/java/org/apache/cassandra/db/Column.java b/src/java/org/apache/cassandra/db/Column.java index 99a8b445ce..297b280e51 100644 --- a/src/java/org/apache/cassandra/db/Column.java +++ b/src/java/org/apache/cassandra/db/Column.java @@ -33,7 +33,7 @@ import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.io.util.DataOutputBuffer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.FBUtilities; diff --git a/src/java/org/apache/cassandra/db/CounterColumn.java b/src/java/org/apache/cassandra/db/CounterColumn.java index 6e081666bc..29934857a9 100644 --- a/src/java/org/apache/cassandra/db/CounterColumn.java +++ b/src/java/org/apache/cassandra/db/CounterColumn.java @@ -25,7 +25,7 @@ import java.util.Set; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/java/org/apache/cassandra/db/DeletedColumn.java b/src/java/org/apache/cassandra/db/DeletedColumn.java index b30ed2fb31..377df27430 100644 --- a/src/java/org/apache/cassandra/db/DeletedColumn.java +++ b/src/java/org/apache/cassandra/db/DeletedColumn.java @@ -23,7 +23,7 @@ import java.security.MessageDigest; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.io.util.DataOutputBuffer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.HeapAllocator; diff --git a/src/java/org/apache/cassandra/db/ExpiringColumn.java b/src/java/org/apache/cassandra/db/ExpiringColumn.java index 0bef26661e..e11567f3ff 100644 --- a/src/java/org/apache/cassandra/db/ExpiringColumn.java +++ b/src/java/org/apache/cassandra/db/ExpiringColumn.java @@ -24,7 +24,7 @@ import java.security.MessageDigest; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.io.util.DataOutputBuffer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.HeapAllocator; diff --git a/src/java/org/apache/cassandra/db/OnDiskAtom.java b/src/java/org/apache/cassandra/db/OnDiskAtom.java index 06e9b5a579..2956d6bc95 100644 --- a/src/java/org/apache/cassandra/db/OnDiskAtom.java +++ b/src/java/org/apache/cassandra/db/OnDiskAtom.java @@ -24,7 +24,7 @@ import java.security.MessageDigest; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.io.ISSTableSerializer; import org.apache.cassandra.io.sstable.Descriptor; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public interface OnDiskAtom diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java b/src/java/org/apache/cassandra/db/RangeTombstone.java index ec1f21552b..cac50e8903 100644 --- a/src/java/org/apache/cassandra/db/RangeTombstone.java +++ b/src/java/org/apache/cassandra/db/RangeTombstone.java @@ -28,7 +28,7 @@ import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.io.ISSTableSerializer; import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.io.util.DataOutputBuffer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.Interval; diff --git a/src/java/org/apache/cassandra/db/context/CounterContext.java b/src/java/org/apache/cassandra/db/context/CounterContext.java index ef57c4a98a..e73a5e6707 100644 --- a/src/java/org/apache/cassandra/db/context/CounterContext.java +++ b/src/java/org/apache/cassandra/db/context/CounterContext.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java b/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java index e354de0ba8..0626ef569d 100644 --- a/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java +++ b/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java @@ -17,9 +17,9 @@ */ package org.apache.cassandra.db.marshal; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.BytesSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.BytesSerializer; +import org.apache.cassandra.serializers.MarshalException; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -330,7 +330,7 @@ public abstract class AbstractCompositeType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return BytesSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/src/java/org/apache/cassandra/db/marshal/AbstractType.java index c9e94b7ef5..82068f35e2 100644 --- a/src/java/org/apache/cassandra/db/marshal/AbstractType.java +++ b/src/java/org/apache/cassandra/db/marshal/AbstractType.java @@ -31,8 +31,8 @@ import org.apache.cassandra.exceptions.SyntaxException; import org.apache.cassandra.db.Column; import org.apache.cassandra.db.OnDiskAtom; import org.apache.cassandra.db.RangeTombstone; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import static org.apache.cassandra.io.sstable.IndexHelper.IndexInfo; @@ -162,7 +162,7 @@ public abstract class AbstractType implements Comparator return new CQL3Type.Custom(this); } - public abstract AbstractSerializer asComposer(); + public abstract TypeSerializer getSerializer(); /** @deprecated use reverseComparator field instead */ public Comparator getReverseComparator() diff --git a/src/java/org/apache/cassandra/db/marshal/AsciiType.java b/src/java/org/apache/cassandra/db/marshal/AsciiType.java index 09e562ca4c..fb96aff55b 100644 --- a/src/java/org/apache/cassandra/db/marshal/AsciiType.java +++ b/src/java/org/apache/cassandra/db/marshal/AsciiType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.AsciiSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.AsciiSerializer; +import org.apache.cassandra.serializers.MarshalException; public class AsciiType extends AbstractType { @@ -65,7 +65,7 @@ public class AsciiType extends AbstractType return CQL3Type.Native.ASCII; } - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return AsciiSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/BooleanType.java b/src/java/org/apache/cassandra/db/marshal/BooleanType.java index 307664f825..95c6de02b5 100644 --- a/src/java/org/apache/cassandra/db/marshal/BooleanType.java +++ b/src/java/org/apache/cassandra/db/marshal/BooleanType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.BooleanSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.BooleanSerializer; +import org.apache.cassandra.serializers.MarshalException; public class BooleanType extends AbstractType { @@ -79,7 +79,7 @@ public class BooleanType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return BooleanSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/BytesType.java b/src/java/org/apache/cassandra/db/marshal/BytesType.java index 571e6e7f79..6601af3b5f 100644 --- a/src/java/org/apache/cassandra/db/marshal/BytesType.java +++ b/src/java/org/apache/cassandra/db/marshal/BytesType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.BytesSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.BytesSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.Hex; @@ -91,7 +91,7 @@ public class BytesType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return BytesSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/CollectionType.java b/src/java/org/apache/cassandra/db/marshal/CollectionType.java index 7b2bce2262..f922d5603a 100644 --- a/src/java/org/apache/cassandra/db/marshal/CollectionType.java +++ b/src/java/org/apache/cassandra/db/marshal/CollectionType.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.cassandra.cql3.CQL3Type; import org.apache.cassandra.db.Column; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.Pair; diff --git a/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java b/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java index fa9705b8c4..7dda157d46 100644 --- a/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java +++ b/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java @@ -25,9 +25,9 @@ import com.google.common.collect.ImmutableMap; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.BytesSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.BytesSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class ColumnToCollectionType extends AbstractType @@ -106,7 +106,7 @@ public class ColumnToCollectionType extends AbstractType throw new UnsupportedOperationException("ColumnToCollectionType should only be used in composite types, never alone"); } - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return BytesSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/CompositeType.java b/src/java/org/apache/cassandra/db/marshal/CompositeType.java index 6a25d142f8..640fea7f20 100644 --- a/src/java/org/apache/cassandra/db/marshal/CompositeType.java +++ b/src/java/org/apache/cassandra/db/marshal/CompositeType.java @@ -34,7 +34,7 @@ import org.apache.cassandra.exceptions.SyntaxException; import org.apache.cassandra.cql3.ColumnNameBuilder; import org.apache.cassandra.cql3.Relation; import org.apache.cassandra.io.util.DataOutputBuffer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; /* diff --git a/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java b/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java index 4a84eceaeb..ef1ffc6528 100644 --- a/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java +++ b/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java @@ -21,9 +21,9 @@ import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; import org.apache.cassandra.db.*; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.CounterSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.CounterSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class CounterColumnType extends AbstractCommutativeType @@ -69,7 +69,7 @@ public class CounterColumnType extends AbstractCommutativeType return CQL3Type.Native.COUNTER; } - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return CounterSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/DateType.java b/src/java/org/apache/cassandra/db/marshal/DateType.java index 7de69e89d3..f97067afa3 100644 --- a/src/java/org/apache/cassandra/db/marshal/DateType.java +++ b/src/java/org/apache/cassandra/db/marshal/DateType.java @@ -25,10 +25,9 @@ import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.TimestampSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.TimestampSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.commons.lang.time.DateUtils; @@ -140,7 +139,7 @@ public class DateType extends AbstractType TimestampSerializer.instance.validate(bytes); } - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return TimestampSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/DecimalType.java b/src/java/org/apache/cassandra/db/marshal/DecimalType.java index e2137035a7..230df51d8e 100644 --- a/src/java/org/apache/cassandra/db/marshal/DecimalType.java +++ b/src/java/org/apache/cassandra/db/marshal/DecimalType.java @@ -21,9 +21,9 @@ import java.math.BigDecimal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.DecimalSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.DecimalSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class DecimalType extends AbstractType @@ -95,7 +95,7 @@ public class DecimalType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return DecimalSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/DoubleType.java b/src/java/org/apache/cassandra/db/marshal/DoubleType.java index 89f11af936..4ff4db607d 100644 --- a/src/java/org/apache/cassandra/db/marshal/DoubleType.java +++ b/src/java/org/apache/cassandra/db/marshal/DoubleType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.DoubleSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.DoubleSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class DoubleType extends AbstractType @@ -90,7 +90,7 @@ public class DoubleType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return DoubleSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java b/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java index b00a0269e1..b68505e069 100644 --- a/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java +++ b/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java @@ -24,8 +24,8 @@ import java.util.Map; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; /* @@ -362,7 +362,7 @@ public class DynamicCompositeType extends AbstractCompositeType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { throw new UnsupportedOperationException(); } diff --git a/src/java/org/apache/cassandra/db/marshal/EmptyType.java b/src/java/org/apache/cassandra/db/marshal/EmptyType.java index 0ad704f1ab..74cf3fee88 100644 --- a/src/java/org/apache/cassandra/db/marshal/EmptyType.java +++ b/src/java/org/apache/cassandra/db/marshal/EmptyType.java @@ -19,9 +19,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.EmptySerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.EmptySerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; /** @@ -67,7 +67,7 @@ public class EmptyType extends AbstractType EmptySerializer.instance.validate(bytes); } - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return EmptySerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/FloatType.java b/src/java/org/apache/cassandra/db/marshal/FloatType.java index c0940f4e96..6b9782e966 100644 --- a/src/java/org/apache/cassandra/db/marshal/FloatType.java +++ b/src/java/org/apache/cassandra/db/marshal/FloatType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.FloatSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.FloatSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; @@ -89,7 +89,7 @@ public class FloatType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return FloatSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/InetAddressType.java b/src/java/org/apache/cassandra/db/marshal/InetAddressType.java index a86f5785f2..fa5ce959d6 100644 --- a/src/java/org/apache/cassandra/db/marshal/InetAddressType.java +++ b/src/java/org/apache/cassandra/db/marshal/InetAddressType.java @@ -21,9 +21,9 @@ import java.net.InetAddress; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.InetAddressSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.InetAddressSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class InetAddressType extends AbstractType @@ -83,7 +83,7 @@ public class InetAddressType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return InetAddressSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/Int32Type.java b/src/java/org/apache/cassandra/db/marshal/Int32Type.java index 0ec72405d1..ec05cb12df 100644 --- a/src/java/org/apache/cassandra/db/marshal/Int32Type.java +++ b/src/java/org/apache/cassandra/db/marshal/Int32Type.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.Int32Serializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.Int32Serializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class Int32Type extends AbstractType @@ -98,7 +98,7 @@ public class Int32Type extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return Int32Serializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/IntegerType.java b/src/java/org/apache/cassandra/db/marshal/IntegerType.java index 7fed5f6d63..d602442d1d 100644 --- a/src/java/org/apache/cassandra/db/marshal/IntegerType.java +++ b/src/java/org/apache/cassandra/db/marshal/IntegerType.java @@ -21,9 +21,9 @@ import java.math.BigInteger; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.IntegerSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.IntegerSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public final class IntegerType extends AbstractType @@ -162,7 +162,7 @@ public final class IntegerType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return IntegerSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java b/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java index dacd81b774..d1a6590bd8 100644 --- a/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java +++ b/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import java.util.UUID; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; -import org.apache.cassandra.type.UUIDSerializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.serializers.UUIDSerializer; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.UUIDGen; @@ -85,7 +85,7 @@ public class LexicalUUIDType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return UUIDSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/ListType.java b/src/java/org/apache/cassandra/db/marshal/ListType.java index 49e7319569..93c4dae2de 100644 --- a/src/java/org/apache/cassandra/db/marshal/ListType.java +++ b/src/java/org/apache/cassandra/db/marshal/ListType.java @@ -23,8 +23,8 @@ import java.util.*; import org.apache.cassandra.db.Column; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.ListSerializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.ListSerializer; import org.apache.cassandra.utils.Pair; public class ListType extends CollectionType> @@ -59,7 +59,7 @@ public class ListType extends CollectionType> { super(Kind.LIST); this.elements = elements; - this.composer = ListSerializer.getInstance(elements.asComposer()); + this.composer = ListSerializer.getInstance(elements.getSerializer()); } public AbstractType nameComparator() @@ -89,7 +89,7 @@ public class ListType extends CollectionType> return composer.deserialize(value); } - public AbstractSerializer> asComposer() + public TypeSerializer> getSerializer() { return composer; } diff --git a/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java b/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java index 62b5d9f17f..22b52144e7 100644 --- a/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java +++ b/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java @@ -19,8 +19,8 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.commons.lang.NotImplementedException; import org.apache.cassandra.db.RowPosition; @@ -70,7 +70,7 @@ public class LocalByPartionerType extends AbstractType asComposer() + public TypeSerializer getSerializer() { throw new UnsupportedOperationException("You can't do this with a local partitioner."); } diff --git a/src/java/org/apache/cassandra/db/marshal/LongType.java b/src/java/org/apache/cassandra/db/marshal/LongType.java index 2570418acb..262265fae1 100644 --- a/src/java/org/apache/cassandra/db/marshal/LongType.java +++ b/src/java/org/apache/cassandra/db/marshal/LongType.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.LongSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.LongSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; public class LongType extends AbstractType @@ -100,7 +100,7 @@ public class LongType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return LongSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/MapType.java b/src/java/org/apache/cassandra/db/marshal/MapType.java index fc51189def..6d20166a50 100644 --- a/src/java/org/apache/cassandra/db/marshal/MapType.java +++ b/src/java/org/apache/cassandra/db/marshal/MapType.java @@ -24,9 +24,9 @@ import java.util.*; import org.apache.cassandra.db.Column; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MapSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MapSerializer; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.Pair; public class MapType extends CollectionType> @@ -64,7 +64,7 @@ public class MapType extends CollectionType> super(Kind.MAP); this.keys = keys; this.values = values; - this.composer = MapSerializer.getInstance(keys.asComposer(), values.asComposer()); + this.composer = MapSerializer.getInstance(keys.getSerializer(), values.getSerializer()); } public AbstractType nameComparator() @@ -133,7 +133,7 @@ public class MapType extends CollectionType> } @Override - public AbstractSerializer> asComposer() + public TypeSerializer> getSerializer() { return composer; } diff --git a/src/java/org/apache/cassandra/db/marshal/ReversedType.java b/src/java/org/apache/cassandra/db/marshal/ReversedType.java index d7816a745c..b111fa6f36 100644 --- a/src/java/org/apache/cassandra/db/marshal/ReversedType.java +++ b/src/java/org/apache/cassandra/db/marshal/ReversedType.java @@ -25,8 +25,8 @@ import java.util.List; import org.apache.cassandra.cql3.CQL3Type; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; public class ReversedType extends AbstractType { @@ -106,9 +106,9 @@ public class ReversedType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { - return baseType.asComposer(); + return baseType.getSerializer(); } @Override diff --git a/src/java/org/apache/cassandra/db/marshal/SetType.java b/src/java/org/apache/cassandra/db/marshal/SetType.java index 89ddc7d085..4979e17077 100644 --- a/src/java/org/apache/cassandra/db/marshal/SetType.java +++ b/src/java/org/apache/cassandra/db/marshal/SetType.java @@ -23,8 +23,8 @@ import java.util.*; import org.apache.cassandra.db.Column; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.SetSerializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.SetSerializer; import org.apache.cassandra.utils.Pair; public class SetType extends CollectionType> @@ -59,7 +59,7 @@ public class SetType extends CollectionType> { super(Kind.SET); this.elements = elements; - this.composer = SetSerializer.getInstance(elements.asComposer()); + this.composer = SetSerializer.getInstance(elements.getSerializer()); } public AbstractType nameComparator() @@ -82,7 +82,7 @@ public class SetType extends CollectionType> return composer.deserialize(value); } - public AbstractSerializer> asComposer() + public TypeSerializer> getSerializer() { return composer; } diff --git a/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java b/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java index 61b02a54a0..d4f145e283 100644 --- a/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java @@ -22,9 +22,9 @@ import java.util.UUID; import java.util.regex.Pattern; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; -import org.apache.cassandra.type.TimeUUIDSerializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.serializers.TimeUUIDSerializer; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.UUIDGen; @@ -176,7 +176,7 @@ public class TimeUUIDType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return TimeUUIDSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/TimestampType.java b/src/java/org/apache/cassandra/db/marshal/TimestampType.java index ee2140c5e5..c525bdf8e4 100644 --- a/src/java/org/apache/cassandra/db/marshal/TimestampType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimestampType.java @@ -25,9 +25,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; -import org.apache.cassandra.type.TimestampSerializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.serializers.TimestampSerializer; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.commons.lang.time.DateUtils; @@ -138,7 +138,7 @@ public class TimestampType extends AbstractType return CQL3Type.Native.TIMESTAMP; } - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return TimestampSerializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/UTF8Type.java b/src/java/org/apache/cassandra/db/marshal/UTF8Type.java index 26631959f5..33284d76c7 100644 --- a/src/java/org/apache/cassandra/db/marshal/UTF8Type.java +++ b/src/java/org/apache/cassandra/db/marshal/UTF8Type.java @@ -20,9 +20,9 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; -import org.apache.cassandra.type.UTF8Serializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.serializers.UTF8Serializer; public class UTF8Type extends AbstractType { @@ -74,7 +74,7 @@ public class UTF8Type extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return UTF8Serializer.instance; } diff --git a/src/java/org/apache/cassandra/db/marshal/UUIDType.java b/src/java/org/apache/cassandra/db/marshal/UUIDType.java index 73021ee1b8..21e20b7bc4 100644 --- a/src/java/org/apache/cassandra/db/marshal/UUIDType.java +++ b/src/java/org/apache/cassandra/db/marshal/UUIDType.java @@ -23,14 +23,14 @@ import java.text.ParseException; import java.util.UUID; import org.apache.cassandra.cql3.CQL3Type; -import org.apache.cassandra.type.AbstractSerializer; -import org.apache.cassandra.type.MarshalException; -import org.apache.cassandra.type.UUIDSerializer; +import org.apache.cassandra.serializers.TypeSerializer; +import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.serializers.UUIDSerializer; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.UUIDGen; import org.apache.commons.lang.time.DateUtils; -import static org.apache.cassandra.type.TimestampSerializer.iso8601Patterns; +import static org.apache.cassandra.serializers.TimestampSerializer.iso8601Patterns; /** * Compares UUIDs using the following criteria:
@@ -240,7 +240,7 @@ public class UUIDType extends AbstractType } @Override - public AbstractSerializer asComposer() + public TypeSerializer getSerializer() { return UUIDSerializer.instance; } diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java b/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java index 02dedaf330..01dc38a17e 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java @@ -20,7 +20,7 @@ package org.apache.cassandra.io.sstable; import java.io.*; import java.util.Iterator; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/java/org/apache/cassandra/type/AsciiSerializer.java b/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java similarity index 62% rename from src/java/org/apache/cassandra/type/AsciiSerializer.java rename to src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java index 72a83120df..a132ce4c18 100644 --- a/src/java/org/apache/cassandra/type/AsciiSerializer.java +++ b/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java @@ -15,8 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; @@ -24,55 +23,42 @@ import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; -public class AsciiSerializer extends AbstractSerializer +public abstract class AbstractTextSerializer implements TypeSerializer { - public static final AsciiSerializer instance = new AsciiSerializer(); - private static final Charset US_ASCII = Charset.forName("US-ASCII"); + private final Charset charset; + + protected AbstractTextSerializer(Charset charset) + { + this.charset = charset; + } - @Override public String serialize(ByteBuffer bytes) { return getString(bytes); } - @Override public ByteBuffer deserialize(String value) { - return ByteBufferUtil.bytes(value, US_ASCII); + return ByteBufferUtil.bytes(value, charset); } - @Override - public void validate(ByteBuffer bytes) throws MarshalException - { - // 0-127 - for (int i = bytes.position(); i < bytes.limit(); i++) - { - byte b = bytes.get(i); - if (b < 0 || b > 127) - throw new MarshalException("Invalid byte for ascii: " + Byte.toString(b)); - } - } - - @Override public String getString(ByteBuffer bytes) { try { - return ByteBufferUtil.string(bytes, US_ASCII); + return ByteBufferUtil.string(bytes, charset); } catch (CharacterCodingException e) { - throw new MarshalException("Invalid ascii bytes " + ByteBufferUtil.bytesToHex(bytes)); + throw new MarshalException("Invalid " + charset + " bytes " + ByteBufferUtil.bytesToHex(bytes)); } } - @Override public String toString(String value) { return value; } - @Override public Class getType() { return String.class; diff --git a/src/java/org/apache/cassandra/serializers/AsciiSerializer.java b/src/java/org/apache/cassandra/serializers/AsciiSerializer.java new file mode 100644 index 0000000000..352c906412 --- /dev/null +++ b/src/java/org/apache/cassandra/serializers/AsciiSerializer.java @@ -0,0 +1,45 @@ +/* + * 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.serializers; + +import org.apache.cassandra.utils.ByteBufferUtil; + +import java.nio.ByteBuffer; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; + +public class AsciiSerializer extends AbstractTextSerializer +{ + public static final AsciiSerializer instance = new AsciiSerializer(); + + private AsciiSerializer() + { + super(Charset.forName("US-ASCII")); + } + + public void validate(ByteBuffer bytes) throws MarshalException + { + // 0-127 + for (int i = bytes.position(); i < bytes.limit(); i++) + { + byte b = bytes.get(i); + if (b < 0 || b > 127) + throw new MarshalException("Invalid byte for ascii: " + Byte.toString(b)); + } + } +} diff --git a/src/java/org/apache/cassandra/type/BooleanSerializer.java b/src/java/org/apache/cassandra/serializers/BooleanSerializer.java similarity index 87% rename from src/java/org/apache/cassandra/type/BooleanSerializer.java rename to src/java/org/apache/cassandra/serializers/BooleanSerializer.java index e2d200c875..f2add98d57 100644 --- a/src/java/org/apache/cassandra/type/BooleanSerializer.java +++ b/src/java/org/apache/cassandra/serializers/BooleanSerializer.java @@ -15,40 +15,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class BooleanSerializer extends AbstractSerializer +public class BooleanSerializer implements TypeSerializer { + private static final ByteBuffer TRUE = ByteBuffer.wrap(new byte[] {1}); + private static final ByteBuffer FALSE = ByteBuffer.wrap(new byte[] {0}); + public static final BooleanSerializer instance = new BooleanSerializer(); - @Override public Boolean serialize(ByteBuffer bytes) { byte value = bytes.get(bytes.position()); return value != 0; } - @Override public ByteBuffer deserialize(Boolean value) { return (value == null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER - : value ? ByteBuffer.wrap(new byte[] {1}) // true - : ByteBuffer.wrap(new byte[] {0}); // false + : value ? TRUE : FALSE; // false } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 1 && bytes.remaining() != 0) throw new MarshalException(String.format("Expected 1 or 0 byte value (%d)", bytes.remaining())); } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -64,16 +61,13 @@ public class BooleanSerializer extends AbstractSerializer return value == 0 ? Boolean.FALSE.toString() : Boolean.TRUE.toString(); } - @Override public String toString(Boolean value) { return value == null ? "" : value.toString(); } - @Override public Class getType() { return Boolean.class; } - } diff --git a/src/java/org/apache/cassandra/type/BytesSerializer.java b/src/java/org/apache/cassandra/serializers/BytesSerializer.java similarity index 89% rename from src/java/org/apache/cassandra/type/BytesSerializer.java rename to src/java/org/apache/cassandra/serializers/BytesSerializer.java index 28897396b0..6504f845e2 100644 --- a/src/java/org/apache/cassandra/type/BytesSerializer.java +++ b/src/java/org/apache/cassandra/serializers/BytesSerializer.java @@ -16,49 +16,43 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class BytesSerializer extends AbstractSerializer +public class BytesSerializer implements TypeSerializer { public static final BytesSerializer instance = new BytesSerializer(); - @Override public ByteBuffer serialize(ByteBuffer bytes) { // We make a copy in case the user modifies the input return bytes.duplicate(); } - @Override public ByteBuffer deserialize(ByteBuffer value) { // This is from the DB, so it is not shared with someone else return value; } - @Override public void validate(ByteBuffer bytes) throws MarshalException { // all bytes are legal. } - @Override public String getString(ByteBuffer bytes) { return ByteBufferUtil.bytesToHex(bytes); } - @Override public String toString(ByteBuffer value) { return getString(value); } - @Override public Class getType() { return ByteBuffer.class; diff --git a/src/java/org/apache/cassandra/type/CollectionSerializer.java b/src/java/org/apache/cassandra/serializers/CollectionSerializer.java similarity index 93% rename from src/java/org/apache/cassandra/type/CollectionSerializer.java rename to src/java/org/apache/cassandra/serializers/CollectionSerializer.java index 2eb3944e1c..563e88b38b 100644 --- a/src/java/org/apache/cassandra/type/CollectionSerializer.java +++ b/src/java/org/apache/cassandra/serializers/CollectionSerializer.java @@ -16,14 +16,13 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import java.nio.ByteBuffer; import java.util.List; -public abstract class CollectionSerializer extends AbstractSerializer +public abstract class CollectionSerializer implements TypeSerializer { - @Override public void validate(ByteBuffer bytes) throws MarshalException { // The collection is not currently being properly validated. diff --git a/src/java/org/apache/cassandra/type/DecimalSerializer.java b/src/java/org/apache/cassandra/serializers/DecimalSerializer.java similarity index 93% rename from src/java/org/apache/cassandra/type/DecimalSerializer.java rename to src/java/org/apache/cassandra/serializers/DecimalSerializer.java index b8ad00b7b0..21031b0d2b 100644 --- a/src/java/org/apache/cassandra/type/DecimalSerializer.java +++ b/src/java/org/apache/cassandra/serializers/DecimalSerializer.java @@ -15,8 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; @@ -24,11 +23,10 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.nio.ByteBuffer; -public class DecimalSerializer extends AbstractSerializer +public class DecimalSerializer implements TypeSerializer { public static final DecimalSerializer instance = new DecimalSerializer(); - @Override public BigDecimal serialize(ByteBuffer bytes) { if (bytes == null) @@ -44,7 +42,6 @@ public class DecimalSerializer extends AbstractSerializer return new BigDecimal(bi, scale); } - @Override public ByteBuffer deserialize(BigDecimal value) { if (value == null) @@ -64,13 +61,11 @@ public class DecimalSerializer extends AbstractSerializer return ByteBuffer.wrap(bytes); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { // no useful check for invalid decimals. } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -80,13 +75,11 @@ public class DecimalSerializer extends AbstractSerializer return serialize(bytes).toPlainString(); } - @Override public String toString(BigDecimal value) { return value == null ? "" : value.toPlainString(); } - @Override public Class getType() { return BigDecimal.class; diff --git a/src/java/org/apache/cassandra/type/DoubleSerializer.java b/src/java/org/apache/cassandra/serializers/DoubleSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/DoubleSerializer.java rename to src/java/org/apache/cassandra/serializers/DoubleSerializer.java index d9b1776383..9fbd627b79 100644 --- a/src/java/org/apache/cassandra/type/DoubleSerializer.java +++ b/src/java/org/apache/cassandra/serializers/DoubleSerializer.java @@ -16,36 +16,32 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class DoubleSerializer extends AbstractSerializer +public class DoubleSerializer implements TypeSerializer { public static final DoubleSerializer instance = new DoubleSerializer(); - @Override public Double serialize(ByteBuffer bytes) { return ByteBufferUtil.toDouble(bytes); } - @Override public ByteBuffer deserialize(Double value) { return (value == null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 8 && bytes.remaining() != 0) throw new MarshalException(String.format("Expected 8 or 0 byte value for a double (%d)", bytes.remaining())); } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -60,13 +56,11 @@ public class DoubleSerializer extends AbstractSerializer return String.valueOf(ByteBufferUtil.toDouble(bytes)); } - @Override public String toString(Double value) { return value == null ? "" : value.toString(); } - @Override public Class getType() { return Double.class; diff --git a/src/java/org/apache/cassandra/type/EmptySerializer.java b/src/java/org/apache/cassandra/serializers/EmptySerializer.java similarity index 89% rename from src/java/org/apache/cassandra/type/EmptySerializer.java rename to src/java/org/apache/cassandra/serializers/EmptySerializer.java index 760ee29d6d..2e082b6bf5 100644 --- a/src/java/org/apache/cassandra/type/EmptySerializer.java +++ b/src/java/org/apache/cassandra/serializers/EmptySerializer.java @@ -16,48 +16,42 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class EmptySerializer extends AbstractSerializer +public class EmptySerializer implements TypeSerializer { public static final EmptySerializer instance = new EmptySerializer(); - @Override public Void serialize(ByteBuffer bytes) { return null; } - @Override public ByteBuffer deserialize(Void value) { return ByteBufferUtil.EMPTY_BYTE_BUFFER; } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() > 0) throw new MarshalException("EmptyType only accept empty values"); } - @Override public String getString(ByteBuffer bytes) { return ""; } - @Override public String toString(Void value) { return ""; } - @Override public Class getType() { return Void.class; diff --git a/src/java/org/apache/cassandra/type/FloatSerializer.java b/src/java/org/apache/cassandra/serializers/FloatSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/FloatSerializer.java rename to src/java/org/apache/cassandra/serializers/FloatSerializer.java index d43003f5ce..35fc528001 100644 --- a/src/java/org/apache/cassandra/type/FloatSerializer.java +++ b/src/java/org/apache/cassandra/serializers/FloatSerializer.java @@ -16,36 +16,32 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class FloatSerializer extends AbstractSerializer +public class FloatSerializer implements TypeSerializer { public static final FloatSerializer instance = new FloatSerializer(); - @Override public Float serialize(ByteBuffer bytes) { return ByteBufferUtil.toFloat(bytes); } - @Override public ByteBuffer deserialize(Float value) { return (value == null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 4 && bytes.remaining() != 0) throw new MarshalException(String.format("Expected 4 or 0 byte value for a float (%d)", bytes.remaining())); } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -60,13 +56,11 @@ public class FloatSerializer extends AbstractSerializer return String.valueOf(ByteBufferUtil.toFloat(bytes)); } - @Override public String toString(Float value) { return value == null ? "" : String.valueOf(value); } - @Override public Class getType() { return Float.class; diff --git a/src/java/org/apache/cassandra/type/InetAddressSerializer.java b/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/InetAddressSerializer.java rename to src/java/org/apache/cassandra/serializers/InetAddressSerializer.java index f1a30d9202..39d9a9ea2e 100644 --- a/src/java/org/apache/cassandra/type/InetAddressSerializer.java +++ b/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; @@ -24,11 +24,10 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; -public class InetAddressSerializer extends AbstractSerializer +public class InetAddressSerializer implements TypeSerializer { public static final InetAddressSerializer instance = new InetAddressSerializer(); - @Override public InetAddress serialize(ByteBuffer bytes) { try @@ -41,13 +40,11 @@ public class InetAddressSerializer extends AbstractSerializer } } - @Override public ByteBuffer deserialize(InetAddress value) { return ByteBuffer.wrap(value.getAddress()); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { try @@ -60,19 +57,16 @@ public class InetAddressSerializer extends AbstractSerializer } } - @Override public String getString(ByteBuffer bytes) { return serialize(bytes).getHostAddress(); } - @Override public String toString(InetAddress value) { return value.getHostAddress(); } - @Override public Class getType() { return InetAddress.class; diff --git a/src/java/org/apache/cassandra/type/Int32Serializer.java b/src/java/org/apache/cassandra/serializers/Int32Serializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/Int32Serializer.java rename to src/java/org/apache/cassandra/serializers/Int32Serializer.java index 2688218898..a6399cd8f6 100644 --- a/src/java/org/apache/cassandra/type/Int32Serializer.java +++ b/src/java/org/apache/cassandra/serializers/Int32Serializer.java @@ -16,36 +16,32 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class Int32Serializer extends AbstractSerializer +public class Int32Serializer implements TypeSerializer { public static final Int32Serializer instance = new Int32Serializer(); - @Override public Integer serialize(ByteBuffer bytes) { return ByteBufferUtil.toInt(bytes); } - @Override public ByteBuffer deserialize(Integer value) { return value == null ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 4 && bytes.remaining() != 0) throw new MarshalException(String.format("Expected 4 or 0 byte int (%d)", bytes.remaining())); } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -60,13 +56,11 @@ public class Int32Serializer extends AbstractSerializer return String.valueOf(ByteBufferUtil.toInt(bytes)); } - @Override public String toString(Integer value) { return value == null ? "" : String.valueOf(value); } - @Override public Class getType() { return Integer.class; diff --git a/src/java/org/apache/cassandra/type/IntegerSerializer.java b/src/java/org/apache/cassandra/serializers/IntegerSerializer.java similarity index 90% rename from src/java/org/apache/cassandra/type/IntegerSerializer.java rename to src/java/org/apache/cassandra/serializers/IntegerSerializer.java index d54a47ce4e..01ecb361ef 100644 --- a/src/java/org/apache/cassandra/type/IntegerSerializer.java +++ b/src/java/org/apache/cassandra/serializers/IntegerSerializer.java @@ -16,36 +16,32 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.math.BigInteger; import java.nio.ByteBuffer; -public class IntegerSerializer extends AbstractSerializer +public class IntegerSerializer implements TypeSerializer { public static final IntegerSerializer instance = new IntegerSerializer(); - @Override public BigInteger serialize(ByteBuffer bytes) { return new BigInteger(ByteBufferUtil.getArray(bytes)); } - @Override public ByteBuffer deserialize(BigInteger value) { return ByteBuffer.wrap(value.toByteArray()); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { // no invalid integers. } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -56,13 +52,11 @@ public class IntegerSerializer extends AbstractSerializer return new BigInteger(ByteBufferUtil.getArray(bytes)).toString(10); } - @Override public String toString(BigInteger value) { return value.toString(10); } - @Override public Class getType() { return BigInteger.class; diff --git a/src/java/org/apache/cassandra/type/ListSerializer.java b/src/java/org/apache/cassandra/serializers/ListSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/ListSerializer.java rename to src/java/org/apache/cassandra/serializers/ListSerializer.java index 1cbaf08181..94ffbd0c6c 100644 --- a/src/java/org/apache/cassandra/type/ListSerializer.java +++ b/src/java/org/apache/cassandra/serializers/ListSerializer.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; @@ -25,11 +25,11 @@ import java.util.*; public class ListSerializer extends CollectionSerializer> { // interning instances - private static final Map, ListSerializer> instances = new HashMap, ListSerializer>(); + private static final Map, ListSerializer> instances = new HashMap, ListSerializer>(); - public final AbstractSerializer elements; + public final TypeSerializer elements; - public static synchronized ListSerializer getInstance(AbstractSerializer elements) + public static synchronized ListSerializer getInstance(TypeSerializer elements) { ListSerializer t = instances.get(elements); if (t == null) @@ -40,7 +40,7 @@ public class ListSerializer extends CollectionSerializer> return t; } - private ListSerializer(AbstractSerializer elements) + private ListSerializer(TypeSerializer elements) { this.elements = elements; } diff --git a/src/java/org/apache/cassandra/type/LongSerializer.java b/src/java/org/apache/cassandra/serializers/LongSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/LongSerializer.java rename to src/java/org/apache/cassandra/serializers/LongSerializer.java index f9835391c0..b103b033ad 100644 --- a/src/java/org/apache/cassandra/type/LongSerializer.java +++ b/src/java/org/apache/cassandra/serializers/LongSerializer.java @@ -16,36 +16,32 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; import java.nio.ByteBuffer; -public class LongSerializer extends AbstractSerializer +public class LongSerializer implements TypeSerializer { public static final LongSerializer instance = new LongSerializer(); - @Override public Long serialize(ByteBuffer bytes) { return ByteBufferUtil.toLong(bytes); } - @Override public ByteBuffer deserialize(Long value) { return ByteBufferUtil.bytes(value); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 8 && bytes.remaining() != 0) throw new MarshalException(String.format("Expected 8 or 0 byte long (%d)", bytes.remaining())); } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -60,13 +56,11 @@ public class LongSerializer extends AbstractSerializer return String.valueOf(ByteBufferUtil.toLong(bytes)); } - @Override public String toString(Long value) { return String.valueOf(value); } - @Override public Class getType() { return Long.class; diff --git a/src/java/org/apache/cassandra/type/MapSerializer.java b/src/java/org/apache/cassandra/serializers/MapSerializer.java similarity index 84% rename from src/java/org/apache/cassandra/type/MapSerializer.java rename to src/java/org/apache/cassandra/serializers/MapSerializer.java index 44253fbddc..d7526e44f8 100644 --- a/src/java/org/apache/cassandra/type/MapSerializer.java +++ b/src/java/org/apache/cassandra/serializers/MapSerializer.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.Pair; @@ -27,14 +27,14 @@ import java.util.*; public class MapSerializer extends CollectionSerializer> { // interning instances - private static final Map, AbstractSerializer>, MapSerializer> instances = new HashMap, AbstractSerializer>, MapSerializer>(); + private static final Map, TypeSerializer>, MapSerializer> instances = new HashMap, TypeSerializer>, MapSerializer>(); - public final AbstractSerializer keys; - public final AbstractSerializer values; + public final TypeSerializer keys; + public final TypeSerializer values; - public static synchronized MapSerializer getInstance(AbstractSerializer keys, AbstractSerializer values) + public static synchronized MapSerializer getInstance(TypeSerializer keys, TypeSerializer values) { - Pair, AbstractSerializer> p = Pair., AbstractSerializer>create(keys, values); + Pair, TypeSerializer> p = Pair., TypeSerializer>create(keys, values); MapSerializer t = instances.get(p); if (t == null) { @@ -44,13 +44,12 @@ public class MapSerializer extends CollectionSerializer> return t; } - private MapSerializer(AbstractSerializer keys, AbstractSerializer values) + private MapSerializer(TypeSerializer keys, TypeSerializer values) { this.keys = keys; this.values = values; } - @Override public Map serialize(ByteBuffer bytes) { try @@ -82,7 +81,6 @@ public class MapSerializer extends CollectionSerializer> } } - @Override public ByteBuffer deserialize(Map value) { List bbs = new ArrayList(2 * value.size()); @@ -98,7 +96,6 @@ public class MapSerializer extends CollectionSerializer> return pack(bbs, value.size(), size); } - @Override public String toString(Map value) { StringBuffer sb = new StringBuffer(); @@ -122,7 +119,6 @@ public class MapSerializer extends CollectionSerializer> return sb.toString(); } - @Override public Class> getType() { return (Class)Map.class; diff --git a/src/java/org/apache/cassandra/type/MarshalException.java b/src/java/org/apache/cassandra/serializers/MarshalException.java similarity index 96% rename from src/java/org/apache/cassandra/type/MarshalException.java rename to src/java/org/apache/cassandra/serializers/MarshalException.java index b556a887f0..d5a8385c02 100644 --- a/src/java/org/apache/cassandra/type/MarshalException.java +++ b/src/java/org/apache/cassandra/serializers/MarshalException.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; public class MarshalException extends RuntimeException { diff --git a/src/java/org/apache/cassandra/type/SetSerializer.java b/src/java/org/apache/cassandra/serializers/SetSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/SetSerializer.java rename to src/java/org/apache/cassandra/serializers/SetSerializer.java index f60acb486e..be333187cd 100644 --- a/src/java/org/apache/cassandra/type/SetSerializer.java +++ b/src/java/org/apache/cassandra/serializers/SetSerializer.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; @@ -25,11 +25,11 @@ import java.util.*; public class SetSerializer extends CollectionSerializer> { // interning instances - private static final Map, SetSerializer> instances = new HashMap, SetSerializer>(); + private static final Map, SetSerializer> instances = new HashMap, SetSerializer>(); - public final AbstractSerializer elements; + public final TypeSerializer elements; - public static synchronized SetSerializer getInstance(AbstractSerializer elements) + public static synchronized SetSerializer getInstance(TypeSerializer elements) { SetSerializer t = instances.get(elements); if (t == null) @@ -40,7 +40,7 @@ public class SetSerializer extends CollectionSerializer> return t; } - private SetSerializer(AbstractSerializer elements) + private SetSerializer(TypeSerializer elements) { this.elements = elements; } diff --git a/src/java/org/apache/cassandra/type/TimeUUIDSerializer.java b/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java similarity index 97% rename from src/java/org/apache/cassandra/type/TimeUUIDSerializer.java rename to src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java index b76701224b..22750be3f5 100644 --- a/src/java/org/apache/cassandra/type/TimeUUIDSerializer.java +++ b/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import java.nio.ByteBuffer; diff --git a/src/java/org/apache/cassandra/type/TimestampSerializer.java b/src/java/org/apache/cassandra/serializers/TimestampSerializer.java similarity index 94% rename from src/java/org/apache/cassandra/type/TimestampSerializer.java rename to src/java/org/apache/cassandra/serializers/TimestampSerializer.java index 84042e186b..49766c713f 100644 --- a/src/java/org/apache/cassandra/type/TimestampSerializer.java +++ b/src/java/org/apache/cassandra/serializers/TimestampSerializer.java @@ -15,8 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; @@ -24,7 +23,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Date; -public class TimestampSerializer extends AbstractSerializer +public class TimestampSerializer implements TypeSerializer { public static final String[] iso8601Patterns = new String[] { "yyyy-MM-dd HH:mm", @@ -51,7 +50,6 @@ public class TimestampSerializer extends AbstractSerializer public static final TimestampSerializer instance = new TimestampSerializer(); - @Override public Date serialize(ByteBuffer bytes) { return bytes.remaining() > 0 @@ -59,7 +57,6 @@ public class TimestampSerializer extends AbstractSerializer : null; } - @Override public ByteBuffer deserialize(Date value) { return (value == null) @@ -67,14 +64,12 @@ public class TimestampSerializer extends AbstractSerializer : ByteBufferUtil.bytes(value.getTime()); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 8 && bytes.remaining() != 0) throw new MarshalException(String.format("Expected 8 or 0 byte long for date (%d)", bytes.remaining())); } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -90,13 +85,11 @@ public class TimestampSerializer extends AbstractSerializer return FORMATTER.get().format(new Date(ByteBufferUtil.toLong(bytes))); } - @Override public String toString(Date value) { return FORMATTER.get().format(value); } - @Override public Class getType() { return Date.class; diff --git a/src/java/org/apache/cassandra/type/AbstractSerializer.java b/src/java/org/apache/cassandra/serializers/TypeSerializer.java similarity index 70% rename from src/java/org/apache/cassandra/type/AbstractSerializer.java rename to src/java/org/apache/cassandra/serializers/TypeSerializer.java index 85a0e39e16..9d30508853 100644 --- a/src/java/org/apache/cassandra/type/AbstractSerializer.java +++ b/src/java/org/apache/cassandra/serializers/TypeSerializer.java @@ -16,21 +16,21 @@ * limitations under the License. */ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import java.nio.ByteBuffer; -public abstract class AbstractSerializer +public interface TypeSerializer { - public abstract T serialize(ByteBuffer bytes); - public abstract ByteBuffer deserialize(T value); + public T serialize(ByteBuffer bytes); + public ByteBuffer deserialize(T value); /* validate that the byte array is a valid sequence for the type we are supposed to be comparing */ - public abstract void validate(ByteBuffer bytes) throws MarshalException; + public void validate(ByteBuffer bytes) throws MarshalException; - public abstract String getString(ByteBuffer bytes); - public abstract String toString(T value); + public String getString(ByteBuffer bytes); + public String toString(T value); - public abstract Class getType(); + public Class getType(); } diff --git a/src/java/org/apache/cassandra/type/UTF8Serializer.java b/src/java/org/apache/cassandra/serializers/UTF8Serializer.java similarity index 87% rename from src/java/org/apache/cassandra/type/UTF8Serializer.java rename to src/java/org/apache/cassandra/serializers/UTF8Serializer.java index 4c4478849d..c0790a6f2e 100644 --- a/src/java/org/apache/cassandra/type/UTF8Serializer.java +++ b/src/java/org/apache/cassandra/serializers/UTF8Serializer.java @@ -15,8 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.ByteBufferUtil; @@ -24,24 +23,15 @@ import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; -public class UTF8Serializer extends AbstractSerializer +public class UTF8Serializer extends AbstractTextSerializer { public static final UTF8Serializer instance = new UTF8Serializer(); - private static final Charset UTF_8 = Charset.forName("UTF-8"); - @Override - public String serialize(ByteBuffer bytes) + private UTF8Serializer() { - return getString(bytes); + super(Charset.forName("UTF-8")); } - @Override - public ByteBuffer deserialize(String value) - { - return ByteBufferUtil.bytes(value, UTF_8); - } - - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (!UTF8Validator.validate(bytes)) @@ -165,29 +155,4 @@ public class UTF8Serializer extends AbstractSerializer return state == State.START; } } - - @Override - public String getString(ByteBuffer bytes) - { - try - { - return ByteBufferUtil.string(bytes, UTF_8); - } - catch (CharacterCodingException e) - { - throw new MarshalException("Invalid ascii bytes " + ByteBufferUtil.bytesToHex(bytes)); - } - } - - @Override - public String toString(String value) - { - return value; - } - - @Override - public Class getType() - { - return String.class; - } } diff --git a/src/java/org/apache/cassandra/type/UUIDSerializer.java b/src/java/org/apache/cassandra/serializers/UUIDSerializer.java similarity index 91% rename from src/java/org/apache/cassandra/type/UUIDSerializer.java rename to src/java/org/apache/cassandra/serializers/UUIDSerializer.java index 07b86b6725..4bfd6d5471 100644 --- a/src/java/org/apache/cassandra/type/UUIDSerializer.java +++ b/src/java/org/apache/cassandra/serializers/UUIDSerializer.java @@ -15,31 +15,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; import org.apache.cassandra.utils.UUIDGen; import java.nio.ByteBuffer; import java.util.UUID; -public class UUIDSerializer extends AbstractSerializer +public class UUIDSerializer implements TypeSerializer { public static final UUIDSerializer instance = new UUIDSerializer(); - @Override public UUID serialize(ByteBuffer bytes) { return UUIDGen.getUUID(bytes); } - @Override public ByteBuffer deserialize(UUID value) { return ByteBuffer.wrap(UUIDGen.decompose(value)); } - @Override public void validate(ByteBuffer bytes) throws MarshalException { if (bytes.remaining() != 16 && bytes.remaining() != 0) @@ -47,7 +43,6 @@ public class UUIDSerializer extends AbstractSerializer // not sure what the version should be for this. } - @Override public String getString(ByteBuffer bytes) { if (bytes.remaining() == 0) @@ -62,13 +57,11 @@ public class UUIDSerializer extends AbstractSerializer return uuid.toString(); } - @Override public String toString(UUID value) { return value.toString(); } - @Override public Class getType() { return UUID.class; diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java b/src/java/org/apache/cassandra/thrift/CassandraServer.java index c9cb9eb78f..6211dbb95d 100644 --- a/src/java/org/apache/cassandra/thrift/CassandraServer.java +++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java @@ -45,12 +45,11 @@ import org.apache.cassandra.cql.CQLStatement; import org.apache.cassandra.cql.QueryProcessor; import org.apache.cassandra.db.*; import org.apache.cassandra.db.context.CounterContext; -import org.apache.cassandra.db.columniterator.IdentityQueryFilter; import org.apache.cassandra.db.filter.IDiskAtomFilter; import org.apache.cassandra.db.filter.NamesQueryFilter; import org.apache.cassandra.db.filter.SliceQueryFilter; import org.apache.cassandra.db.marshal.CompositeType; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.db.marshal.TimeUUIDType; import org.apache.cassandra.dht.*; import org.apache.cassandra.exceptions.*; diff --git a/src/java/org/apache/cassandra/thrift/ThriftValidation.java b/src/java/org/apache/cassandra/thrift/ThriftValidation.java index 6f14a37297..af2496aea2 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java +++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java @@ -20,7 +20,7 @@ package org.apache.cassandra.thrift; import java.nio.ByteBuffer; import java.util.*; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java index 6e032d0fed..36f19cc108 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -28,7 +28,7 @@ import java.util.SortedMap; import java.util.TreeMap; import java.util.concurrent.TimeUnit; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.Option; diff --git a/src/java/org/apache/cassandra/tools/Shuffle.java b/src/java/org/apache/cassandra/tools/Shuffle.java index 0c5c92a1d1..d89337b209 100644 --- a/src/java/org/apache/cassandra/tools/Shuffle.java +++ b/src/java/org/apache/cassandra/tools/Shuffle.java @@ -43,7 +43,7 @@ import javax.management.MBeanServerConnection; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; -import org.apache.cassandra.type.TimestampSerializer; +import org.apache.cassandra.serializers.TimestampSerializer; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.Token; import org.apache.cassandra.locator.EndpointSnitchInfoMBean; diff --git a/src/java/org/apache/cassandra/type/CounterSerializer.java b/src/java/org/apache/cassandra/type/CounterSerializer.java index c0625c318f..b08ec1e9ad 100644 --- a/src/java/org/apache/cassandra/type/CounterSerializer.java +++ b/src/java/org/apache/cassandra/type/CounterSerializer.java @@ -15,8 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; public class CounterSerializer extends LongSerializer { diff --git a/test/unit/org/apache/cassandra/cql/jdbc/JdbcDecimalTest.java b/test/unit/org/apache/cassandra/cql/jdbc/JdbcDecimalTest.java index 90a8200433..cb88ae8ec9 100644 --- a/test/unit/org/apache/cassandra/cql/jdbc/JdbcDecimalTest.java +++ b/test/unit/org/apache/cassandra/cql/jdbc/JdbcDecimalTest.java @@ -21,7 +21,7 @@ package org.apache.cassandra.cql.jdbc; import java.math.BigDecimal; import java.nio.ByteBuffer; -import org.apache.cassandra.type.DecimalSerializer; +import org.apache.cassandra.serializers.DecimalSerializer; import org.junit.Assert; import org.junit.Test; diff --git a/test/unit/org/apache/cassandra/db/marshal/BytesTypeTest.java b/test/unit/org/apache/cassandra/db/marshal/BytesTypeTest.java index 24804fd2cc..789794044a 100644 --- a/test/unit/org/apache/cassandra/db/marshal/BytesTypeTest.java +++ b/test/unit/org/apache/cassandra/db/marshal/BytesTypeTest.java @@ -19,7 +19,7 @@ */ package org.apache.cassandra.db.marshal; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.junit.Test; public class BytesTypeTest diff --git a/test/unit/org/apache/cassandra/db/marshal/CompositeTypeTest.java b/test/unit/org/apache/cassandra/db/marshal/CompositeTypeTest.java index fa31b9e459..afb3913f89 100644 --- a/test/unit/org/apache/cassandra/db/marshal/CompositeTypeTest.java +++ b/test/unit/org/apache/cassandra/db/marshal/CompositeTypeTest.java @@ -19,14 +19,12 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; -import java.nio.charset.CharacterCodingException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.UUID; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.junit.Test; import static org.junit.Assert.fail; import static org.junit.Assert.assertEquals; @@ -37,7 +35,6 @@ import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.SyntaxException; import org.apache.cassandra.db.*; import org.apache.cassandra.db.filter.QueryFilter; -import org.apache.cassandra.io.sstable.SSTableReader; import org.apache.cassandra.utils.*; public class CompositeTypeTest extends SchemaLoader diff --git a/test/unit/org/apache/cassandra/db/marshal/DynamicCompositeTypeTest.java b/test/unit/org/apache/cassandra/db/marshal/DynamicCompositeTypeTest.java index 8a4588dd1c..e959b5f4e5 100644 --- a/test/unit/org/apache/cassandra/db/marshal/DynamicCompositeTypeTest.java +++ b/test/unit/org/apache/cassandra/db/marshal/DynamicCompositeTypeTest.java @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.junit.Test; import static org.junit.Assert.fail; diff --git a/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java b/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java index 4b0228a11a..89dbf01cf2 100644 --- a/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java +++ b/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java @@ -23,7 +23,7 @@ package org.apache.cassandra.db.marshal; import com.google.common.base.Charsets; -import org.apache.cassandra.type.*; +import org.apache.cassandra.serializers.*; import org.apache.cassandra.utils.Hex; import org.apache.cassandra.utils.UUIDGen; import org.junit.Test; diff --git a/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java b/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java index 2cd6da0fb2..703845bd76 100644 --- a/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java +++ b/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java @@ -24,7 +24,7 @@ import java.util.Arrays; import java.util.Random; import java.util.UUID; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/test/unit/org/apache/cassandra/db/marshal/TypeValidationTest.java b/test/unit/org/apache/cassandra/db/marshal/TypeValidationTest.java index 9f2b3e2b05..ed5e2bf81c 100644 --- a/test/unit/org/apache/cassandra/db/marshal/TypeValidationTest.java +++ b/test/unit/org/apache/cassandra/db/marshal/TypeValidationTest.java @@ -1,7 +1,7 @@ package org.apache.cassandra.db.marshal; import org.apache.cassandra.Util; -import org.apache.cassandra.type.MarshalException; +import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.UUIDGen; import org.junit.Test; diff --git a/test/unit/org/apache/cassandra/type/ClientUtilsTest.java b/test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java similarity index 90% rename from test/unit/org/apache/cassandra/type/ClientUtilsTest.java rename to test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java index 74d3e20792..877971eae5 100644 --- a/test/unit/org/apache/cassandra/type/ClientUtilsTest.java +++ b/test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java @@ -1,4 +1,4 @@ -package org.apache.cassandra.type; +package org.apache.cassandra.serializers; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -42,9 +42,9 @@ public class ClientUtilsTest BytesSerializer.instance.serialize(BytesSerializer.instance.deserialize(ByteBuffer.wrap("string".getBytes()))); Date date = new Date(System.currentTimeMillis()); - ByteBuffer dateBB = DateSerializer.instance.deserialize(date); - DateSerializer.instance.serialize(dateBB); - assert (DateSerializer.instance.toString(date).equals(DateSerializer.instance.getString(dateBB))); + ByteBuffer dateBB = TimestampSerializer.instance.deserialize(date); + TimestampSerializer.instance.serialize(dateBB); + assert (TimestampSerializer.instance.toString(date).equals(TimestampSerializer.instance.getString(dateBB))); DecimalSerializer.instance.serialize(DecimalSerializer.instance.deserialize(new BigDecimal(1))); DoubleSerializer.instance.serialize(DoubleSerializer.instance.deserialize(new Double(1.0d)));