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 OneOfSix<T0, T1, T2, T3, T4, T5> extends SerializableObject implements OneOfUnion {
011  protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
012  protected T0 value0;
013  protected T1 value1;
014  protected T2 value2;
015  protected T3 value3;
016  protected T4 value4;
017  protected T5 value5;
018
019  public OneOfSix(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) {
020    this.value0 = value0;
021    this.value1 = value1;
022    this.value2 = value2;
023    this.value3 = value3;
024    this.value4 = value4;
025    this.value5 = value5;
026  }
027
028  @Override
029  public boolean hasAnyNonNullValue() {
030    return value0 != null
031        || value1 != null
032        || value2 != null
033        || value3 != null
034        || value4 != null
035        || value5 != null;
036  }
037
038  public static class OneOfSixSerializer extends JsonSerializer<OneOfSix<?, ?, ?, ?, ?, ?>> {
039
040    public OneOfSixSerializer() {
041      super();
042    }
043
044    @Override
045    public void serialize(
046        OneOfSix<?, ?, ?, ?, ?, ?> itemEntryField, JsonGenerator gen, SerializerProvider provider)
047        throws IOException {
048      if (itemEntryField.value0 != null) {
049        JsonManager.WRITER.writeValue(gen, itemEntryField.value0);
050        return;
051      }
052      if (itemEntryField.value1 != null) {
053        JsonManager.WRITER.writeValue(gen, itemEntryField.value1);
054        return;
055      }
056      if (itemEntryField.value2 != null) {
057        JsonManager.WRITER.writeValue(gen, itemEntryField.value2);
058        return;
059      }
060      if (itemEntryField.value3 != null) {
061        JsonManager.WRITER.writeValue(gen, itemEntryField.value3);
062        return;
063      }
064      if (itemEntryField.value4 != null) {
065        JsonManager.WRITER.writeValue(gen, itemEntryField.value4);
066        return;
067      }
068      if (itemEntryField.value5 != null) {
069        JsonManager.WRITER.writeValue(gen, itemEntryField.value5);
070        return;
071      }
072      gen.writeNull();
073    }
074  }
075}