]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/reporting/SCLReportingHandler.java
Merge commit 'a2a4242'
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / reporting / SCLReportingHandler.java
1 package org.simantics.scl.runtime.reporting;
2
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
5
6 /**
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}.
10  * 
11  * <p>A convenient way to call the methods of this interface in 
12  * arbitrary evaluation context is to use class {@link SCLReporting}
13  * 
14  * @author Hannu Niemist&ouml;
15  */
16 public interface SCLReportingHandler {
17     public static final Logger LOGGER = LoggerFactory.getLogger(SCLReportingHandler.class);
18     public static final String REPORTING_HANDLER = "reportingHandler";
19     
20     public void print(String text);
21     public void printError(String error);
22     public void printCommand(String command);
23     public void didWork(double amount);
24
25     public static final SCLReportingHandler DEFAULT = new AbstractSCLReportingHandler() {
26         @Override
27         public void print(String text) {
28             LOGGER.info(text);
29         }
30
31         @Override
32         public void printError(String error) {
33             LOGGER.error(error);
34         }
35     };
36     
37     public static final SCLReportingHandler DEFAULT_WITHOUT_ECHO = new AbstractSCLReportingHandler() {
38         @Override
39         public void print(String text) {
40             LOGGER.info(text);
41         }
42
43         @Override
44         public void printError(String error) {
45             LOGGER.error(error);
46         }
47
48         @Override
49         public void printCommand(String command) {
50         }
51     };
52     
53     public static final SCLReportingHandler SYSOUT = new AbstractSCLReportingHandler() {
54         @Override
55         public void print(String text) {
56             System.out.println(text);
57         }
58
59         @Override
60         public void printError(String error) {
61             System.err.println(error);
62         }
63     };
64     
65     public static final SCLReportingHandler SYSOUT_WITHOUT_ECHO = new AbstractSCLReportingHandler() {
66         @Override
67         public void print(String text) {
68             System.out.println(text);
69         }
70
71         @Override
72         public void printError(String error) {
73             System.err.println(error);
74         }
75
76         @Override
77         public void printCommand(String command) {
78         }
79     };
80 }