package com.urbanairship.api.schedule.parse;
import com.urbanairship.api.push.parse.PushObjectMapper;
import com.urbanairship.api.schedule.model.ListAllSchedulesResponse;
import com.urbanairship.api.schedule.model.Schedule;
import com.urbanairship.api.schedule.model.ScheduleDetails;
import com.urbanairship.api.schedule.model.SchedulePayload;
import com.urbanairship.api.schedule.model.ScheduleResponse;
import org.codehaus.jackson.Version;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.module.SimpleModule;
public class ScheduleObjectMapper {
private static final ObjectMapper MAPPER = new ObjectMapper();
private static final SimpleModule MODULE = new SimpleModule("Schedule API Module", new Version(1, 0, 0, null));
static {
MODULE
.addDeserializer(SchedulePayload.class, SchedulePayloadDeserializer.INSTANCE)
.addSerializer(SchedulePayload.class, ScheduledPayloadSerializer.INSTANCE)
.addDeserializer(Schedule.class, ScheduleDeserializer.INSTANCE)
.addSerializer(Schedule.class, ScheduleSerializer.INSTANCE)
.addSerializer(ScheduleDetails.class, ScheduleDetailsSerializer.INSTANCE)
.addDeserializer(ScheduleResponse.class, new ScheduleResponseDeserializer())
.addDeserializer(ListAllSchedulesResponse.class, new ListSchedulesResponseDeserializer());
MAPPER.registerModule(MODULE);
MAPPER.registerModule(PushObjectMapper.getModule());
MAPPER.configure(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
}
public static SimpleModule getModule() {
return MODULE;
}
public static ObjectMapper getInstance() {
return MAPPER;
}
private ScheduleObjectMapper() {}
}