001package com.box.sdkgen.schemas.v2025r0.hubitemreferencev2025r0; 002 003import com.box.sdkgen.internal.OneOfThree; 004import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; 005import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; 006import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; 007import com.box.sdkgen.serialization.json.EnumWrapper; 008import com.box.sdkgen.serialization.json.JsonManager; 009import com.fasterxml.jackson.core.JsonParser; 010import com.fasterxml.jackson.databind.DeserializationContext; 011import com.fasterxml.jackson.databind.JsonDeserializer; 012import com.fasterxml.jackson.databind.JsonMappingException; 013import com.fasterxml.jackson.databind.JsonNode; 014import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 015import com.fasterxml.jackson.databind.annotation.JsonSerialize; 016import java.io.IOException; 017 018@JsonDeserialize(using = HubItemReferenceV2025R0.HubItemReferenceV2025R0Deserializer.class) 019@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) 020public class HubItemReferenceV2025R0 021 extends OneOfThree<FileReferenceV2025R0, FolderReferenceV2025R0, WeblinkReferenceV2025R0> { 022 023 protected final String type; 024 025 protected final String id; 026 027 public HubItemReferenceV2025R0(FileReferenceV2025R0 fileReferenceV2025R0) { 028 super(fileReferenceV2025R0, null, null); 029 this.type = EnumWrapper.convertToString(fileReferenceV2025R0.getType()); 030 this.id = fileReferenceV2025R0.getId(); 031 } 032 033 public HubItemReferenceV2025R0(FolderReferenceV2025R0 folderReferenceV2025R0) { 034 super(null, folderReferenceV2025R0, null); 035 this.type = EnumWrapper.convertToString(folderReferenceV2025R0.getType()); 036 this.id = folderReferenceV2025R0.getId(); 037 } 038 039 public HubItemReferenceV2025R0(WeblinkReferenceV2025R0 weblinkReferenceV2025R0) { 040 super(null, null, weblinkReferenceV2025R0); 041 this.type = EnumWrapper.convertToString(weblinkReferenceV2025R0.getType()); 042 this.id = weblinkReferenceV2025R0.getId(); 043 } 044 045 public boolean isFileReferenceV2025R0() { 046 return value0 != null; 047 } 048 049 public FileReferenceV2025R0 getFileReferenceV2025R0() { 050 return value0; 051 } 052 053 public boolean isFolderReferenceV2025R0() { 054 return value1 != null; 055 } 056 057 public FolderReferenceV2025R0 getFolderReferenceV2025R0() { 058 return value1; 059 } 060 061 public boolean isWeblinkReferenceV2025R0() { 062 return value2 != null; 063 } 064 065 public WeblinkReferenceV2025R0 getWeblinkReferenceV2025R0() { 066 return value2; 067 } 068 069 public String getType() { 070 return type; 071 } 072 073 public String getId() { 074 return id; 075 } 076 077 static class HubItemReferenceV2025R0Deserializer 078 extends JsonDeserializer<HubItemReferenceV2025R0> { 079 080 public HubItemReferenceV2025R0Deserializer() { 081 super(); 082 } 083 084 @Override 085 public HubItemReferenceV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) 086 throws IOException { 087 JsonNode node = JsonManager.jsonToSerializedData(jp); 088 JsonNode discriminant0 = node.get("type"); 089 if (!(discriminant0 == null)) { 090 switch (discriminant0.asText()) { 091 case "file": 092 return new HubItemReferenceV2025R0( 093 JsonManager.deserialize(node, FileReferenceV2025R0.class)); 094 case "folder": 095 return new HubItemReferenceV2025R0( 096 JsonManager.deserialize(node, FolderReferenceV2025R0.class)); 097 case "web_link": 098 return new HubItemReferenceV2025R0( 099 JsonManager.deserialize(node, WeblinkReferenceV2025R0.class)); 100 } 101 } 102 throw new JsonMappingException(jp, "Unable to deserialize HubItemReferenceV2025R0"); 103 } 104 } 105}