jtulach@66: jtulach@66: package api.usage.twodotzero; jtulach@66: jtulach@66: import api.Writer; jtulach@66: import java.io.IOException; jtulach@66: import java.util.concurrent.atomic.AtomicInteger; jtulach@66: jtulach@66: /** Writer that counts the number of written in characters. jtulach@66: */ jtulach@66: public class CountingWriter implements Writer.ImplSeq { jtulach@66: private final AtomicInteger counter; jtulach@66: jtulach@66: private CountingWriter(AtomicInteger counter) { jtulach@66: this.counter = counter; jtulach@66: } jtulach@66: jtulach@66: public static Writer create(AtomicInteger result) { jtulach@66: return Writer.create(new CountingWriter(result)); jtulach@66: } jtulach@66: jtulach@66: @Override jtulach@66: public void write(CharSequence csq) throws IOException { jtulach@66: counter.addAndGet(csq.length()); jtulach@66: } jtulach@66: jtulach@66: @Override jtulach@66: public void flush() throws IOException { jtulach@66: } jtulach@66: jtulach@66: @Override jtulach@66: public void close() throws IOException { jtulach@66: } jtulach@66: jtulach@66: }