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}