Update serializer

This commit is contained in:
Andrea Cavalli 2023-01-22 01:48:35 +01:00
parent 1c8a41d133
commit ec579d61dc
6 changed files with 26 additions and 25 deletions

View File

@ -15,7 +15,7 @@
<micrometer.version>1.9.5</micrometer.version>
<lucene.version>9.4.2</lucene.version>
<junit.jupiter.version>5.9.0</junit.jupiter.version>
<data.generator.version>1.0.204</data.generator.version>
<data.generator.version>1.0.235</data.generator.version>
</properties>
<repositories>
<repository>

View File

@ -1,6 +1,6 @@
package it.cavallium.dbengine.client;
import it.cavallium.dbengine.client.query.BasicType;
import it.cavallium.dbengine.client.query.BaseType;
import it.cavallium.dbengine.client.query.current.data.DocSort;
import it.cavallium.dbengine.client.query.current.data.NoSort;
import it.cavallium.dbengine.client.query.current.data.NumericSort;
@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
public record Sort(@NotNull it.cavallium.dbengine.client.query.current.data.Sort querySort) {
public boolean isSorted() {
return querySort.getBasicType$() != BasicType.NoSort;
return querySort.getBaseType$() != BaseType.NoSort;
}
public static Sort random() {

View File

@ -3,8 +3,8 @@ package it.cavallium.dbengine.client.query;
import com.squareup.moshi.JsonAdapter;
import it.cavallium.dbengine.client.IntOpenHashSetJsonAdapter;
import it.cavallium.dbengine.client.query.current.CurrentVersion;
import it.cavallium.dbengine.client.query.current.data.IBasicType;
import it.cavallium.dbengine.client.query.current.data.IType;
import it.cavallium.dbengine.client.query.current.IBaseType;
import it.cavallium.dbengine.client.query.current.IType;
import it.unimi.dsi.fastutil.booleans.BooleanList;
import it.unimi.dsi.fastutil.bytes.ByteList;
import it.unimi.dsi.fastutil.chars.CharList;
@ -40,17 +40,17 @@ public class QueryMoshi extends MoshiPolymorphic<IType> {
// Add all super types with their implementations
for (var superTypeClass : CurrentVersion.getSuperTypeClasses()) {
for (Class<? extends IBasicType> superTypeSubtypesClass : CurrentVersion.getSuperTypeSubtypesClasses(
for (Class<? extends IBaseType> superTypeSubtypesClass : CurrentVersion.getSuperTypeSubtypesClasses(
superTypeClass)) {
concreteClasses.add((Class<IType>) (Class) superTypeSubtypesClass);
}
abstractClasses.add((Class<IType>) (Class) superTypeClass);
}
// Add IBasicType with all basic types
abstractClasses.add((Class<IType>) (Class) IBasicType.class);
for (BasicType basicType : BasicType.values()) {
concreteClasses.add((Class<IType>) (Class) CurrentVersion.VERSION.getClass(basicType));
// Add IBaseType with all basic types
abstractClasses.add((Class<IType>) (Class) IBaseType.class);
for (BaseType BaseType : BaseType.values()) {
concreteClasses.add((Class<IType>) (Class) CurrentVersion.getClass(BaseType));
}
this.abstractClasses = abstractClasses;

View File

@ -88,7 +88,7 @@ public class QueryParser {
if (query == null) {
return null;
}
switch (query.getBasicType$()) {
switch (query.getBaseType$()) {
case StandardQuery:
var standardQuery = (it.cavallium.dbengine.client.query.current.data.StandardQuery) query;
@ -130,12 +130,12 @@ public class QueryParser {
var booleanQuery = (it.cavallium.dbengine.client.query.current.data.BooleanQuery) query;
var bq = new Builder();
for (BooleanQueryPart part : booleanQuery.parts()) {
Occur occur = switch (part.occur().getBasicType$()) {
Occur occur = switch (part.occur().getBaseType$()) {
case OccurFilter -> Occur.FILTER;
case OccurMust -> Occur.MUST;
case OccurShould -> Occur.SHOULD;
case OccurMustNot -> Occur.MUST_NOT;
default -> throw new IllegalStateException("Unexpected value: " + part.occur().getBasicType$());
default -> throw new IllegalStateException("Unexpected value: " + part.occur().getBaseType$());
};
bq.add(toQuery(part.query(), analyzer), occur);
}
@ -320,24 +320,24 @@ public class QueryParser {
var wildcardQuery = (WildcardQuery) query;
return new org.apache.lucene.search.WildcardQuery(new Term(wildcardQuery.field(), wildcardQuery.pattern()));
default:
throw new IllegalStateException("Unexpected value: " + query.getBasicType$());
throw new IllegalStateException("Unexpected value: " + query.getBaseType$());
}
}
private static NumberFormat toNumberFormat(it.cavallium.dbengine.client.query.current.data.NumberFormat numberFormat) {
return switch (numberFormat.getBasicType$()) {
return switch (numberFormat.getBaseType$()) {
case NumberFormatDecimal -> new DecimalFormat();
default -> throw new UnsupportedOperationException("Unsupported type: " + numberFormat.getBasicType$());
default -> throw new UnsupportedOperationException("Unsupported type: " + numberFormat.getBaseType$());
};
}
private static Class<? extends Number> toType(PointType type) {
return switch (type.getBasicType$()) {
return switch (type.getBaseType$()) {
case PointTypeInt -> Integer.class;
case PointTypeLong -> Long.class;
case PointTypeFloat -> Float.class;
case PointTypeDouble -> Double.class;
default -> throw new UnsupportedOperationException("Unsupported type: " + type.getBasicType$());
default -> throw new UnsupportedOperationException("Unsupported type: " + type.getBaseType$());
};
}
@ -346,7 +346,7 @@ public class QueryParser {
}
public static Sort toSort(it.cavallium.dbengine.client.query.current.data.Sort sort) {
switch (sort.getBasicType$()) {
switch (sort.getBaseType$()) {
case NoSort:
return null;
case ScoreSort:
@ -359,7 +359,7 @@ public class QueryParser {
case RandomSort:
return new Sort(new RandomSortField());
default:
throw new IllegalStateException("Unexpected value: " + sort.getBasicType$());
throw new IllegalStateException("Unexpected value: " + sort.getBaseType$());
}
}

View File

@ -9,7 +9,7 @@ import io.netty.handler.codec.ByteToMessageCodec;
import it.cavallium.dbengine.rpc.current.data.BoxedRPCEvent;
import it.cavallium.dbengine.rpc.current.data.ClientBoundRequest;
import it.cavallium.dbengine.rpc.current.data.ClientBoundResponse;
import it.cavallium.dbengine.rpc.current.data.IBasicType;
import it.cavallium.dbengine.rpc.current.IBaseType;
import it.cavallium.dbengine.rpc.current.data.RPCEvent;
import it.cavallium.dbengine.rpc.current.data.ServerBoundRequest;
import it.cavallium.dbengine.rpc.current.data.ServerBoundResponse;
@ -23,12 +23,13 @@ public class RPCCodecs {
public static class RPCEventCodec extends ByteToMessageCodec<RPCEvent> {
public static final ChannelHandler INSTANCE = new RPCEventCodec();
public static final BoxedRPCEventSerializer SERIALIZER_INSTANCE = new BoxedRPCEventSerializer();
@Override
protected void encode(ChannelHandlerContext ctx, RPCEvent msg, ByteBuf out) throws Exception {
try (var bbos = new ByteBufOutputStream(out)) {
try (var dos = new DataOutputStream(bbos)) {
BoxedRPCEventSerializer.INSTANCE.serialize(dos, BoxedRPCEvent.of(msg));
SERIALIZER_INSTANCE.serialize(dos, BoxedRPCEvent.of(msg));
}
}
}
@ -37,7 +38,7 @@ public class RPCCodecs {
protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
try (var bbis = new ByteBufInputStream(msg)) {
try (var dis = new DataInputStream(bbis)) {
out.add(BoxedRPCEventSerializer.INSTANCE.deserialize(dis).val());
out.add(SERIALIZER_INSTANCE.deserialize(dis).val());
}
}
}

View File

@ -1,11 +1,11 @@
package it.cavallium.dbengine;
import it.cavallium.dbengine.client.Sort;
import it.cavallium.dbengine.client.query.BasicType;
import it.cavallium.dbengine.client.query.BaseType;
record ExpectedQueryType(boolean shard, boolean sorted, boolean sortedByScore, boolean complete, boolean onlyCount) {
public ExpectedQueryType(boolean shard, Sort multiSort, boolean complete, boolean onlyCount) {
this(shard, multiSort.isSorted(), multiSort.querySort().getBasicType$() == BasicType.ScoreSort, complete, onlyCount);
this(shard, multiSort.isSorted(), multiSort.querySort().getBaseType$() == BaseType.ScoreSort, complete, onlyCount);
}
}