| // 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 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, |
| |
| /** |
| * 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.FAIL, |
| EventKind.TIMEOUT |
| ); |
| |
| public static final Set<EventKind> ERRORS_WARNINGS_AND_INFO = EnumSet.of( |
| EventKind.ERROR, |
| EventKind.WARNING, |
| 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.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.PASS, |
| EventKind.FAIL, |
| EventKind.TIMEOUT, |
| EventKind.INFO, |
| EventKind.STDOUT, |
| EventKind.STDERR |
| ); |
| |
| } |