001package com.box.sdkgen.internal; 002 003import com.box.sdkgen.serialization.json.JsonManager; 004import com.fasterxml.jackson.core.JsonGenerator; 005import com.fasterxml.jackson.databind.JsonSerializer; 006import com.fasterxml.jackson.databind.ObjectMapper; 007import com.fasterxml.jackson.databind.SerializerProvider; 008import java.io.IOException; 009 010public class OneOfThree<T0, T1, T2> extends SerializableObject implements OneOfUnion { 011 protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); 012 protected T0 value0; 013 protected T1 value1; 014 protected T2 value2; 015 016 public OneOfThree(T0 value0, T1 value1, T2 value2) { 017 this.value0 = value0; 018 this.value1 = value1; 019 this.value2 = value2; 020 } 021 022 @Override 023 public boolean hasAnyNonNullValue() { 024 return value0 != null || value1 != null || value2 != null; 025 } 026 027 public static class OneOfThreeSerializer extends JsonSerializer<OneOfThree<?, ?, ?>> { 028 029 public OneOfThreeSerializer() { 030 super(); 031 } 032 033 @Override 034 public void serialize( 035 OneOfThree<?, ?, ?> itemEntryField, JsonGenerator gen, SerializerProvider provider) 036 throws IOException { 037 if (itemEntryField.value0 != null) { 038 JsonManager.WRITER.writeValue(gen, itemEntryField.value0); 039 return; 040 } 041 if (itemEntryField.value1 != null) { 042 JsonManager.WRITER.writeValue(gen, itemEntryField.value1); 043 return; 044 } 045 if (itemEntryField.value2 != null) { 046 JsonManager.WRITER.writeValue(gen, itemEntryField.value2); 047 return; 048 } 049 gen.writeNull(); 050 } 051 } 052}