001package com.box.sdkgen.schemas.signtemplate; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.box.sdkgen.serialization.json.Valuable; 007import com.fasterxml.jackson.annotation.JsonFilter; 008import com.fasterxml.jackson.core.JsonGenerator; 009import com.fasterxml.jackson.core.JsonParser; 010import com.fasterxml.jackson.databind.DeserializationContext; 011import com.fasterxml.jackson.databind.JsonDeserializer; 012import com.fasterxml.jackson.databind.JsonNode; 013import com.fasterxml.jackson.databind.JsonSerializer; 014import com.fasterxml.jackson.databind.SerializerProvider; 015import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 016import com.fasterxml.jackson.databind.annotation.JsonSerialize; 017import java.io.IOException; 018import java.util.ArrayList; 019import java.util.List; 020import java.util.Objects; 021 022@JsonFilter("nullablePropertyFilter") 023public class SignTemplateAdditionalInfoRequiredField extends SerializableObject { 024 025 /** Required signer fields. */ 026 @JsonDeserialize(using = SignersDeserializer.class) 027 @JsonSerialize(using = SignersSerializer.class) 028 protected List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>> signers; 029 030 public SignTemplateAdditionalInfoRequiredField() { 031 super(); 032 } 033 034 protected SignTemplateAdditionalInfoRequiredField(Builder builder) { 035 super(); 036 this.signers = builder.signers; 037 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 038 } 039 040 public List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>> getSigners() { 041 return signers; 042 } 043 044 @Override 045 public boolean equals(Object o) { 046 if (this == o) { 047 return true; 048 } 049 if (o == null || getClass() != o.getClass()) { 050 return false; 051 } 052 SignTemplateAdditionalInfoRequiredField casted = (SignTemplateAdditionalInfoRequiredField) o; 053 return Objects.equals(signers, casted.signers); 054 } 055 056 @Override 057 public int hashCode() { 058 return Objects.hash(signers); 059 } 060 061 @Override 062 public String toString() { 063 return "SignTemplateAdditionalInfoRequiredField{" + "signers='" + signers + '\'' + "}"; 064 } 065 066 public static class Builder extends NullableFieldTracker { 067 068 protected List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>> signers; 069 070 public Builder signers(List<List<? extends Valuable>> signers) { 071 this.signers = 072 EnumWrapper.wrapValuableEnumListOfLists( 073 signers, SignTemplateAdditionalInfoRequiredSignersField.class); 074 return this; 075 } 076 077 public SignTemplateAdditionalInfoRequiredField build() { 078 return new SignTemplateAdditionalInfoRequiredField(this); 079 } 080 } 081 082 public static class SignersDeserializer 083 extends JsonDeserializer< 084 List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>>> { 085 086 public final JsonDeserializer<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>> 087 elementDeserializer; 088 089 public SignersDeserializer() { 090 super(); 091 this.elementDeserializer = 092 new SignTemplateAdditionalInfoRequiredSignersField 093 .SignTemplateAdditionalInfoRequiredSignersFieldDeserializer(); 094 } 095 096 @Override 097 public List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>> deserialize( 098 JsonParser p, DeserializationContext ctxt) throws IOException { 099 JsonNode node = p.getCodec().readTree(p); 100 List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>> elements = 101 new ArrayList<>(); 102 for (JsonNode item : node) { 103 List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>> innerElements = 104 new ArrayList<>(); 105 for (JsonNode innerItem : item) { 106 JsonParser pa = innerItem.traverse(p.getCodec()); 107 pa.nextToken(); 108 innerElements.add(elementDeserializer.deserialize(pa, ctxt)); 109 } 110 elements.add(innerElements); 111 } 112 return elements; 113 } 114 } 115 116 public static class SignersSerializer 117 extends JsonSerializer< 118 List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>>> { 119 120 public final JsonSerializer<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>> 121 elementSerializer; 122 123 public SignersSerializer() { 124 super(); 125 this.elementSerializer = 126 new SignTemplateAdditionalInfoRequiredSignersField 127 .SignTemplateAdditionalInfoRequiredSignersFieldSerializer(); 128 } 129 130 @Override 131 public void serialize( 132 List<List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>>> value, 133 JsonGenerator gen, 134 SerializerProvider serializers) 135 throws IOException { 136 gen.writeStartArray(); 137 for (List<EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField>> item : value) { 138 gen.writeStartArray(); 139 for (EnumWrapper<SignTemplateAdditionalInfoRequiredSignersField> innerItem : item) { 140 elementSerializer.serialize(innerItem, gen, serializers); 141 } 142 gen.writeEndArray(); 143 } 144 gen.writeEndArray(); 145 } 146 } 147}