001package com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse;
002
003import com.box.sdkgen.internal.OneOfTwo;
004import com.box.sdkgen.serialization.json.JsonManager;
005import com.fasterxml.jackson.core.JsonParser;
006import com.fasterxml.jackson.databind.DeserializationContext;
007import com.fasterxml.jackson.databind.JsonDeserializer;
008import com.fasterxml.jackson.databind.JsonMappingException;
009import com.fasterxml.jackson.databind.JsonNode;
010import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
011import com.fasterxml.jackson.databind.annotation.JsonSerialize;
012import java.io.IOException;
013
014@JsonDeserialize(
015    using =
016        RetentionPolicyMaxExtensionLengthResponse
017            .RetentionPolicyMaxExtensionLengthResponseDeserializer.class)
018@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class)
019public class RetentionPolicyMaxExtensionLengthResponse
020    extends OneOfTwo<RetentionPolicyMaxExtensionLengthResponseEnum, String> {
021
022  public RetentionPolicyMaxExtensionLengthResponse(
023      RetentionPolicyMaxExtensionLengthResponseEnum retentionPolicyMaxExtensionLengthResponseEnum) {
024    super(retentionPolicyMaxExtensionLengthResponseEnum, null);
025  }
026
027  public RetentionPolicyMaxExtensionLengthResponse(String string) {
028    super(null, string);
029  }
030
031  public boolean isRetentionPolicyMaxExtensionLengthResponseEnum() {
032    return value0 != null;
033  }
034
035  public RetentionPolicyMaxExtensionLengthResponseEnum
036      getRetentionPolicyMaxExtensionLengthResponseEnum() {
037    return value0;
038  }
039
040  public boolean isString() {
041    return value1 != null;
042  }
043
044  public String getString() {
045    return value1;
046  }
047
048  static class RetentionPolicyMaxExtensionLengthResponseDeserializer
049      extends JsonDeserializer<RetentionPolicyMaxExtensionLengthResponse> {
050
051    public RetentionPolicyMaxExtensionLengthResponseDeserializer() {
052      super();
053    }
054
055    @Override
056    public RetentionPolicyMaxExtensionLengthResponse deserialize(
057        JsonParser jp, DeserializationContext ctxt) throws IOException {
058      JsonNode node = JsonManager.jsonToSerializedData(jp);
059      try {
060        return new RetentionPolicyMaxExtensionLengthResponse(
061            OneOfTwo.OBJECT_MAPPER.convertValue(
062                node, RetentionPolicyMaxExtensionLengthResponseEnum.class));
063      } catch (Exception ignored) {
064      }
065      try {
066        return new RetentionPolicyMaxExtensionLengthResponse(
067            OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class));
068      } catch (Exception ignored) {
069      }
070      throw new JsonMappingException(
071          jp, "Unable to deserialize RetentionPolicyMaxExtensionLengthResponse");
072    }
073  }
074}