001package com.box.sdkgen.managers.retentionpolicies; 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 UpdateRetentionPolicyByIdRequestBodyRetentionLengthField 017 .UpdateRetentionPolicyByIdRequestBodyRetentionLengthFieldDeserializer.class) 018@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) 019public class UpdateRetentionPolicyByIdRequestBodyRetentionLengthField 020 extends OneOfTwo<String, Integer> { 021 022 public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField(String string) { 023 super(string, null); 024 } 025 026 public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField(Integer integerNumber) { 027 super(null, integerNumber); 028 } 029 030 public boolean isString() { 031 return value0 != null; 032 } 033 034 public String getString() { 035 return value0; 036 } 037 038 public boolean isIntegerNumber() { 039 return value1 != null; 040 } 041 042 public Integer getIntegerNumber() { 043 return value1; 044 } 045 046 static class UpdateRetentionPolicyByIdRequestBodyRetentionLengthFieldDeserializer 047 extends JsonDeserializer<UpdateRetentionPolicyByIdRequestBodyRetentionLengthField> { 048 049 public UpdateRetentionPolicyByIdRequestBodyRetentionLengthFieldDeserializer() { 050 super(); 051 } 052 053 @Override 054 public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField deserialize( 055 JsonParser jp, DeserializationContext ctxt) throws IOException { 056 JsonNode node = JsonManager.jsonToSerializedData(jp); 057 if (node.isInt()) { 058 return new UpdateRetentionPolicyByIdRequestBodyRetentionLengthField( 059 OneOfTwo.OBJECT_MAPPER.convertValue(node, Integer.class)); 060 } 061 try { 062 return new UpdateRetentionPolicyByIdRequestBodyRetentionLengthField( 063 OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class)); 064 } catch (Exception ignored) { 065 } 066 throw new JsonMappingException( 067 jp, "Unable to deserialize UpdateRetentionPolicyByIdRequestBodyRetentionLengthField"); 068 } 069 } 070}