001package com.box.sdkgen.schemas.templatesignerinput; 002 003import com.box.sdkgen.serialization.json.EnumWrapper; 004import com.box.sdkgen.serialization.json.Valuable; 005import com.fasterxml.jackson.annotation.JsonValue; 006import com.fasterxml.jackson.core.JsonGenerator; 007import com.fasterxml.jackson.core.JsonParser; 008import com.fasterxml.jackson.databind.DeserializationContext; 009import com.fasterxml.jackson.databind.JsonDeserializer; 010import com.fasterxml.jackson.databind.JsonSerializer; 011import com.fasterxml.jackson.databind.SerializerProvider; 012import java.io.IOException; 013import java.util.Arrays; 014 015public enum TemplateSignerInputContentTypeField implements Valuable { 016 SIGNATURE("signature"), 017 INITIAL("initial"), 018 STAMP("stamp"), 019 DATE("date"), 020 CHECKBOX("checkbox"), 021 TEXT("text"), 022 FULL_NAME("full_name"), 023 FIRST_NAME("first_name"), 024 LAST_NAME("last_name"), 025 COMPANY("company"), 026 TITLE("title"), 027 EMAIL("email"), 028 ATTACHMENT("attachment"), 029 RADIO("radio"), 030 DROPDOWN("dropdown"); 031 032 private final String value; 033 034 TemplateSignerInputContentTypeField(String value) { 035 this.value = value; 036 } 037 038 @JsonValue 039 public String getValue() { 040 return value; 041 } 042 043 public static class TemplateSignerInputContentTypeFieldDeserializer 044 extends JsonDeserializer<EnumWrapper<TemplateSignerInputContentTypeField>> { 045 046 public TemplateSignerInputContentTypeFieldDeserializer() { 047 super(); 048 } 049 050 @Override 051 public EnumWrapper<TemplateSignerInputContentTypeField> deserialize( 052 JsonParser p, DeserializationContext ctxt) throws IOException { 053 String value = p.getValueAsString(); 054 return Arrays.stream(TemplateSignerInputContentTypeField.values()) 055 .filter((v) -> v.getValue().equalsIgnoreCase(value)) 056 .findFirst() 057 .map(EnumWrapper::new) 058 .orElse(new EnumWrapper<TemplateSignerInputContentTypeField>(value)); 059 } 060 } 061 062 public static class TemplateSignerInputContentTypeFieldSerializer 063 extends JsonSerializer<EnumWrapper<TemplateSignerInputContentTypeField>> { 064 065 public TemplateSignerInputContentTypeFieldSerializer() { 066 super(); 067 } 068 069 @Override 070 public void serialize( 071 EnumWrapper<TemplateSignerInputContentTypeField> value, 072 JsonGenerator gen, 073 SerializerProvider serializers) 074 throws IOException { 075 gen.writeString(value.getStringValue()); 076 } 077 } 078}