001package com.box.sdkgen.schemas.workflow; 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 WorkflowFlowsOutcomesActionTypeField implements Valuable { 016 ADD_METADATA("add_metadata"), 017 ASSIGN_TASK("assign_task"), 018 COPY_FILE("copy_file"), 019 COPY_FOLDER("copy_folder"), 020 CREATE_FOLDER("create_folder"), 021 DELETE_FILE("delete_file"), 022 DELETE_FOLDER("delete_folder"), 023 LOCK_FILE("lock_file"), 024 MOVE_FILE("move_file"), 025 MOVE_FOLDER("move_folder"), 026 REMOVE_WATERMARK_FILE("remove_watermark_file"), 027 RENAME_FOLDER("rename_folder"), 028 RESTORE_FOLDER("restore_folder"), 029 SHARE_FILE("share_file"), 030 SHARE_FOLDER("share_folder"), 031 UNLOCK_FILE("unlock_file"), 032 UPLOAD_FILE("upload_file"), 033 WAIT_FOR_TASK("wait_for_task"), 034 WATERMARK_FILE("watermark_file"), 035 GO_BACK_TO_STEP("go_back_to_step"), 036 APPLY_FILE_CLASSIFICATION("apply_file_classification"), 037 APPLY_FOLDER_CLASSIFICATION("apply_folder_classification"), 038 SEND_NOTIFICATION("send_notification"); 039 040 private final String value; 041 042 WorkflowFlowsOutcomesActionTypeField(String value) { 043 this.value = value; 044 } 045 046 @JsonValue 047 public String getValue() { 048 return value; 049 } 050 051 public static class WorkflowFlowsOutcomesActionTypeFieldDeserializer 052 extends JsonDeserializer<EnumWrapper<WorkflowFlowsOutcomesActionTypeField>> { 053 054 public WorkflowFlowsOutcomesActionTypeFieldDeserializer() { 055 super(); 056 } 057 058 @Override 059 public EnumWrapper<WorkflowFlowsOutcomesActionTypeField> deserialize( 060 JsonParser p, DeserializationContext ctxt) throws IOException { 061 String value = p.getValueAsString(); 062 return Arrays.stream(WorkflowFlowsOutcomesActionTypeField.values()) 063 .filter((v) -> v.getValue().equalsIgnoreCase(value)) 064 .findFirst() 065 .map(EnumWrapper::new) 066 .orElse(new EnumWrapper<WorkflowFlowsOutcomesActionTypeField>(value)); 067 } 068 } 069 070 public static class WorkflowFlowsOutcomesActionTypeFieldSerializer 071 extends JsonSerializer<EnumWrapper<WorkflowFlowsOutcomesActionTypeField>> { 072 073 public WorkflowFlowsOutcomesActionTypeFieldSerializer() { 074 super(); 075 } 076 077 @Override 078 public void serialize( 079 EnumWrapper<WorkflowFlowsOutcomesActionTypeField> value, 080 JsonGenerator gen, 081 SerializerProvider serializers) 082 throws IOException { 083 gen.writeString(value.getStringValue()); 084 } 085 } 086}