Fix some adapters
This commit is contained in:
parent
404092106b
commit
81f1c5643d
|
@ -7,6 +7,7 @@ import it.cavallium.dbengine.client.query.current.CurrentVersion;
|
||||||
import it.cavallium.dbengine.client.query.current.IBaseType;
|
import it.cavallium.dbengine.client.query.current.IBaseType;
|
||||||
import it.cavallium.dbengine.client.query.current.IType;
|
import it.cavallium.dbengine.client.query.current.IType;
|
||||||
import it.cavallium.dbengine.utils.BooleanListJsonAdapter;
|
import it.cavallium.dbengine.utils.BooleanListJsonAdapter;
|
||||||
|
import it.cavallium.dbengine.utils.BufJsonAdapter;
|
||||||
import it.cavallium.dbengine.utils.ByteListJsonAdapter;
|
import it.cavallium.dbengine.utils.ByteListJsonAdapter;
|
||||||
import it.cavallium.dbengine.utils.CharListJsonAdapter;
|
import it.cavallium.dbengine.utils.CharListJsonAdapter;
|
||||||
import it.cavallium.dbengine.utils.IntListJsonAdapter;
|
import it.cavallium.dbengine.utils.IntListJsonAdapter;
|
||||||
|
@ -14,6 +15,7 @@ import it.cavallium.dbengine.utils.LongListJsonAdapter;
|
||||||
import it.cavallium.dbengine.utils.MoshiPolymorphic;
|
import it.cavallium.dbengine.utils.MoshiPolymorphic;
|
||||||
import it.cavallium.dbengine.utils.ShortListJsonAdapter;
|
import it.cavallium.dbengine.utils.ShortListJsonAdapter;
|
||||||
import it.unimi.dsi.fastutil.booleans.BooleanList;
|
import it.unimi.dsi.fastutil.booleans.BooleanList;
|
||||||
|
import it.unimi.dsi.fastutil.bytes.ByteList;
|
||||||
import it.unimi.dsi.fastutil.chars.CharList;
|
import it.unimi.dsi.fastutil.chars.CharList;
|
||||||
import it.unimi.dsi.fastutil.ints.IntList;
|
import it.unimi.dsi.fastutil.ints.IntList;
|
||||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||||
|
@ -57,7 +59,8 @@ public class QueryMoshi extends MoshiPolymorphic<IType> {
|
||||||
this.concreteClasses = concreteClasses;
|
this.concreteClasses = concreteClasses;
|
||||||
Object2ObjectMap<Class<?>, JsonAdapter<?>> extraAdapters = new Object2ObjectOpenHashMap<>();
|
Object2ObjectMap<Class<?>, JsonAdapter<?>> extraAdapters = new Object2ObjectOpenHashMap<>();
|
||||||
extraAdapters.put(BooleanList.class, new BooleanListJsonAdapter());
|
extraAdapters.put(BooleanList.class, new BooleanListJsonAdapter());
|
||||||
extraAdapters.put(Buf.class, new ByteListJsonAdapter());
|
extraAdapters.put(ByteList.class, new ByteListJsonAdapter());
|
||||||
|
extraAdapters.put(Buf.class, new BufJsonAdapter());
|
||||||
extraAdapters.put(ShortList.class, new ShortListJsonAdapter());
|
extraAdapters.put(ShortList.class, new ShortListJsonAdapter());
|
||||||
extraAdapters.put(CharList.class, new CharListJsonAdapter());
|
extraAdapters.put(CharList.class, new CharListJsonAdapter());
|
||||||
extraAdapters.put(IntList.class, new IntListJsonAdapter());
|
extraAdapters.put(IntList.class, new IntListJsonAdapter());
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package it.cavallium.dbengine.utils;
|
||||||
|
|
||||||
|
import com.squareup.moshi.JsonAdapter;
|
||||||
|
import com.squareup.moshi.JsonReader;
|
||||||
|
import com.squareup.moshi.JsonWriter;
|
||||||
|
import it.cavallium.buffer.Buf;
|
||||||
|
import java.io.IOException;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class BufJsonAdapter extends JsonAdapter<Buf> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull Buf fromJson(@NotNull JsonReader reader) throws IOException {
|
||||||
|
reader.beginArray();
|
||||||
|
var modifiableOutput = Buf.create();
|
||||||
|
while (reader.hasNext()) {
|
||||||
|
modifiableOutput.add((byte) reader.nextInt());
|
||||||
|
}
|
||||||
|
reader.endArray();
|
||||||
|
return modifiableOutput;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toJson(@NotNull JsonWriter writer, @Nullable Buf value) throws IOException {
|
||||||
|
if (value == null) {
|
||||||
|
writer.nullValue();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.beginArray();
|
||||||
|
for (int i = 0; i < value.size(); i++) {
|
||||||
|
writer.value((long) value.getByte(i));
|
||||||
|
}
|
||||||
|
writer.endArray();
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,26 +3,28 @@ package it.cavallium.dbengine.utils;
|
||||||
import com.squareup.moshi.JsonAdapter;
|
import com.squareup.moshi.JsonAdapter;
|
||||||
import com.squareup.moshi.JsonReader;
|
import com.squareup.moshi.JsonReader;
|
||||||
import com.squareup.moshi.JsonWriter;
|
import com.squareup.moshi.JsonWriter;
|
||||||
import it.cavallium.buffer.Buf;
|
import it.unimi.dsi.fastutil.bytes.ByteArrayList;
|
||||||
|
import it.unimi.dsi.fastutil.bytes.ByteList;
|
||||||
|
import it.unimi.dsi.fastutil.bytes.ByteLists;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class ByteListJsonAdapter extends JsonAdapter<Buf> {
|
public class ByteListJsonAdapter extends JsonAdapter<ByteList> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull Buf fromJson(@NotNull JsonReader reader) throws IOException {
|
public @NotNull ByteList fromJson(@NotNull JsonReader reader) throws IOException {
|
||||||
reader.beginArray();
|
reader.beginArray();
|
||||||
var modifiableOutput = Buf.create();
|
ByteArrayList modifiableOutput = new ByteArrayList();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
modifiableOutput.add((byte) reader.nextInt());
|
modifiableOutput.add((byte) reader.nextInt());
|
||||||
}
|
}
|
||||||
reader.endArray();
|
reader.endArray();
|
||||||
return modifiableOutput;
|
return ByteLists.unmodifiable(modifiableOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(@NotNull JsonWriter writer, @Nullable Buf value) throws IOException {
|
public void toJson(@NotNull JsonWriter writer, @Nullable ByteList value) throws IOException {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
writer.nullValue();
|
writer.nullValue();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user