Skip to content

Commit 1645b78

Browse files
committed
serialize size and migrated fixed&var length codecs, not tested
1 parent 3bbd519 commit 1645b78

21 files changed

+381
-74
lines changed

core/src/main/java/com/datastax/oss/driver/api/core/type/codec/TypeCodec.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.datastax.oss.driver.api.core.metadata.schema.AggregateMetadata;
2525
import com.datastax.oss.driver.api.core.type.DataType;
2626
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
27+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2728
import com.datastax.oss.driver.shaded.guava.common.base.Preconditions;
2829
import edu.umd.cs.findbugs.annotations.NonNull;
2930
import edu.umd.cs.findbugs.annotations.Nullable;
@@ -234,4 +235,9 @@ default boolean accepts(@NonNull DataType cqlType) {
234235
*/
235236
@Nullable
236237
JavaTypeT parse(@Nullable String value);
238+
239+
@NonNull
240+
default Optional<Integer> serializedSize() {
241+
return Optional.absent();
242+
}
237243
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/BigIntCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.datastax.oss.driver.api.core.type.DataTypes;
2323
import com.datastax.oss.driver.api.core.type.codec.PrimitiveLongCodec;
2424
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
25+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2526
import edu.umd.cs.findbugs.annotations.NonNull;
2627
import edu.umd.cs.findbugs.annotations.Nullable;
2728
import java.nio.ByteBuffer;
@@ -90,4 +91,10 @@ public Long parse(@Nullable String value) {
9091
String.format("Cannot parse 64-bits long value from \"%s\"", value));
9192
}
9293
}
94+
95+
@NonNull
96+
@Override
97+
public Optional<Integer> serializedSize() {
98+
return Optional.of(8);
99+
}
93100
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/BlobCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.datastax.oss.driver.api.core.type.DataTypes;
2323
import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
2424
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
25+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2526
import com.datastax.oss.protocol.internal.util.Bytes;
2627
import edu.umd.cs.findbugs.annotations.NonNull;
2728
import edu.umd.cs.findbugs.annotations.Nullable;
@@ -83,4 +84,10 @@ public ByteBuffer parse(@Nullable String value) {
8384
? null
8485
: Bytes.fromHexString(value);
8586
}
87+
88+
@NonNull
89+
@Override
90+
public Optional<Integer> serializedSize() {
91+
return Optional.absent();
92+
}
8693
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/BooleanCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.datastax.oss.driver.api.core.type.DataTypes;
2323
import com.datastax.oss.driver.api.core.type.codec.PrimitiveBooleanCodec;
2424
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
25+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2526
import edu.umd.cs.findbugs.annotations.NonNull;
2627
import edu.umd.cs.findbugs.annotations.Nullable;
2728
import java.nio.ByteBuffer;
@@ -98,4 +99,10 @@ public Boolean parse(@Nullable String value) {
9899
String.format("Cannot parse boolean value from \"%s\"", value));
99100
}
100101
}
102+
103+
@NonNull
104+
@Override
105+
public Optional<Integer> serializedSize() {
106+
return Optional.of(1);
107+
}
101108
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/CounterCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.datastax.oss.driver.api.core.type.DataType;
2121
import com.datastax.oss.driver.api.core.type.DataTypes;
22+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2223
import edu.umd.cs.findbugs.annotations.NonNull;
2324
import net.jcip.annotations.ThreadSafe;
2425

@@ -29,4 +30,10 @@ public class CounterCodec extends BigIntCodec {
2930
public DataType getCqlType() {
3031
return DataTypes.COUNTER;
3132
}
33+
34+
@NonNull
35+
@Override
36+
public Optional<Integer> serializedSize() {
37+
return Optional.absent();
38+
}
3239
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/CqlDurationCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
2525
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
2626
import com.datastax.oss.driver.internal.core.type.util.VIntCoding;
27+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2728
import com.datastax.oss.driver.shaded.guava.common.io.ByteArrayDataOutput;
2829
import com.datastax.oss.driver.shaded.guava.common.io.ByteStreams;
2930
import com.datastax.oss.protocol.internal.util.Bytes;
@@ -115,4 +116,10 @@ public CqlDuration parse(@Nullable String value) {
115116
? null
116117
: CqlDuration.from(value);
117118
}
119+
120+
@NonNull
121+
@Override
122+
public Optional<Integer> serializedSize() {
123+
return Optional.absent();
124+
}
118125
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/DateCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.datastax.oss.driver.api.core.type.codec.TypeCodecs;
2727
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
2828
import com.datastax.oss.driver.internal.core.util.Strings;
29+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2930
import edu.umd.cs.findbugs.annotations.NonNull;
3031
import edu.umd.cs.findbugs.annotations.Nullable;
3132
import java.nio.ByteBuffer;
@@ -152,4 +153,10 @@ private static int cqlDateToDaysSinceEpoch(long raw) {
152153

153154
private static final long MAX_CQL_LONG_VALUE = ((1L << 32) - 1);
154155
private static final long EPOCH_AS_CQL_LONG = (1L << 31);
156+
157+
@NonNull
158+
@Override
159+
public Optional<Integer> serializedSize() {
160+
return Optional.of(8);
161+
}
155162
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/DecimalCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.datastax.oss.driver.api.core.type.DataTypes;
2323
import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
2424
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
25+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2526
import edu.umd.cs.findbugs.annotations.NonNull;
2627
import edu.umd.cs.findbugs.annotations.Nullable;
2728
import java.math.BigDecimal;
@@ -107,4 +108,10 @@ public BigDecimal parse(@Nullable String value) {
107108
String.format("Cannot parse decimal value from \"%s\"", value));
108109
}
109110
}
111+
112+
@NonNull
113+
@Override
114+
public Optional<Integer> serializedSize() {
115+
return Optional.absent();
116+
}
110117
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/DoubleCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.datastax.oss.driver.api.core.type.DataTypes;
2323
import com.datastax.oss.driver.api.core.type.codec.PrimitiveDoubleCodec;
2424
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
25+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2526
import edu.umd.cs.findbugs.annotations.NonNull;
2627
import edu.umd.cs.findbugs.annotations.Nullable;
2728
import java.nio.ByteBuffer;
@@ -90,4 +91,10 @@ public Double parse(@Nullable String value) {
9091
String.format("Cannot parse 64-bits double value from \"%s\"", value));
9192
}
9293
}
94+
95+
@NonNull
96+
@Override
97+
public Optional<Integer> serializedSize() {
98+
return Optional.of(8);
99+
}
93100
}

core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/FloatCodec.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.datastax.oss.driver.api.core.type.DataTypes;
2323
import com.datastax.oss.driver.api.core.type.codec.PrimitiveFloatCodec;
2424
import com.datastax.oss.driver.api.core.type.reflect.GenericType;
25+
import com.datastax.oss.driver.shaded.guava.common.base.Optional;
2526
import edu.umd.cs.findbugs.annotations.NonNull;
2627
import edu.umd.cs.findbugs.annotations.Nullable;
2728
import java.nio.ByteBuffer;
@@ -90,4 +91,10 @@ public Float parse(@Nullable String value) {
9091
String.format("Cannot parse 32-bits float value from \"%s\"", value));
9192
}
9293
}
94+
95+
@NonNull
96+
@Override
97+
public Optional<Integer> serializedSize() {
98+
return Optional.of(4);
99+
}
93100
}

0 commit comments

Comments
 (0)