public static String getTocPrefix(TocOptions options, TocOptions defaultOptions) { DelimitedBuilder out = new DelimitedBuilder(" "); out.append("[TOC").mark(); TocOptionsParser optionsParser = new TocOptionsParser(); out.append(optionsParser.getOptionText(options, defaultOptions)); out.unmark().append("]"); out.append("\n").unmark(); return out.toString(); }
public String getAndClear() { if (delimiterStack != null && !delimiterStack.isEmpty()) throw new IllegalStateException("Delimiter stack is not empty"); String result = out == null ? "" : out.toString(); clear(); return result; }
@Override public String getOptionText(TocOptions options, TocOptions defaultOptions) { if (defaultOptions == null || options.levels != defaultOptions.levels) { DelimitedBuilder out = new DelimitedBuilder(); out.append("levels="); out.append(fixedLevels).mark(); } else { out.push(","); if (lastBit + 1 != i) { if (firstBit != lastBit) { if (firstBit + 1 == lastBit) out.append(firstBit).mark().append(lastBit).mark(); else out.append(firstBit).append('-').append(lastBit).mark(); } else { out.append(firstBit).mark(); if (firstBit == 2) out.append(lastBit).mark(); else if (firstBit + 1 == lastBit) out.append(firstBit).mark().append(lastBit).mark(); else out.append(firstBit).append('-').append(lastBit).mark(); } else { out.append(firstBit).mark(); out.pop().mark(); return out.toString();
if (!trimmed.isEmpty()) { BasedSequence[] optionsList = trimmed.split(',', 0, BasedSequence.SPLIT_TRIM_SKIP_EMPTY); DelimitedBuilder out = new DelimitedBuilder(", "); optionsText = out.appendAll(optionsList).getAndClear();
public <V> DelimitedBuilder appendAll(String delimiter, V[] v) { return appendAll(delimiter, v, 0, v.length); }
public DelimitedBuilder clear() { out = null; unmark(); return this; }
public DelimitedBuilder push() { return push(delimiter); }
@Override public String getOptionText(TocOptions options, TocOptions defaultOptions) { if (defaultOptions == null || options.levels != defaultOptions.levels) { DelimitedBuilder out = new DelimitedBuilder(); out.append("levels="); out.append(fixedLevels).mark(); } else { out.push(","); if (lastBit + 1 != i) { if (firstBit != lastBit) { if (firstBit + 1 == lastBit) out.append(firstBit).mark().append(lastBit).mark(); else out.append(firstBit).append('-').append(lastBit).mark(); } else { out.append(firstBit).mark(); if (firstBit == 2) out.append(lastBit).mark(); else if (firstBit + 1 == lastBit) out.append(firstBit).mark().append(lastBit).mark(); else out.append(firstBit).append('-').append(lastBit).mark(); } else { out.append(firstBit).mark(); out.pop().mark(); return out.toString();
if (!trimmed.isEmpty()) { BasedSequence[] optionsList = trimmed.split(',', 0, BasedSequence.SPLIT_TRIM_SKIP_EMPTY); DelimitedBuilder out = new DelimitedBuilder(", "); optionsText = out.appendAll(optionsList).getAndClear();
public <V> DelimitedBuilder appendAll(V[] v) { return appendAll(v, 0, v.length); }
public DelimitedBuilder push(String delimiter) { unmark(); if (delimiterStack == null) delimiterStack = new Stack<String>(); delimiterStack.push(this.delimiter); this.delimiter = delimiter; return this; }
public DelimitedBuilder push() { return push(delimiter); }
@Override public String getOptionText(T options, T defaultOptions) { DelimitedBuilder out = new DelimitedBuilder(String.valueOf(myOptionDelimiter)); for (OptionParser<T> parsableOption : myParsableOptions) { String text = parsableOption.getOptionText(options, defaultOptions).trim(); if (!text.isEmpty()) out.append(text).mark(); } return out.toString(); } }
public <V> DelimitedBuilder appendAll(List<? extends V> v) { return appendAll(v, 0, v.size()); }
public DelimitedBuilder clear() { out = null; unmark(); return this; }