001
002package com.commercetools.ml.models.common;
003
004import java.util.Arrays;
005import java.util.Optional;
006
007import com.fasterxml.jackson.annotation.JsonCreator;
008import com.fasterxml.jackson.annotation.JsonValue;
009
010import io.vrap.rmf.base.client.utils.Generated;
011
012/**
013 * TaskStatusEnum
014 */
015@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
016public interface TaskStatusEnum {
017
018    TaskStatusEnum PENDING = TaskStatusEnumEnum.PENDING;
019
020    TaskStatusEnum SUCCESS = TaskStatusEnumEnum.SUCCESS;
021
022    enum TaskStatusEnumEnum implements TaskStatusEnum {
023        PENDING("PENDING"),
024
025        SUCCESS("SUCCESS");
026        private final String jsonName;
027
028        private TaskStatusEnumEnum(final String jsonName) {
029            this.jsonName = jsonName;
030        }
031
032        public String getJsonName() {
033            return jsonName;
034        }
035
036        public String toString() {
037            return jsonName;
038        }
039    }
040
041    @JsonValue
042    String getJsonName();
043
044    String name();
045
046    String toString();
047
048    @JsonCreator
049    public static TaskStatusEnum findEnum(String value) {
050        return findEnumViaJsonName(value).orElse(new TaskStatusEnum() {
051            @Override
052            public String getJsonName() {
053                return value;
054            }
055
056            @Override
057            public String name() {
058                return value.toUpperCase();
059            }
060
061            public String toString() {
062                return value;
063            }
064        });
065    }
066
067    public static Optional<TaskStatusEnum> findEnumViaJsonName(String jsonName) {
068        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
069    }
070
071    public static TaskStatusEnum[] values() {
072        return TaskStatusEnumEnum.values();
073    }
074}