001package com.box.sdkgen.internal.utils; 002 003import static com.box.sdkgen.internal.utils.UtilsManager.dateFromString; 004import static com.box.sdkgen.internal.utils.UtilsManager.dateToString; 005 006import com.fasterxml.jackson.core.JsonGenerator; 007import com.fasterxml.jackson.core.JsonParser; 008import com.fasterxml.jackson.databind.DeserializationContext; 009import com.fasterxml.jackson.databind.JsonDeserializer; 010import com.fasterxml.jackson.databind.JsonSerializer; 011import com.fasterxml.jackson.databind.SerializerProvider; 012import java.io.IOException; 013import java.time.OffsetDateTime; 014 015public class DateUtils { 016 public static class DateSerializer extends JsonSerializer<OffsetDateTime> { 017 @Override 018 public void serialize(OffsetDateTime value, JsonGenerator gen, SerializerProvider serializers) 019 throws IOException { 020 String formattedDate = dateToString(value); 021 gen.writeString(formattedDate); 022 } 023 } 024 025 public static class DateDeserializer extends JsonDeserializer<OffsetDateTime> { 026 @Override 027 public OffsetDateTime deserialize(JsonParser p, DeserializationContext ctx) throws IOException { 028 String dateString = p.getValueAsString(); 029 OffsetDateTime d = dateFromString(dateString); 030 if (d == null) { 031 throw new IOException("Invalid date format: " + dateString); 032 } 033 return d; 034 } 035 } 036}