11package com .annimon .ownlang ;
22
33import com .annimon .ownlang .lib .CallStack ;
4+ import com .annimon .ownlang .outputsettings .ConsoleOutputSettings ;
5+ import com .annimon .ownlang .outputsettings .OutputSettings ;
46import java .io .ByteArrayOutputStream ;
57import java .io .File ;
68import java .io .PrintStream ;
911public class Console {
1012
1113 private Console () { }
14+
15+ private static OutputSettings outputSettings = new ConsoleOutputSettings ();
1216
13- private static final String FILE_PREFIX = "tmp/" ;
14- private static boolean filePrefixEnabled ;
17+ public static void useSettings (OutputSettings outputSettings ) {
18+ Console .outputSettings = outputSettings ;
19+ }
1520
16- public static void enableFilePrefix () {
17- Console . filePrefixEnabled = true ;
21+ public static OutputSettings getSettings () {
22+ return outputSettings ;
1823 }
1924
2025 public static String newline () {
21- return System . lineSeparator ();
26+ return outputSettings . newline ();
2227 }
2328
2429 public static void print (String value ) {
25- System . out .print (value );
30+ outputSettings .print (value );
2631 }
2732
2833 public static void print (Object value ) {
29- print (value . toString () );
34+ outputSettings . print (value );
3035 }
3136
3237 public static void println () {
33- System . out .println ();
38+ outputSettings .println ();
3439 }
3540
3641 public static void println (String value ) {
37- System . out .println (value );
42+ outputSettings .println (value );
3843 }
3944
4045 public static void println (Object value ) {
41- println (value .toString ());
46+ outputSettings .println (value );
47+ }
48+
49+ public static String text () {
50+ return outputSettings .getText ();
4251 }
4352
4453 public static void error (Throwable throwable ) {
45- error (throwable . toString () );
54+ outputSettings . error (throwable );
4655 }
4756
4857 public static void error (CharSequence value ) {
49- System . err . println (value );
58+ outputSettings . error (value );
5059 }
5160
5261 public static void handleException (Thread thread , Throwable throwable ) {
@@ -68,14 +77,6 @@ public static void handleException(Thread thread, Throwable throwable) {
6877 }
6978
7079 public static File fileInstance (String path ) {
71- final String filepath ;
72- if (filePrefixEnabled ) {
73- filepath = FILE_PREFIX .concat (path );
74- } else {
75- filepath = path ;
76- }
77- return new File (filepath );
80+ return outputSettings .fileInstance (path );
7881 }
79-
80-
8182}
0 commit comments