001package com.box.sdkgen.schemas.v2025r0.shieldlistcontentv2025r0; 002 003import com.box.sdkgen.internal.OneOfFive; 004import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; 005import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; 006import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; 007import com.box.sdkgen.schemas.v2025r0.shieldlistcontentintegrationv2025r0.ShieldListContentIntegrationV2025R0; 008import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; 009import com.box.sdkgen.serialization.json.EnumWrapper; 010import com.box.sdkgen.serialization.json.JsonManager; 011import com.fasterxml.jackson.core.JsonParser; 012import com.fasterxml.jackson.databind.DeserializationContext; 013import com.fasterxml.jackson.databind.JsonDeserializer; 014import com.fasterxml.jackson.databind.JsonMappingException; 015import com.fasterxml.jackson.databind.JsonNode; 016import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 017import com.fasterxml.jackson.databind.annotation.JsonSerialize; 018import java.io.IOException; 019 020@JsonDeserialize(using = ShieldListContentV2025R0.ShieldListContentV2025R0Deserializer.class) 021@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) 022public class ShieldListContentV2025R0 023 extends OneOfFive< 024 ShieldListContentCountryV2025R0, 025 ShieldListContentDomainV2025R0, 026 ShieldListContentEmailV2025R0, 027 ShieldListContentIpV2025R0, 028 ShieldListContentIntegrationV2025R0> { 029 030 protected final String type; 031 032 public ShieldListContentV2025R0(ShieldListContentCountryV2025R0 shieldListContentCountryV2025R0) { 033 super(shieldListContentCountryV2025R0, null, null, null, null); 034 this.type = EnumWrapper.convertToString(shieldListContentCountryV2025R0.getType()); 035 } 036 037 public ShieldListContentV2025R0(ShieldListContentDomainV2025R0 shieldListContentDomainV2025R0) { 038 super(null, shieldListContentDomainV2025R0, null, null, null); 039 this.type = EnumWrapper.convertToString(shieldListContentDomainV2025R0.getType()); 040 } 041 042 public ShieldListContentV2025R0(ShieldListContentEmailV2025R0 shieldListContentEmailV2025R0) { 043 super(null, null, shieldListContentEmailV2025R0, null, null); 044 this.type = EnumWrapper.convertToString(shieldListContentEmailV2025R0.getType()); 045 } 046 047 public ShieldListContentV2025R0(ShieldListContentIpV2025R0 shieldListContentIpV2025R0) { 048 super(null, null, null, shieldListContentIpV2025R0, null); 049 this.type = EnumWrapper.convertToString(shieldListContentIpV2025R0.getType()); 050 } 051 052 public ShieldListContentV2025R0( 053 ShieldListContentIntegrationV2025R0 shieldListContentIntegrationV2025R0) { 054 super(null, null, null, null, shieldListContentIntegrationV2025R0); 055 this.type = EnumWrapper.convertToString(shieldListContentIntegrationV2025R0.getType()); 056 } 057 058 public boolean isShieldListContentCountryV2025R0() { 059 return value0 != null; 060 } 061 062 public ShieldListContentCountryV2025R0 getShieldListContentCountryV2025R0() { 063 return value0; 064 } 065 066 public boolean isShieldListContentDomainV2025R0() { 067 return value1 != null; 068 } 069 070 public ShieldListContentDomainV2025R0 getShieldListContentDomainV2025R0() { 071 return value1; 072 } 073 074 public boolean isShieldListContentEmailV2025R0() { 075 return value2 != null; 076 } 077 078 public ShieldListContentEmailV2025R0 getShieldListContentEmailV2025R0() { 079 return value2; 080 } 081 082 public boolean isShieldListContentIpV2025R0() { 083 return value3 != null; 084 } 085 086 public ShieldListContentIpV2025R0 getShieldListContentIpV2025R0() { 087 return value3; 088 } 089 090 public boolean isShieldListContentIntegrationV2025R0() { 091 return value4 != null; 092 } 093 094 public ShieldListContentIntegrationV2025R0 getShieldListContentIntegrationV2025R0() { 095 return value4; 096 } 097 098 public String getType() { 099 return type; 100 } 101 102 static class ShieldListContentV2025R0Deserializer 103 extends JsonDeserializer<ShieldListContentV2025R0> { 104 105 public ShieldListContentV2025R0Deserializer() { 106 super(); 107 } 108 109 @Override 110 public ShieldListContentV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) 111 throws IOException { 112 JsonNode node = JsonManager.jsonToSerializedData(jp); 113 JsonNode discriminant0 = node.get("type"); 114 if (!(discriminant0 == null)) { 115 switch (discriminant0.asText()) { 116 case "country": 117 return new ShieldListContentV2025R0( 118 JsonManager.deserialize(node, ShieldListContentCountryV2025R0.class)); 119 case "domain": 120 return new ShieldListContentV2025R0( 121 JsonManager.deserialize(node, ShieldListContentDomainV2025R0.class)); 122 case "email": 123 return new ShieldListContentV2025R0( 124 JsonManager.deserialize(node, ShieldListContentEmailV2025R0.class)); 125 case "ip": 126 return new ShieldListContentV2025R0( 127 JsonManager.deserialize(node, ShieldListContentIpV2025R0.class)); 128 case "integration": 129 return new ShieldListContentV2025R0( 130 JsonManager.deserialize(node, ShieldListContentIntegrationV2025R0.class)); 131 } 132 } 133 throw new JsonMappingException(jp, "Unable to deserialize ShieldListContentV2025R0"); 134 } 135 } 136}