package io.apibuilder.examples.graphql.users.android; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.module.SimpleModule; import java.io.IOException; import java.lang.Override; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; /** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1 * User agent: apibuilder app.apibuilder.io/apicollective/examples-graphql-users/0.0.1/android_rx2_client * * WARNING: not all features (notably unions) and data types work with android generator yet. * Android generator is designed to be used in an android application, but should work in any java codebase as long as you import jackson, retrofit2 and RxJava2 libraries. * If you are considering using this library, would like to request/discuss features, or would like to share how you're using it, please contact android-feedback@gilt.com * */ public class ApiBuilderObjectMapper extends ObjectMapper { public static final DateTimeFormatter formatter = ISODateTimeFormat.dateTimeParser(); private static final ObjectMapper MAPPER; static { SimpleModule module = new SimpleModule(new Version(1, 0, 0, null, null, null)); module.addDeserializer(DateTime.class, new JsonDeserializer() { @Override public DateTime deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException { String value = jsonParser.getValueAsString(); return formatter.parseDateTime(value); } }); module.addSerializer(DateTime.class, new JsonSerializer<DateTime>() { @Override public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeString(value.toString(formatter)); } }); MAPPER = new ObjectMapper(); MAPPER.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); MAPPER.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true); MAPPER.registerModule(module); } public static ObjectMapper getInstance() { return MAPPER; } }