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 }