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 OneOfFour<T0, T1, T2, T3> 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 protected T3 value3; 016 017 public OneOfFour(T0 value0, T1 value1, T2 value2, T3 value3) { 018 this.value0 = value0; 019 this.value1 = value1; 020 this.value2 = value2; 021 this.value3 = value3; 022 } 023 024 @Override 025 public boolean hasAnyNonNullValue() { 026 return value0 != null || value1 != null || value2 != null || value3 != null; 027 } 028 029 public static class OneOfFourSerializer extends JsonSerializer<OneOfFour<?, ?, ?, ?>> { 030 031 public OneOfFourSerializer() { 032 super(); 033 } 034 035 @Override 036 public void serialize( 037 OneOfFour<?, ?, ?, ?> itemEntryField, JsonGenerator gen, SerializerProvider provider) 038 throws IOException { 039 if (itemEntryField.value0 != null) { 040 JsonManager.WRITER.writeValue(gen, itemEntryField.value0); 041 return; 042 } 043 if (itemEntryField.value1 != null) { 044 JsonManager.WRITER.writeValue(gen, itemEntryField.value1); 045 return; 046 } 047 if (itemEntryField.value2 != null) { 048 JsonManager.WRITER.writeValue(gen, itemEntryField.value2); 049 return; 050 } 051 if (itemEntryField.value3 != null) { 052 JsonManager.WRITER.writeValue(gen, itemEntryField.value3); 053 return; 054 } 055 gen.writeNull(); 056 } 057 } 058}