sleekbyte/tailor

View on GitHub
src/main/java/com/sleekbyte/tailor/common/Severity.java

Summary

Maintainability
A
0 mins
Test Coverage
package com.sleekbyte.tailor.common;

/**
 * Severity of violation messages.
 */
public enum Severity {
    ERROR(Messages.ERROR, 2),
    WARNING(Messages.WARNING, 1);

    private String value;
    private int severity;

    /**
     * Exception thrown when invalid severity is provided.
     */
    public static class IllegalSeverityException extends Exception {}

    Severity(String value, int severity) {
        this.value = value;
        this.severity = severity;
    }

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

    /**
     * Parse str and convert to appropriate Severity.
     *
     * @param str Severity string (error|warning)
     * @return Parsed Severity value
     * @throws IllegalSeverityException if string is not recognized
     */
    public static Severity parseSeverity(String str) throws IllegalSeverityException {
        if (str.equalsIgnoreCase(Messages.ERROR)) {
            return ERROR;
        } else if (str.equalsIgnoreCase(Messages.WARNING)) {
            return WARNING;
        } else {
            throw new IllegalSeverityException();
        }
    }

    public static Severity min(Severity s1, Severity s2) {
        return (s1.severity < s2.severity) ? s1 : s2;
    }
}