Skip to content

Commit d533e1e

Browse files
committed
Remove PrimitiveCodec
1 parent 2371476 commit d533e1e

File tree

3 files changed

+6
-43
lines changed

3 files changed

+6
-43
lines changed

r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/AbstractPrimitiveCodec.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
*
2626
* @param <T> the boxed type of handling primitive data.
2727
*/
28-
abstract class AbstractPrimitiveCodec<T> implements PrimitiveCodec<T> {
28+
abstract class AbstractPrimitiveCodec<T> implements Codec<T> {
2929

3030
private final Class<T> primitiveClass;
3131

@@ -44,7 +44,6 @@ public final boolean canDecode(MySqlReadableMetadata metadata, Class<?> target)
4444
return (target.isAssignableFrom(boxedClass) || target.equals(primitiveClass)) && doCanDecode(metadata);
4545
}
4646

47-
@Override
4847
public final Class<T> getPrimitiveClass() {
4948
return primitiveClass;
5049
}

r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/DefaultCodecs.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,8 @@ private DefaultCodecs(List<Codec<?>> codecs) {
108108
fastPath.putIfAbsent(mainClass, codec);
109109
}
110110

111-
if (codec instanceof PrimitiveCodec<?>) {
112-
// Primitive codec must be class-based codec, cannot support ParameterizedType.
113-
PrimitiveCodec<?> c = (PrimitiveCodec<?>) codec;
111+
if (codec instanceof AbstractPrimitiveCodec<?>) {
112+
AbstractPrimitiveCodec<?> c = (AbstractPrimitiveCodec<?>) codec;
114113

115114
fastPath.putIfAbsent(c.getPrimitiveClass(), c);
116115
} else if (codec instanceof ParameterizedCodec<?>) {
@@ -230,7 +229,7 @@ public MySqlParameter encode(Object value, CodecContext context) {
230229
}
231230

232231
for (Codec<?> codec : codecs) {
233-
if (codec.canEncode(valueToEncode)) {
232+
if (codec != fast && codec.canEncode(valueToEncode)) {
234233
return codec.encode(valueToEncode, context);
235234
}
236235
}
@@ -293,7 +292,7 @@ private <T> T decodeNormal(NormalFieldValue value, MySqlReadableMetadata metadat
293292
}
294293

295294
for (Codec<?> codec : codecs) {
296-
if (codec.canDecode(metadata, type)) {
295+
if (codec != fast && codec.canDecode(metadata, type)) {
297296
@SuppressWarnings("unchecked")
298297
Codec<T> c = (Codec<T>) codec;
299298
return c.decode(value.getBufferSlice(), metadata, type, binary, context);
@@ -327,7 +326,7 @@ private <T> T decodeMassive(LargeFieldValue value, MySqlReadableMetadata metadat
327326
}
328327

329328
for (MassiveCodec<?> codec : massiveCodecs) {
330-
if (codec.canDecode(metadata, type)) {
329+
if (codec != fast && codec.canDecode(metadata, type)) {
331330
@SuppressWarnings("unchecked")
332331
MassiveCodec<T> c = (MassiveCodec<T>) codec;
333332
return c.decodeMassive(value.getBufferSlices(), metadata, type, binary, context);

r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/codec/PrimitiveCodec.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)