package dev.fyloz.trial.colorrecipesexplorer.exception.model;

import dev.fyloz.trial.colorrecipesexplorer.model.Model;

/**
 * Représente une exception qui sera déclenchée lors des opérations sur le modèle.
 */
public class ModelException extends RuntimeException {

    /**
     * Le type de modèle qui est sujet à l'exception
     */
    protected Class<? extends Model> type;

    public ModelException(Class<? extends Model> type) {
        this.type = type;
    }

    public Class<? extends Model> getType() {
        return type;
    }

    public enum IdentifierType {
        ID("id"),
        NAME("name"),
        OTHER("");

        private String name;

        IdentifierType(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}
