package com.digiarea.closurefx.cli.console;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.List;
import com.digiarea.closurefx.build.validation.IStatus;
import com.digiarea.closurefx.build.validation.IStatus.StatusType;
import com.digiarea.closurefx.build.validation.IStatusFormatter;
public class PrintStreamConsole extends AbstractCliConsole {
private PrintStream errorStream;
private PrintStream messageStream;
private boolean isLazy = false;
public PrintStreamConsole(PrintStream errorStream,
PrintStream messageStream, IStatusFormatter formatter) {
super(new HashMap<StatusType, List<IStatus>>(), formatter);
this.errorStream = errorStream;
this.messageStream = messageStream;
}
public void reportMessage(IStatus status) {
switch (status.getSeverity()) {
case CANCEL:
case NO:
case DEFAULT:
case ERROR:
errorStream.println(formatter.format(status));
break;
case WARNING:
case INFO:
case OFF:
case OK:
messageStream.println(formatter.format(status));
break;
}
}
@Override
public void generateReport() {
for (StatusType type : errors.keySet()) {
List<IStatus> status = errors.get(type);
for (IStatus iStatus : status) {
reportMessage(iStatus);
}
}
}
public void setLazy(boolean isLazy) {
this.isLazy = isLazy;
}
public boolean isLazy() {
return isLazy;
}
}