1 package org
.asamk
.signal
.output
;
3 import org
.slf4j
.helpers
.MessageFormatter
;
5 import java
.io
.IOException
;
8 public final class PlainTextWriterImpl
implements PlainTextWriter
{
10 private final Writer writer
;
12 private PlainTextWriter indentedWriter
;
14 public PlainTextWriterImpl(final Writer writer
) {
19 public void println(String format
, Object
... args
) {
20 final var message
= MessageFormatter
.arrayFormat(format
, args
).getMessage();
23 writer
.write(message
);
24 writer
.write(System
.lineSeparator());
26 } catch (IOException e
) {
27 throw new AssertionError(e
);
32 public PlainTextWriter
indentedWriter() {
33 if (indentedWriter
== null) {
34 indentedWriter
= new IndentedPlainTextWriter(this, writer
);
36 return indentedWriter
;
39 private static final class IndentedPlainTextWriter
implements PlainTextWriter
{
41 private static final int INDENTATION
= 2;
43 private final String spaces
= " ".repeat(INDENTATION
);
44 private final PlainTextWriter plainTextWriter
;
45 private final Writer writer
;
47 private PlainTextWriter indentedWriter
;
49 private IndentedPlainTextWriter(final PlainTextWriter plainTextWriter
, final Writer writer
) {
50 this.plainTextWriter
= plainTextWriter
;
55 public void println(final String format
, final Object
... args
) {
58 } catch (IOException e
) {
59 throw new AssertionError(e
);
61 plainTextWriter
.println(format
, args
);
65 public PlainTextWriter
indentedWriter() {
66 if (indentedWriter
== null) {
67 indentedWriter
= new IndentedPlainTextWriter(this, writer
);
69 return indentedWriter
;