Alternative methods for progress reporting

This commit is contained in:
Andrey Breslav
2012-11-12 16:49:47 +04:00
parent 1e3b334f15
commit ef403cc91a
11 changed files with 263 additions and 14 deletions
@@ -34,6 +34,10 @@ public abstract class AbstractOutputItemCollector<S, R> implements OutputItemsCo
this.outputPath = outputPath;
}
protected void addItem(R item) {
answer.add(item);
}
@Override
public final void learn(String message) {
message = message.trim();
@@ -21,10 +21,7 @@ import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation;
import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity;
import org.jetbrains.jet.cli.common.messages.MessageCollector;
import org.jetbrains.jet.cli.common.messages.MessageRenderer;
import org.jetbrains.jet.cli.common.messages.*;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -45,6 +42,7 @@ import static org.jetbrains.jet.cli.common.messages.CompilerMessageLocation.NO_L
import static org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity.*;
public class CompilerRunnerUtil {
private static SoftReference<URLClassLoader> ourClassLoaderRef = new SoftReference<URLClassLoader>(null);
public static List<File> kompilerClasspath(File kotlinHome, MessageCollector messageCollector) {
@@ -241,8 +239,8 @@ public class CompilerRunnerUtil {
}
String text = message.toString();
if (category == LOGGING) {
collector.learn(text);
if (category == OUTPUT) {
reportToCollector(text);
}
else {
messageCollector.report(category, text, CompilerMessageLocation.create(path, line, column));
@@ -250,6 +248,13 @@ public class CompilerRunnerUtil {
tags.pop();
}
private void reportToCollector(String text) {
OutputMessageUtil.Output output = OutputMessageUtil.parseOutputMessage(text);
if (output != null) {
collector.add(output.sourceFiles, output.outputFile);
}
}
private static int safeParseInt(@Nullable String value, int defaultValue) {
if (value == null) {
return defaultValue;
@@ -16,9 +16,14 @@
package org.jetbrains.jet.compiler.runner;
import java.io.File;
import java.util.Collection;
/**
* @author abreslav
*/
public interface OutputItemsCollector {
@Deprecated
void learn(String message);
void add(Collection<File> sourceFiles, File outputFile);
}