001package com.box.sdkgen.schemas.metadatafiltervalue; 002 003import com.box.sdkgen.internal.OneOfFive; 004import com.box.sdkgen.schemas.metadatafieldfilterdaterange.MetadataFieldFilterDateRange; 005import com.box.sdkgen.schemas.metadatafieldfilterfloatrange.MetadataFieldFilterFloatRange; 006import com.box.sdkgen.serialization.json.JsonManager; 007import com.fasterxml.jackson.core.JsonParser; 008import com.fasterxml.jackson.databind.DeserializationContext; 009import com.fasterxml.jackson.databind.JsonDeserializer; 010import com.fasterxml.jackson.databind.JsonMappingException; 011import com.fasterxml.jackson.databind.JsonNode; 012import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 013import com.fasterxml.jackson.databind.annotation.JsonSerialize; 014import java.io.IOException; 015import java.util.List; 016 017@JsonDeserialize(using = MetadataFilterValue.MetadataFilterValueDeserializer.class) 018@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) 019public class MetadataFilterValue 020 extends OneOfFive< 021 String, Double, List<String>, MetadataFieldFilterFloatRange, MetadataFieldFilterDateRange> { 022 023 public MetadataFilterValue(String string) { 024 super(string, null, null, null, null); 025 } 026 027 public MetadataFilterValue(Double doubleNumber) { 028 super(null, doubleNumber, null, null, null); 029 } 030 031 public MetadataFilterValue(List<String> listOfString) { 032 super(null, null, listOfString, null, null); 033 } 034 035 public MetadataFilterValue(MetadataFieldFilterFloatRange metadataFieldFilterFloatRange) { 036 super(null, null, null, metadataFieldFilterFloatRange, null); 037 } 038 039 public MetadataFilterValue(MetadataFieldFilterDateRange metadataFieldFilterDateRange) { 040 super(null, null, null, null, metadataFieldFilterDateRange); 041 } 042 043 public boolean isString() { 044 return value0 != null; 045 } 046 047 public String getString() { 048 return value0; 049 } 050 051 public boolean isDoubleNumber() { 052 return value1 != null; 053 } 054 055 public Double getDoubleNumber() { 056 return value1; 057 } 058 059 public boolean isListOfString() { 060 return value2 != null; 061 } 062 063 public List<String> getListOfString() { 064 return value2; 065 } 066 067 public boolean isMetadataFieldFilterFloatRange() { 068 return value3 != null; 069 } 070 071 public MetadataFieldFilterFloatRange getMetadataFieldFilterFloatRange() { 072 return value3; 073 } 074 075 public boolean isMetadataFieldFilterDateRange() { 076 return value4 != null; 077 } 078 079 public MetadataFieldFilterDateRange getMetadataFieldFilterDateRange() { 080 return value4; 081 } 082 083 static class MetadataFilterValueDeserializer extends JsonDeserializer<MetadataFilterValue> { 084 085 public MetadataFilterValueDeserializer() { 086 super(); 087 } 088 089 @Override 090 public MetadataFilterValue deserialize(JsonParser jp, DeserializationContext ctxt) 091 throws IOException { 092 JsonNode node = JsonManager.jsonToSerializedData(jp); 093 try { 094 return new MetadataFilterValue( 095 OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterFloatRange.class)); 096 } catch (Exception ignored) { 097 } 098 try { 099 return new MetadataFilterValue( 100 OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterDateRange.class)); 101 } catch (Exception ignored) { 102 } 103 try { 104 return new MetadataFilterValue(OneOfFive.OBJECT_MAPPER.convertValue(node, Double.class)); 105 } catch (Exception ignored) { 106 } 107 try { 108 return new MetadataFilterValue(OneOfFive.OBJECT_MAPPER.convertValue(node, List.class)); 109 } catch (Exception ignored) { 110 } 111 try { 112 return new MetadataFilterValue(OneOfFive.OBJECT_MAPPER.convertValue(node, String.class)); 113 } catch (Exception ignored) { 114 } 115 throw new JsonMappingException(jp, "Unable to deserialize MetadataFilterValue"); 116 } 117 } 118}