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 OneOfTwo<T0, T1> extends SerializableObject implements OneOfUnion { 011 protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); 012 protected T0 value0; 013 protected T1 value1; 014 015 public OneOfTwo(T0 value0, T1 value1) { 016 this.value0 = value0; 017 this.value1 = value1; 018 } 019 020 @Override 021 public boolean hasAnyNonNullValue() { 022 return value0 != null || value1 != null; 023 } 024 025 public static class OneOfTwoSerializer extends JsonSerializer<OneOfTwo<?, ?>> { 026 027 public OneOfTwoSerializer() { 028 super(); 029 } 030 031 @Override 032 public void serialize( 033 OneOfTwo<?, ?> itemEntryField, JsonGenerator gen, SerializerProvider provider) 034 throws IOException { 035 if (itemEntryField.value0 != null) { 036 JsonManager.WRITER.writeValue(gen, itemEntryField.value0); 037 return; 038 } 039 if (itemEntryField.value1 != null) { 040 JsonManager.WRITER.writeValue(gen, itemEntryField.value1); 041 return; 042 } 043 gen.writeNull(); 044 } 045 } 046}