package com.capgemini.reports.definition.r20report;

import lombok.extern.slf4j.Slf4j;

import java.util.Locale;

/**
 * Enumeration of the ConjointUnique's values.
 */
@Slf4j
public enum ConjointUnique {
    /**
     * The value Conjoint.
     */
    CONJOINT {
        @Override
        public String toString() {
            return "Conjoint";
        }
    },
    /**
     * The value Unique.
     */
    UNIQUE {
        @Override
        public String toString() {
            return "Unique";
        }
    };

    /**
     * Parses an input {@link String} and returns the corresponding enum instance.<br>
     * Default value: Conjoint
     *
     * @param conjointUniqueStr the input string
     * @return the instance
     */
    public static ConjointUnique parse(final String conjointUniqueStr) {
        String conjointUniqueLC = conjointUniqueStr.toLowerCase(Locale.FRENCH);
        if ("conjoint".equals(conjointUniqueLC)) {
            return CONJOINT;
        } else {
            if ("unique".equals(conjointUniqueLC)) {
                return UNIQUE;
            } else {
                log.warn("Could not decide between Conjoint and Unique for input '{}', defaulting to Conjoint", conjointUniqueLC);
                return CONJOINT;
            }
        }
    }
}
