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 TemplateSignerInputTypeField implements Valuable {
016  SIGNATURE("signature"),
017  DATE("date"),
018  TEXT("text"),
019  CHECKBOX("checkbox"),
020  ATTACHMENT("attachment"),
021  RADIO("radio"),
022  DROPDOWN("dropdown");
023
024  private final String value;
025
026  TemplateSignerInputTypeField(String value) {
027    this.value = value;
028  }
029
030  @JsonValue
031  public String getValue() {
032    return value;
033  }
034
035  public static class TemplateSignerInputTypeFieldDeserializer
036      extends JsonDeserializer<EnumWrapper<TemplateSignerInputTypeField>> {
037
038    public TemplateSignerInputTypeFieldDeserializer() {
039      super();
040    }
041
042    @Override
043    public EnumWrapper<TemplateSignerInputTypeField> deserialize(
044        JsonParser p, DeserializationContext ctxt) throws IOException {
045      String value = p.getValueAsString();
046      return Arrays.stream(TemplateSignerInputTypeField.values())
047          .filter((v) -> v.getValue().equalsIgnoreCase(value))
048          .findFirst()
049          .map(EnumWrapper::new)
050          .orElse(new EnumWrapper<TemplateSignerInputTypeField>(value));
051    }
052  }
053
054  public static class TemplateSignerInputTypeFieldSerializer
055      extends JsonSerializer<EnumWrapper<TemplateSignerInputTypeField>> {
056
057    public TemplateSignerInputTypeFieldSerializer() {
058      super();
059    }
060
061    @Override
062    public void serialize(
063        EnumWrapper<TemplateSignerInputTypeField> value,
064        JsonGenerator gen,
065        SerializerProvider serializers)
066        throws IOException {
067      gen.writeString(value.getStringValue());
068    }
069  }
070}