001    /*
002     * Copyright 2010-2015 JetBrains s.r.o.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.jetbrains.kotlin.cli.common.messages;
018    
019    import org.jetbrains.annotations.NotNull;
020    
021    import java.util.EnumSet;
022    
023    public enum CompilerMessageSeverity {
024        EXCEPTION,
025        ERROR,
026        STRONG_WARNING,
027        WARNING,
028        INFO,
029        LOGGING,
030        OUTPUT;
031    
032        public static final EnumSet<CompilerMessageSeverity> ERRORS = EnumSet.of(ERROR, EXCEPTION);
033        public static final EnumSet<CompilerMessageSeverity> VERBOSE = EnumSet.of(OUTPUT, LOGGING);
034    
035        public boolean isError() {
036            return ERRORS.contains(this);
037        }
038    
039        @NotNull
040        public String getPresentableName() {
041            switch (this) {
042                case EXCEPTION:
043                    return "exception";
044                case ERROR:
045                    return "error";
046                case STRONG_WARNING:
047                case WARNING:
048                    return "warning";
049                case INFO:
050                    return "info";
051                case LOGGING:
052                    return "logging";
053                case OUTPUT:
054                    return "output";
055                default:
056                    throw new UnsupportedOperationException("Unknown severity: " + this);
057            }
058        }
059    }