java-commons/muscript-gson/src/main/java/io/gitlab/jfronny/muscript/gson/impl/typed/DNumberSerializer.java
2023-08-25 16:24:28 +02:00

24 lines
757 B
Java

package io.gitlab.jfronny.muscript.gson.impl.typed;
import io.gitlab.jfronny.gson.TypeAdapter;
import io.gitlab.jfronny.gson.stream.JsonReader;
import io.gitlab.jfronny.gson.stream.JsonWriter;
import io.gitlab.jfronny.muscript.data.dynamic.DNumber;
import io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal;
import java.io.IOException;
public class DNumberSerializer extends TypeAdapter<DNumber> {
@Override
public void write(JsonWriter w, DNumber dynamic) throws IOException {
double d = dynamic.getValue();
if (d % 1.0 != 0 || d > Long.MAX_VALUE) w.value(d);
else w.value((long) d);
}
@Override
public DNumber read(JsonReader r) throws IOException {
return DFinal.of(r.nextDouble());
}
}