
com.github.dakusui.cmd.io.RingBufferedLineWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of commandrunner Show documentation
Show all versions of commandrunner Show documentation
Command line runner library for Java
package com.github.dakusui.cmd.io;
public class RingBufferedLineWriter implements LineWriter {
private String[] ringBuffer;
private int next;
public RingBufferedLineWriter(int size) {
if (size <= 0) throw new IllegalArgumentException(String.format("size must be greater than 0. (%d)", size));
this.ringBuffer = new String[size];
this.next = 0;
}
@Override
public void write(String line) {
this.ringBuffer[this.next] = line;
this.next = (this.next + 1) % this.ringBuffer.length;
}
public String asString() {
StringBuffer b = new StringBuffer();
for (int i = 0; i < ringBuffer.length; i++) {
String s = ringBuffer[(this.next + i) % ringBuffer.length];
if (s != null) {
b.append(s);
////
// Elements but the last one are followed by '\n'.
if (i != ringBuffer.length -1) b.append("\n");
}
}
return b.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy