default Writer asWriter()

in apache-rat-core/src/main/java/org/apache/rat/utils/Log.java [199:233]


    default Writer asWriter(Level level) {
        return new Writer() {
            private StringBuilder sb = new StringBuilder();

            @Override
            public void write(final char[] cbuf, final int off, final int len) {
                String txt = String.copyValueOf(cbuf, off, len);
                int pos = txt.indexOf(System.lineSeparator());
                if (pos == -1) {
                    sb.append(txt);
                } else {
                    while (pos > -1) {
                        Log.this.log(level, sb.append(txt, 0, pos).toString());
                        sb.delete(0, sb.length());
                        txt = txt.substring(pos + 1);
                        pos = txt.indexOf(System.lineSeparator());
                    }
                    sb.append(txt);
                }
            }

            @Override
            public void flush() {
                if (sb.length() > 0) {
                    Log.this.log(level, sb.toString());
                }
                sb = new StringBuilder();
            }

            @Override
            public void close() {
                flush();
            }
        };
    }