001package com.box.sdkgen.managers.usercollaborations;
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 CreateCollaborationRequestBodyRoleField implements Valuable {
016  EDITOR("editor"),
017  VIEWER("viewer"),
018  PREVIEWER("previewer"),
019  UPLOADER("uploader"),
020  PREVIEWER_UPLOADER("previewer uploader"),
021  VIEWER_UPLOADER("viewer uploader"),
022  CO_OWNER("co-owner");
023
024  private final String value;
025
026  CreateCollaborationRequestBodyRoleField(String value) {
027    this.value = value;
028  }
029
030  @JsonValue
031  public String getValue() {
032    return value;
033  }
034
035  public static class CreateCollaborationRequestBodyRoleFieldDeserializer
036      extends JsonDeserializer<EnumWrapper<CreateCollaborationRequestBodyRoleField>> {
037
038    public CreateCollaborationRequestBodyRoleFieldDeserializer() {
039      super();
040    }
041
042    @Override
043    public EnumWrapper<CreateCollaborationRequestBodyRoleField> deserialize(
044        JsonParser p, DeserializationContext ctxt) throws IOException {
045      String value = p.getValueAsString();
046      return Arrays.stream(CreateCollaborationRequestBodyRoleField.values())
047          .filter((v) -> v.getValue().equalsIgnoreCase(value))
048          .findFirst()
049          .map(EnumWrapper::new)
050          .orElse(new EnumWrapper<CreateCollaborationRequestBodyRoleField>(value));
051    }
052  }
053
054  public static class CreateCollaborationRequestBodyRoleFieldSerializer
055      extends JsonSerializer<EnumWrapper<CreateCollaborationRequestBodyRoleField>> {
056
057    public CreateCollaborationRequestBodyRoleFieldSerializer() {
058      super();
059    }
060
061    @Override
062    public void serialize(
063        EnumWrapper<CreateCollaborationRequestBodyRoleField> value,
064        JsonGenerator gen,
065        SerializerProvider serializers)
066        throws IOException {
067      gen.writeString(value.getStringValue());
068    }
069  }
070}