jtulach@61: jtulach@61: package org.apidesign.delegatingwriter; jtulach@61: jtulach@61: import java.io.IOException; jtulach@61: import java.io.Writer; jtulach@61: jtulach@61: // BEGIN: writer.CountingWriter jtulach@61: /** Writer that counts the number of written in characters. jtulach@61: */ jtulach@61: public class CountingWriter extends Writer { jtulach@61: private int counter; jtulach@61: jtulach@61: jtulach@61: public int getCharacterCount() { jtulach@61: return counter; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void write(char[] cbuf, int off, int len) throws IOException { jtulach@61: counter += len; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public Writer append(CharSequence csq) throws IOException { jtulach@61: counter += csq.length(); jtulach@61: return this; jtulach@61: } jtulach@181: // FINISH: writer.CountingWriter jtulach@61: jtulach@61: @Override jtulach@61: public Writer append(CharSequence csq, int start, int end) throws IOException { jtulach@61: counter += (end - start); jtulach@61: return this; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public Writer append(char c) throws IOException { jtulach@61: counter++; jtulach@61: return this; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void write(int c) throws IOException { jtulach@61: counter++; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void write(char[] cbuf) throws IOException { jtulach@61: counter += cbuf.length; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void write(String str) throws IOException { jtulach@61: counter += str.length(); jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void write(String str, int off, int len) throws IOException { jtulach@61: counter += len; jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void flush() throws IOException { jtulach@61: } jtulach@61: jtulach@61: @Override jtulach@61: public void close() throws IOException { jtulach@61: } jtulach@61: jtulach@61: }