001package com.box.sdkgen.schemas.clienterror; 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 ClientErrorCodeField implements Valuable { 016 CREATED("created"), 017 ACCEPTED("accepted"), 018 NO_CONTENT("no_content"), 019 REDIRECT("redirect"), 020 NOT_MODIFIED("not_modified"), 021 BAD_REQUEST("bad_request"), 022 UNAUTHORIZED("unauthorized"), 023 FORBIDDEN("forbidden"), 024 NOT_FOUND("not_found"), 025 METHOD_NOT_ALLOWED("method_not_allowed"), 026 CONFLICT("conflict"), 027 PRECONDITION_FAILED("precondition_failed"), 028 TOO_MANY_REQUESTS("too_many_requests"), 029 INTERNAL_SERVER_ERROR("internal_server_error"), 030 UNAVAILABLE("unavailable"), 031 ITEM_NAME_INVALID("item_name_invalid"), 032 INSUFFICIENT_SCOPE("insufficient_scope"); 033 034 private final String value; 035 036 ClientErrorCodeField(String value) { 037 this.value = value; 038 } 039 040 @JsonValue 041 public String getValue() { 042 return value; 043 } 044 045 public static class ClientErrorCodeFieldDeserializer 046 extends JsonDeserializer<EnumWrapper<ClientErrorCodeField>> { 047 048 public ClientErrorCodeFieldDeserializer() { 049 super(); 050 } 051 052 @Override 053 public EnumWrapper<ClientErrorCodeField> deserialize(JsonParser p, DeserializationContext ctxt) 054 throws IOException { 055 String value = p.getValueAsString(); 056 return Arrays.stream(ClientErrorCodeField.values()) 057 .filter((v) -> v.getValue().equalsIgnoreCase(value)) 058 .findFirst() 059 .map(EnumWrapper::new) 060 .orElse(new EnumWrapper<ClientErrorCodeField>(value)); 061 } 062 } 063 064 public static class ClientErrorCodeFieldSerializer 065 extends JsonSerializer<EnumWrapper<ClientErrorCodeField>> { 066 067 public ClientErrorCodeFieldSerializer() { 068 super(); 069 } 070 071 @Override 072 public void serialize( 073 EnumWrapper<ClientErrorCodeField> value, JsonGenerator gen, SerializerProvider serializers) 074 throws IOException { 075 gen.writeString(value.getStringValue()); 076 } 077 } 078}