package sgc.portal.base;

/**
 * <pre>
 * Spring은 다양한 Profile 전략을 통해서 시스템이 구동되는 환경에 따라
 * 유연하게 Component를 선택하고 동작시킬 수 있다.
 * WavePark 시스템에서는 개발자 PC를 의미하는 LOCAL, 개발환경 DEV, 운영환경 PROD
 * 3개의 Profile을 대상으로 환경을 구성하여 구축한다.
 * </pre>
 *
 * @author beomgeun.lee
 */
public enum Profiles {
    /**
     * 로컬
     */
    LOCAL(Constants.LOCAL),

    /**
     * 개발
     */
    DEV(Constants.DEV),

    /**
     * 배치(batch)
     */
    BATCH(Constants.BATCH),

    /**
     * 운영
     */
    PROD(Constants.PROD);

    private final String name;

    private Profiles(String name) {
        this.name = name;
    }

    /**
     * Gets name.
     *
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * The type Constants.
     */
    public static class Constants { // NOPMD by sdcit_mac on 20. 4. 3 오후 3:30
        /**
         * The constant LOCAL.
         */
        public static final String LOCAL = "local";
        /**
         * The constant DEV.
         */
        public static final String DEV = "dev";
        /**
         * The constant BATCH.
         */
        public static final String BATCH = "batch";
        /**
         * The constant PROD.
         */
        public static final String PROD = "prod";
    }
}