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