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