001package com.box.sdkgen.schemas.aitextgenagent; 002 003import com.box.sdkgen.internal.OneOfTwo; 004import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; 005import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; 006import com.box.sdkgen.serialization.json.EnumWrapper; 007import com.box.sdkgen.serialization.json.JsonManager; 008import com.fasterxml.jackson.core.JsonParser; 009import com.fasterxml.jackson.databind.DeserializationContext; 010import com.fasterxml.jackson.databind.JsonDeserializer; 011import com.fasterxml.jackson.databind.JsonMappingException; 012import com.fasterxml.jackson.databind.JsonNode; 013import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 014import com.fasterxml.jackson.databind.annotation.JsonSerialize; 015import java.io.IOException; 016 017@JsonDeserialize(using = AiTextGenAgent.AiTextGenAgentDeserializer.class) 018@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) 019public class AiTextGenAgent extends OneOfTwo<AiAgentReference, AiAgentTextGen> { 020 021 protected final String type; 022 023 public AiTextGenAgent(AiAgentReference aiAgentReference) { 024 super(aiAgentReference, null); 025 this.type = EnumWrapper.convertToString(aiAgentReference.getType()); 026 } 027 028 public AiTextGenAgent(AiAgentTextGen aiAgentTextGen) { 029 super(null, aiAgentTextGen); 030 this.type = EnumWrapper.convertToString(aiAgentTextGen.getType()); 031 } 032 033 public boolean isAiAgentReference() { 034 return value0 != null; 035 } 036 037 public AiAgentReference getAiAgentReference() { 038 return value0; 039 } 040 041 public boolean isAiAgentTextGen() { 042 return value1 != null; 043 } 044 045 public AiAgentTextGen getAiAgentTextGen() { 046 return value1; 047 } 048 049 public String getType() { 050 return type; 051 } 052 053 static class AiTextGenAgentDeserializer extends JsonDeserializer<AiTextGenAgent> { 054 055 public AiTextGenAgentDeserializer() { 056 super(); 057 } 058 059 @Override 060 public AiTextGenAgent deserialize(JsonParser jp, DeserializationContext ctxt) 061 throws IOException { 062 JsonNode node = JsonManager.jsonToSerializedData(jp); 063 JsonNode discriminant0 = node.get("type"); 064 if (!(discriminant0 == null)) { 065 switch (discriminant0.asText()) { 066 case "ai_agent_id": 067 return new AiTextGenAgent(JsonManager.deserialize(node, AiAgentReference.class)); 068 case "ai_agent_text_gen": 069 return new AiTextGenAgent(JsonManager.deserialize(node, AiAgentTextGen.class)); 070 } 071 } 072 throw new JsonMappingException(jp, "Unable to deserialize AiTextGenAgent"); 073 } 074 } 075}