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 OneOfTwelve<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
011    extends SerializableObject 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  protected T10 value10;
024  protected T11 value11;
025
026  public OneOfTwelve(
027      T0 value0,
028      T1 value1,
029      T2 value2,
030      T3 value3,
031      T4 value4,
032      T5 value5,
033      T6 value6,
034      T7 value7,
035      T8 value8,
036      T9 value9,
037      T10 value10,
038      T11 value11) {
039    this.value0 = value0;
040    this.value1 = value1;
041    this.value2 = value2;
042    this.value3 = value3;
043    this.value4 = value4;
044    this.value5 = value5;
045    this.value6 = value6;
046    this.value7 = value7;
047    this.value8 = value8;
048    this.value9 = value9;
049    this.value10 = value10;
050    this.value11 = value11;
051  }
052
053  @Override
054  public boolean hasAnyNonNullValue() {
055    return value0 != null
056        || value1 != null
057        || value2 != null
058        || value3 != null
059        || value4 != null
060        || value5 != null
061        || value6 != null
062        || value7 != null
063        || value8 != null
064        || value9 != null
065        || value10 != null
066        || value11 != null;
067  }
068
069  public static class OneOfTwelveSerializer
070      extends JsonSerializer<OneOfTwelve<?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?>> {
071
072    public OneOfTwelveSerializer() {
073      super();
074    }
075
076    @Override
077    public void serialize(
078        OneOfTwelve<?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?> itemEntryField,
079        JsonGenerator gen,
080        SerializerProvider provider)
081        throws IOException {
082      if (itemEntryField.value0 != null) {
083        JsonManager.WRITER.writeValue(gen, itemEntryField.value0);
084        return;
085      }
086      if (itemEntryField.value1 != null) {
087        JsonManager.WRITER.writeValue(gen, itemEntryField.value1);
088        return;
089      }
090      if (itemEntryField.value2 != null) {
091        JsonManager.WRITER.writeValue(gen, itemEntryField.value2);
092        return;
093      }
094      if (itemEntryField.value3 != null) {
095        JsonManager.WRITER.writeValue(gen, itemEntryField.value3);
096        return;
097      }
098      if (itemEntryField.value4 != null) {
099        JsonManager.WRITER.writeValue(gen, itemEntryField.value4);
100        return;
101      }
102      if (itemEntryField.value5 != null) {
103        JsonManager.WRITER.writeValue(gen, itemEntryField.value5);
104        return;
105      }
106      if (itemEntryField.value6 != null) {
107        JsonManager.WRITER.writeValue(gen, itemEntryField.value6);
108        return;
109      }
110      if (itemEntryField.value7 != null) {
111        JsonManager.WRITER.writeValue(gen, itemEntryField.value7);
112        return;
113      }
114      if (itemEntryField.value8 != null) {
115        JsonManager.WRITER.writeValue(gen, itemEntryField.value8);
116        return;
117      }
118      if (itemEntryField.value9 != null) {
119        JsonManager.WRITER.writeValue(gen, itemEntryField.value9);
120        return;
121      }
122      if (itemEntryField.value10 != null) {
123        JsonManager.WRITER.writeValue(gen, itemEntryField.value10);
124        return;
125      }
126      if (itemEntryField.value11 != null) {
127        JsonManager.WRITER.writeValue(gen, itemEntryField.value11);
128        return;
129      }
130      gen.writeNull();
131    }
132  }
133}