io.coinapi.websocket.model._MessageBase_DslJsonConverter Maven / Gradle / Ivy
package io.coinapi.websocket.model;
public class _MessageBase_DslJsonConverter implements com.dslplatform.json.Configuration {
private static final java.nio.charset.Charset utf8 = java.nio.charset.Charset.forName("UTF-8");
@Override
public void configure(com.dslplatform.json.DslJson __dsljson) {
ObjectFormatConverter objectConverter = new ObjectFormatConverter(__dsljson);
__dsljson.registerBinder(io.coinapi.websocket.model.MessageBase.class, objectConverter);
__dsljson.registerReader(io.coinapi.websocket.model.MessageBase.class, objectConverter);
__dsljson.registerWriter(io.coinapi.websocket.model.MessageBase.class, objectConverter);
}
public final static class ObjectFormatConverter implements com.dslplatform.json.runtime.FormatConverter, com.dslplatform.json.JsonReader.BindObject {
private final boolean alwaysSerialize;
private final com.dslplatform.json.DslJson __dsljson;
ObjectFormatConverter(com.dslplatform.json.DslJson __dsljson) {
this.alwaysSerialize = !__dsljson.omitDefaults;
this.__dsljson = __dsljson;
}
public io.coinapi.websocket.model.MessageBase read(final com.dslplatform.json.JsonReader reader) throws java.io.IOException {
if (reader.wasNull()) return null;
return bind(reader, new io.coinapi.websocket.model.MessageBase());
}
private static final byte[] quoted_type = "\"type\":".getBytes(utf8);
private static final byte[] name_type = "type".getBytes(utf8);
public final void write(final com.dslplatform.json.JsonWriter writer, final io.coinapi.websocket.model.MessageBase instance) {
if (instance == null) writer.writeNull();
else {
writer.writeByte((byte)'{');
if (alwaysSerialize) { writeContentFull(writer, instance); writer.writeByte((byte)'}'); }
else if (writeContentMinimal(writer, instance)) writer.getByteBuffer()[writer.size() - 1] = '}';
else writer.writeByte((byte)'}');
}
}
public void writeContentFull(final com.dslplatform.json.JsonWriter writer, final io.coinapi.websocket.model.MessageBase instance) {
writer.writeAscii(quoted_type);
if (instance.getType() == null) writer.writeNull();
else com.dslplatform.json.StringConverter.serialize(instance.getType(), writer);
}
public boolean writeContentMinimal(final com.dslplatform.json.JsonWriter writer, final io.coinapi.websocket.model.MessageBase instance) {
boolean hasWritten = false;
if (instance.getType() != null) {
writer.writeByte((byte)'"'); writer.writeAscii(name_type); writer.writeByte((byte)'"'); writer.writeByte((byte)':');
com.dslplatform.json.StringConverter.serialize(instance.getType(), writer);
writer.writeByte((byte)','); hasWritten = true;
}
return hasWritten;
}
public io.coinapi.websocket.model.MessageBase bind(final com.dslplatform.json.JsonReader reader, final io.coinapi.websocket.model.MessageBase instance) throws java.io.IOException {
if (reader.last() != '{') throw reader.newParseError("Expecting '{' for object start");
reader.getNextToken();
bindContent(reader, instance);
return instance;
}
public io.coinapi.websocket.model.MessageBase readContent(final com.dslplatform.json.JsonReader reader) throws java.io.IOException {
io.coinapi.websocket.model.MessageBase instance = new io.coinapi.websocket.model.MessageBase();
bindContent(reader, instance);
return instance;
}
public void bindContent(final com.dslplatform.json.JsonReader reader, final io.coinapi.websocket.model.MessageBase instance) throws java.io.IOException {
if (reader.last() == '}') return;
if (reader.fillNameWeakHash() != 450 || !reader.wasLastName(name_type)) { bindSlow(reader, instance, 0); return; }
reader.getNextToken();
instance.setType(com.dslplatform.json.StringConverter.READER.read(reader));
if (reader.getNextToken() != '}') {
if (reader.last() == ',') {
reader.getNextToken();
reader.fillNameWeakHash();
bindSlow(reader, instance, 1);
}
if (reader.last() != '}') throw reader.newParseError("Expecting '}' for object end");
}
}
private void bindSlow(final com.dslplatform.json.JsonReader reader, final io.coinapi.websocket.model.MessageBase instance, int index) throws java.io.IOException {
switch(reader.getLastHash()) {
case 1361572173:
reader.getNextToken();
instance.setType(com.dslplatform.json.StringConverter.READER.read(reader));
reader.getNextToken();
break;
default:
reader.getNextToken();
reader.skip();
}
while (reader.last() == ','){
reader.getNextToken();
switch(reader.fillName()) {
case 1361572173:
reader.getNextToken();
instance.setType(com.dslplatform.json.StringConverter.READER.read(reader));
reader.getNextToken();
break;
default:
reader.getNextToken();
reader.skip();
}
}
if (reader.last() != '}') throw reader.newParseError("Expecting '}' for object end");
}
}
}