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 OneOfFive<T0, T1, T2, T3, T4> 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
018  public OneOfFive(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) {
019    this.value0 = value0;
020    this.value1 = value1;
021    this.value2 = value2;
022    this.value3 = value3;
023    this.value4 = value4;
024  }
025
026  @Override
027  public boolean hasAnyNonNullValue() {
028    return value0 != null || value1 != null || value2 != null || value3 != null || value4 != null;
029  }
030
031  public static class OneOfFiveSerializer extends JsonSerializer<OneOfFive<?, ?, ?, ?, ?>> {
032
033    public OneOfFiveSerializer() {
034      super();
035    }
036
037    @Override
038    public void serialize(
039        OneOfFive<?, ?, ?, ?, ?> itemEntryField, JsonGenerator gen, SerializerProvider provider)
040        throws IOException {
041      if (itemEntryField.value0 != null) {
042        JsonManager.WRITER.writeValue(gen, itemEntryField.value0);
043        return;
044      }
045      if (itemEntryField.value1 != null) {
046        JsonManager.WRITER.writeValue(gen, itemEntryField.value1);
047        return;
048      }
049      if (itemEntryField.value2 != null) {
050        JsonManager.WRITER.writeValue(gen, itemEntryField.value2);
051        return;
052      }
053      if (itemEntryField.value3 != null) {
054        JsonManager.WRITER.writeValue(gen, itemEntryField.value3);
055        return;
056      }
057      if (itemEntryField.value4 != null) {
058        JsonManager.WRITER.writeValue(gen, itemEntryField.value4);
059        return;
060      }
061      gen.writeNull();
062    }
063  }
064}