package com.yoursway.common;
/**
* This class is an equivalent to the Perl's join($delimiter, \@args);
*/
public class StringListBuilder {
public static final String SPACE = " ";
public static final String COMMA = ",";
public static final String COMMA_SPACE = ", ";
private final StringBuilder builder = new StringBuilder();
private final String delimiter;
public StringListBuilder(String delimiter) {
this.delimiter = delimiter;
}
public StringListBuilder append(char[] str, int offset, int len) {
autoAppendDelimiter();
builder.append(str, offset, len);
return this;
}
public StringListBuilder append(CharSequence s, int start, int end) {
autoAppendDelimiter();
builder.append(s, start, end);
return this;
}
public <T> StringListBuilder append(T arg) {
autoAppendDelimiter();
builder.append(arg);
return this;
}
private void autoAppendDelimiter() {
if (builder.length() > 0)
builder.append(delimiter);
}
public StringBuilder getBuilder() {
return builder;
}
@Override
public String toString() {
return builder.toString();
}
}