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