001package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions;
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 CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField
016    implements Valuable {
017  SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment");
018
019  private final String value;
020
021  CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField(
022      String value) {
023    this.value = value;
024  }
025
026  @JsonValue
027  public String getValue() {
028    return value;
029  }
030
031  public static
032  class CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldDeserializer
033      extends JsonDeserializer<
034          EnumWrapper<
035              CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>> {
036
037    public
038    CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldDeserializer() {
039      super();
040    }
041
042    @Override
043    public EnumWrapper<
044            CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>
045        deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
046      String value = p.getValueAsString();
047      return Arrays.stream(
048              CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField
049                  .values())
050          .filter((v) -> v.getValue().equalsIgnoreCase(value))
051          .findFirst()
052          .map(EnumWrapper::new)
053          .orElse(
054              new EnumWrapper<
055                  CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>(
056                  value));
057    }
058  }
059
060  public static
061  class CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldSerializer
062      extends JsonSerializer<
063          EnumWrapper<
064              CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>> {
065
066    public
067    CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldSerializer() {
068      super();
069    }
070
071    @Override
072    public void serialize(
073        EnumWrapper<
074                CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>
075            value,
076        JsonGenerator gen,
077        SerializerProvider serializers)
078        throws IOException {
079      gen.writeString(value.getStringValue());
080    }
081  }
082}