package com.its.vms.xnettcp.vms.protocol.enums;

import java.util.HashMap;
import java.util.Map;

public enum eVmsErrorCode {

    ERROR_NONE                       (0x00, "0x00.NONE"),
    ERROR_DATA_SIZE                  (0x32, "0x32.데이터 크기 불일치"),
    ERROR_PREVIOUS_JOB_CONTINUE      (0x33, "0x33.이전 작업 진행 중 작업요구"),
    ERROR_PARAMETER_VALUE_OVERFLOW   (0x34, "0x34.파라미터 범위 초과"),
    ERROR_NOT_DEFINE_FORM_DATA       (0x35, "0x35.정의되지 않은 폼 데이터 요구"),
    ERROR_PROCESSING_NOT_APPLICATION (0x36, "0x36.업무처리 해당 사항 없음"),
    ERROR_CONTROLLER_NUMBER          (0x37, "0x37.CONTROLLER STATION NUMBER 틀림"),
    ERROR_UNKNOWN                    (0xFF, "0xFF.정의되지 않은 오류코드");

    private final int value;
    private final String string;

    private static final Map<Integer, eVmsErrorCode> map;
    static {
        map = new HashMap<>();
        for (eVmsErrorCode e : values()) {
            map.put(e.value, e);
        }
    }

    public static eVmsErrorCode getValue(int value) {
        return map.get(value);
    }
    public static eVmsErrorCode getValue(byte value) {
        int intValue = (value & 0xFF);
        return map.get(intValue);
    }

    eVmsErrorCode(int value, String string) {
        this.value  = value;
        this.string = string;
    }

    public int getValue() {
        return this.value;
    }
    public byte getByteValue() {
        return (byte)(this.value & 0xFF);
    }

    @Override
    public String toString() {
        return this.string;
    }
}
