001package com.box.sdkgen.schemas.aiextractstructuredagent; 002 003import com.box.sdkgen.internal.OneOfTwo; 004import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; 005import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; 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 = AiExtractStructuredAgent.AiExtractStructuredAgentDeserializer.class) 018@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) 019public class AiExtractStructuredAgent extends OneOfTwo<AiAgentReference, AiAgentExtractStructured> { 020 021 protected final String type; 022 023 public AiExtractStructuredAgent(AiAgentReference aiAgentReference) { 024 super(aiAgentReference, null); 025 this.type = EnumWrapper.convertToString(aiAgentReference.getType()); 026 } 027 028 public AiExtractStructuredAgent(AiAgentExtractStructured aiAgentExtractStructured) { 029 super(null, aiAgentExtractStructured); 030 this.type = EnumWrapper.convertToString(aiAgentExtractStructured.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 isAiAgentExtractStructured() { 042 return value1 != null; 043 } 044 045 public AiAgentExtractStructured getAiAgentExtractStructured() { 046 return value1; 047 } 048 049 public String getType() { 050 return type; 051 } 052 053 static class AiExtractStructuredAgentDeserializer 054 extends JsonDeserializer<AiExtractStructuredAgent> { 055 056 public AiExtractStructuredAgentDeserializer() { 057 super(); 058 } 059 060 @Override 061 public AiExtractStructuredAgent deserialize(JsonParser jp, DeserializationContext ctxt) 062 throws IOException { 063 JsonNode node = JsonManager.jsonToSerializedData(jp); 064 JsonNode discriminant0 = node.get("type"); 065 if (!(discriminant0 == null)) { 066 switch (discriminant0.asText()) { 067 case "ai_agent_id": 068 return new AiExtractStructuredAgent( 069 JsonManager.deserialize(node, AiAgentReference.class)); 070 case "ai_agent_extract_structured": 071 return new AiExtractStructuredAgent( 072 JsonManager.deserialize(node, AiAgentExtractStructured.class)); 073 } 074 } 075 throw new JsonMappingException(jp, "Unable to deserialize AiExtractStructuredAgent"); 076 } 077 } 078}