1 package org
.asamk
.signal
;
3 import org
.slf4j
.helpers
.MessageFormatter
;
5 import java
.io
.BufferedWriter
;
6 import java
.io
.IOException
;
7 import java
.io
.OutputStream
;
8 import java
.io
.OutputStreamWriter
;
11 public final class PlainTextWriterImpl
implements PlainTextWriter
{
13 private final Writer writer
;
15 private PlainTextWriter indentedWriter
;
17 public PlainTextWriterImpl(final OutputStream outputStream
) {
18 this.writer
= new BufferedWriter(new OutputStreamWriter(outputStream
));
22 public void println(String format
, Object
... args
) throws IOException
{
23 final String message
= MessageFormatter
.arrayFormat(format
, args
).getMessage();
25 writer
.write(message
);
26 writer
.write(System
.lineSeparator());
31 public PlainTextWriter
indentedWriter() {
32 if (indentedWriter
== null) {
33 indentedWriter
= new IndentedPlainTextWriter(this, writer
);
35 return indentedWriter
;
38 private static final class IndentedPlainTextWriter
implements PlainTextWriter
{
40 private final static int INDENTATION
= 2;
42 private final String spaces
= " ".repeat(INDENTATION
);
43 private final PlainTextWriter plainTextWriter
;
44 private final Writer writer
;
46 private PlainTextWriter indentedWriter
;
48 private IndentedPlainTextWriter(final PlainTextWriter plainTextWriter
, final Writer writer
) {
49 this.plainTextWriter
= plainTextWriter
;
54 public void println(final String format
, final Object
... args
) throws IOException
{
56 plainTextWriter
.println(format
, args
);
60 public PlainTextWriter
indentedWriter() {
61 if (indentedWriter
== null) {
62 indentedWriter
= new IndentedPlainTextWriter(this, writer
);
64 return indentedWriter
;