package sgc.portal.base.error;

import org.springframework.core.Ordered;

/**
 * 에러 메시지를 해결할 수 있는 객체가 구현할 인터페이스.
 * 본 인터페이스는 Ordered를 상속하고 있으므로 구현할 객체들은
 * 순서에 신경 써야한다.
 *
 * @author YongSang
 */
public interface ErrorMessageResolver extends Ordered {
    /**
     * 에러 메시지를 해결
     *
     * @param error 예외 객체
     * @return 에러 메시지
     */
    String resolveErrorMessage(Throwable error);

    /**
     * 매개 변수인 예외 객체를 통해 구현할 객체가 에러 메시지를
     * 처리할 수 있는 여부
     *
     * @param error 예외 객체
     * @return 처리 여부
     */
    boolean supports(Throwable error);
}
