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 OneOfTen<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> extends SerializableObject
011    implements OneOfUnion {
012  protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
013  protected T0 value0;
014  protected T1 value1;
015  protected T2 value2;
016  protected T3 value3;
017  protected T4 value4;
018  protected T5 value5;
019  protected T6 value6;
020  protected T7 value7;
021  protected T8 value8;
022  protected T9 value9;
023
024  public OneOfTen(
025      T0 value0,
026      T1 value1,
027      T2 value2,
028      T3 value3,
029      T4 value4,
030      T5 value5,
031      T6 value6,
032      T7 value7,
033      T8 value8,
034      T9 value9) {
035    this.value0 = value0;
036    this.value1 = value1;
037    this.value2 = value2;
038    this.value3 = value3;
039    this.value4 = value4;
040    this.value5 = value5;
041    this.value6 = value6;
042    this.value7 = value7;
043    this.value8 = value8;
044    this.value9 = value9;
045  }
046
047  @Override
048  public boolean hasAnyNonNullValue() {
049    return value0 != null
050        || value1 != null
051        || value2 != null
052        || value3 != null
053        || value4 != null
054        || value5 != null
055        || value6 != null
056        || value7 != null
057        || value8 != null
058        || value9 != null;
059  }
060
061  public static class OneOfTenSerializer
062      extends JsonSerializer<OneOfTen<?, ?, ?, ?, ?, ?, ?, ?, ?, ?>> {
063
064    public OneOfTenSerializer() {
065      super();
066    }
067
068    @Override
069    public void serialize(
070        OneOfTen<?, ?, ?, ?, ?, ?, ?, ?, ?, ?> itemEntryField,
071        JsonGenerator gen,
072        SerializerProvider provider)
073        throws IOException {
074      if (itemEntryField.value0 != null) {
075        JsonManager.WRITER.writeValue(gen, itemEntryField.value0);
076        return;
077      }
078      if (itemEntryField.value1 != null) {
079        JsonManager.WRITER.writeValue(gen, itemEntryField.value1);
080        return;
081      }
082      if (itemEntryField.value2 != null) {
083        JsonManager.WRITER.writeValue(gen, itemEntryField.value2);
084        return;
085      }
086      if (itemEntryField.value3 != null) {
087        JsonManager.WRITER.writeValue(gen, itemEntryField.value3);
088        return;
089      }
090      if (itemEntryField.value4 != null) {
091        JsonManager.WRITER.writeValue(gen, itemEntryField.value4);
092        return;
093      }
094      if (itemEntryField.value5 != null) {
095        JsonManager.WRITER.writeValue(gen, itemEntryField.value5);
096        return;
097      }
098      if (itemEntryField.value6 != null) {
099        JsonManager.WRITER.writeValue(gen, itemEntryField.value6);
100        return;
101      }
102      if (itemEntryField.value7 != null) {
103        JsonManager.WRITER.writeValue(gen, itemEntryField.value7);
104        return;
105      }
106      if (itemEntryField.value8 != null) {
107        JsonManager.WRITER.writeValue(gen, itemEntryField.value8);
108        return;
109      }
110      if (itemEntryField.value9 != null) {
111        JsonManager.WRITER.writeValue(gen, itemEntryField.value9);
112        return;
113      }
114      gen.writeNull();
115    }
116  }
117}