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.IType;
|
||||
import it.cavallium.dbengine.utils.BooleanListJsonAdapter;
|
||||
import it.cavallium.dbengine.utils.BufJsonAdapter;
|
||||
import it.cavallium.dbengine.utils.ByteListJsonAdapter;
|
||||
import it.cavallium.dbengine.utils.CharListJsonAdapter;
|
||||
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.ShortListJsonAdapter;
|
||||
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.ints.IntList;
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||
|
@ -57,7 +59,8 @@ public class QueryMoshi extends MoshiPolymorphic<IType> {
|
|||
this.concreteClasses = concreteClasses;
|
||||
Object2ObjectMap<Class<?>, JsonAdapter<?>> extraAdapters = new Object2ObjectOpenHashMap<>();
|
||||
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(CharList.class, new CharListJsonAdapter());
|
||||
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.JsonReader;
|
||||
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 org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ByteListJsonAdapter extends JsonAdapter<Buf> {
|
||||
public class ByteListJsonAdapter extends JsonAdapter<ByteList> {
|
||||
|
||||
@Override
|
||||
public @NotNull Buf fromJson(@NotNull JsonReader reader) throws IOException {
|
||||
public @NotNull ByteList fromJson(@NotNull JsonReader reader) throws IOException {
|
||||
reader.beginArray();
|
||||
var modifiableOutput = Buf.create();
|
||||
ByteArrayList modifiableOutput = new ByteArrayList();
|
||||
while (reader.hasNext()) {
|
||||
modifiableOutput.add((byte) reader.nextInt());
|
||||
}
|
||||
reader.endArray();
|
||||
return modifiableOutput;
|
||||
return ByteLists.unmodifiable(modifiableOutput);
|
||||
}
|
||||
|
||||
@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) {
|
||||
writer.nullValue();
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue