1 package org.simantics.scl.runtime.reporting;
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
7 * <p>An interface that is used to handle printing commands from SCL
8 * such as Prelude.print. This interface is typically stored to
9 * SCLContext with name {@link SCLReportingHandler#REPORTING_HANDLER}.
11 * <p>A convenient way to call the methods of this interface in
12 * arbitrary evaluation context is to use class {@link SCLReporting}
14 * @author Hannu Niemistö
16 public interface SCLReportingHandler {
17 public static final Logger LOGGER = LoggerFactory.getLogger(SCLReportingHandler.class);
18 public static final String REPORTING_HANDLER = "reportingHandler";
20 public void print(String text);
21 public void printError(String error);
22 public void printCommand(String command);
23 public void didWork(double amount);
25 public static final SCLReportingHandler DEFAULT = new AbstractSCLReportingHandler() {
27 public void print(String text) {
32 public void printError(String error) {
37 public static final SCLReportingHandler DEFAULT_WITHOUT_ECHO = new AbstractSCLReportingHandler() {
39 public void print(String text) {
44 public void printError(String error) {
49 public void printCommand(String command) {
53 public static final SCLReportingHandler SYSOUT = new AbstractSCLReportingHandler() {
55 public void print(String text) {
56 System.out.println(text);
60 public void printError(String error) {
65 public static final SCLReportingHandler SYSOUT_WITHOUT_ECHO = new AbstractSCLReportingHandler() {
67 public void print(String text) {
68 System.out.println(text);
72 public void printError(String error) {
77 public void printCommand(String command) {