| // Copyright 2014 The Bazel Authors. All rights reserved. | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| package com.google.devtools.build.lib.events; | |
| import java.util.EnumSet; | |
| import java.util.Set; | |
| /** | |
| * Indicates the kind of an {@link Event}. | |
| */ | |
| public enum EventKind { | |
| /** | |
| * For errors that will prevent a successful, correct build. In general, the | |
| * build tool will not attempt to start or continue a build if an error is | |
| * encountered (though the behaviour specified by --keep-going flag is a | |
| * counterexample). | |
| * | |
| * Errors of a more severe nature in the input, such as those which might | |
| * cause later passes of the analysis to fail catastrophically, should be | |
| * handled by throwing an exception. | |
| */ | |
| ERROR, | |
| /** | |
| * For warnings of minor problems that do not affect the integrity of a | |
| * build. | |
| */ | |
| WARNING, | |
| /** | |
| * For atemporal information that is true throughout the entire duration | |
| * of a build. (e.g. the number of targets found) | |
| */ | |
| INFO, | |
| /** | |
| * For temporal information that changes during the duration of a build. | |
| * (e.g. what action is executing now) | |
| */ | |
| PROGRESS, | |
| /** | |
| * For debug messages | |
| */ | |
| DEBUG, | |
| /** | |
| * For progress messages (temporal information) relating to the start | |
| * and end of particular tasks. | |
| * (e.g. "Loading package foo", "Compiling bar", etc.) | |
| */ | |
| START, | |
| FINISH, | |
| /** | |
| * For command lines of subcommands executed by the build tool (like make-dbg | |
| * "-v"). | |
| */ | |
| SUBCOMMAND, | |
| /** | |
| * Output to stdout/stderr from subprocesses. | |
| */ | |
| STDOUT, | |
| STDERR, | |
| /** | |
| * Test result messages (similar to the INFO and ERROR, but test-specific). | |
| */ | |
| PASS, | |
| FAIL, | |
| TIMEOUT, | |
| CANCELLED, | |
| /** | |
| * For the reasoning of the dependency checker (like GNU Make "-d"). | |
| */ | |
| DEPCHECKER; | |
| // Convenient predefined EnumSets. Clients should not mutate them! | |
| public static final Set<EventKind> ALL_EVENTS = | |
| EnumSet.allOf(EventKind.class); | |
| public static final Set<EventKind> OUTPUT = EnumSet.of( | |
| EventKind.STDOUT, | |
| EventKind.STDERR | |
| ); | |
| public static final Set<EventKind> ERRORS = EnumSet.of( | |
| EventKind.ERROR, | |
| EventKind.FAIL, | |
| EventKind.TIMEOUT | |
| ); | |
| public static final Set<EventKind> ERRORS_AND_WARNINGS = EnumSet.of( | |
| EventKind.ERROR, | |
| EventKind.WARNING, | |
| EventKind.DEBUG, | |
| EventKind.FAIL, | |
| EventKind.TIMEOUT | |
| ); | |
| public static final Set<EventKind> ERRORS_WARNINGS_AND_INFO = EnumSet.of( | |
| EventKind.ERROR, | |
| EventKind.WARNING, | |
| EventKind.DEBUG, | |
| EventKind.PASS, | |
| EventKind.FAIL, | |
| EventKind.TIMEOUT, | |
| EventKind.INFO | |
| ); | |
| public static final Set<EventKind> ERRORS_AND_OUTPUT = EnumSet.of( | |
| EventKind.ERROR, | |
| EventKind.FAIL, | |
| EventKind.TIMEOUT, | |
| EventKind.STDOUT, | |
| EventKind.STDERR | |
| ); | |
| public static final Set<EventKind> ERRORS_AND_WARNINGS_AND_OUTPUT = EnumSet.of( | |
| EventKind.ERROR, | |
| EventKind.WARNING, | |
| EventKind.DEBUG, | |
| EventKind.FAIL, | |
| EventKind.TIMEOUT, | |
| EventKind.STDOUT, | |
| EventKind.STDERR | |
| ); | |
| public static final Set<EventKind> ERRORS_WARNINGS_AND_INFO_AND_OUTPUT = EnumSet.of( | |
| EventKind.ERROR, | |
| EventKind.WARNING, | |
| EventKind.DEBUG, | |
| EventKind.PASS, | |
| EventKind.FAIL, | |
| EventKind.TIMEOUT, | |
| EventKind.INFO, | |
| EventKind.STDOUT, | |
| EventKind.STDERR | |
| ); | |
| } |