No printing of verbose compiler output in Ant task and REPL

This commit is contained in:
Andrey Breslav
2012-11-13 17:32:53 +04:00
parent 31b28cec92
commit 7e7e779e80
6 changed files with 22 additions and 14 deletions
@@ -19,8 +19,8 @@ package org.jetbrains.jet.cli.common.messages;
import org.jetbrains.annotations.NotNull;
public interface MessageCollector {
MessageCollector PLAIN_TEXT_TO_SYSTEM_ERR = new MessageCollectorPlainTextToStream(System.err);
void report(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location);
}
@@ -19,21 +19,33 @@ package org.jetbrains.jet.cli.common.messages;
import org.jetbrains.annotations.NotNull;
import java.io.PrintStream;
import java.util.EnumSet;
import java.util.Set;
/**
* @author Stepan Koltsov
*/
public class MessageCollectorPlainTextToStream implements MessageCollector {
public static final EnumSet<CompilerMessageSeverity> VERBOSE = EnumSet.of(CompilerMessageSeverity.LOGGING, CompilerMessageSeverity.OUTPUT);
public static final EnumSet<CompilerMessageSeverity> NON_VERBOSE = EnumSet.complementOf(VERBOSE);
public static final MessageCollector PLAIN_TEXT_TO_SYSTEM_ERR = new MessageCollectorPlainTextToStream(System.err, NON_VERBOSE);
@NotNull
private final PrintStream stream;
@NotNull
private final Set<CompilerMessageSeverity> severitiesToPrint;
public MessageCollectorPlainTextToStream(@NotNull PrintStream stream) {
public MessageCollectorPlainTextToStream(@NotNull PrintStream stream, @NotNull Set<CompilerMessageSeverity> severities) {
this.stream = stream;
this.severitiesToPrint = severities;
}
@Override
public void report(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {
stream.println(MessageRenderer.PLAIN.render(severity, message, location));
if (severitiesToPrint.contains(severity)) {
stream.println(MessageRenderer.PLAIN.render(severity, message, location));
}
}
}
@@ -28,8 +28,8 @@ import java.nio.charset.Charset;
*/
public class MessageCollectorToString implements MessageCollector {
private final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
private final MessageCollector actualCollector = new MessageCollectorPlainTextToStream(new PrintStream(outputStream));
private final MessageCollector actualCollector = new MessageCollectorPlainTextToStream(new PrintStream(outputStream),
MessageCollectorPlainTextToStream.NON_VERBOSE);
@Override
public void report(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {