001package com.box.sdkgen.schemas.events; 002 003import com.box.sdkgen.internal.OneOfTwo; 004import com.box.sdkgen.serialization.json.JsonManager; 005import com.fasterxml.jackson.core.JsonParser; 006import com.fasterxml.jackson.databind.DeserializationContext; 007import com.fasterxml.jackson.databind.JsonDeserializer; 008import com.fasterxml.jackson.databind.JsonMappingException; 009import com.fasterxml.jackson.databind.JsonNode; 010import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 011import com.fasterxml.jackson.databind.annotation.JsonSerialize; 012import java.io.IOException; 013 014@JsonDeserialize( 015 using = EventsNextStreamPositionField.EventsNextStreamPositionFieldDeserializer.class) 016@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) 017public class EventsNextStreamPositionField extends OneOfTwo<String, Long> { 018 019 public EventsNextStreamPositionField(String string) { 020 super(string, null); 021 } 022 023 public EventsNextStreamPositionField(Long longNumber) { 024 super(null, longNumber); 025 } 026 027 public boolean isString() { 028 return value0 != null; 029 } 030 031 public String getString() { 032 return value0; 033 } 034 035 public boolean isLongNumber() { 036 return value1 != null; 037 } 038 039 public Long getLongNumber() { 040 return value1; 041 } 042 043 static class EventsNextStreamPositionFieldDeserializer 044 extends JsonDeserializer<EventsNextStreamPositionField> { 045 046 public EventsNextStreamPositionFieldDeserializer() { 047 super(); 048 } 049 050 @Override 051 public EventsNextStreamPositionField deserialize(JsonParser jp, DeserializationContext ctxt) 052 throws IOException { 053 JsonNode node = JsonManager.jsonToSerializedData(jp); 054 try { 055 return new EventsNextStreamPositionField( 056 OneOfTwo.OBJECT_MAPPER.convertValue(node, Long.class)); 057 } catch (Exception ignored) { 058 } 059 try { 060 return new EventsNextStreamPositionField( 061 OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class)); 062 } catch (Exception ignored) { 063 } 064 throw new JsonMappingException(jp, "Unable to deserialize EventsNextStreamPositionField"); 065 } 066 } 067}