001package com.box.sdkgen.schemas.resourcescope; 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 ResourceScopeScopeField implements Valuable { 016 ANNOTATION_EDIT("annotation_edit"), 017 ANNOTATION_VIEW_ALL("annotation_view_all"), 018 ANNOTATION_VIEW_SELF("annotation_view_self"), 019 BASE_EXPLORER("base_explorer"), 020 BASE_PICKER("base_picker"), 021 BASE_PREVIEW("base_preview"), 022 BASE_UPLOAD("base_upload"), 023 ITEM_DELETE("item_delete"), 024 ITEM_DOWNLOAD("item_download"), 025 ITEM_PREVIEW("item_preview"), 026 ITEM_RENAME("item_rename"), 027 ITEM_SHARE("item_share"), 028 ITEM_UPLOAD("item_upload"), 029 ITEM_READ("item_read"); 030 031 private final String value; 032 033 ResourceScopeScopeField(String value) { 034 this.value = value; 035 } 036 037 @JsonValue 038 public String getValue() { 039 return value; 040 } 041 042 public static class ResourceScopeScopeFieldDeserializer 043 extends JsonDeserializer<EnumWrapper<ResourceScopeScopeField>> { 044 045 public ResourceScopeScopeFieldDeserializer() { 046 super(); 047 } 048 049 @Override 050 public EnumWrapper<ResourceScopeScopeField> deserialize( 051 JsonParser p, DeserializationContext ctxt) throws IOException { 052 String value = p.getValueAsString(); 053 return Arrays.stream(ResourceScopeScopeField.values()) 054 .filter((v) -> v.getValue().equalsIgnoreCase(value)) 055 .findFirst() 056 .map(EnumWrapper::new) 057 .orElse(new EnumWrapper<ResourceScopeScopeField>(value)); 058 } 059 } 060 061 public static class ResourceScopeScopeFieldSerializer 062 extends JsonSerializer<EnumWrapper<ResourceScopeScopeField>> { 063 064 public ResourceScopeScopeFieldSerializer() { 065 super(); 066 } 067 068 @Override 069 public void serialize( 070 EnumWrapper<ResourceScopeScopeField> value, 071 JsonGenerator gen, 072 SerializerProvider serializers) 073 throws IOException { 074 gen.writeString(value.getStringValue()); 075 } 076 } 077}