package eu.bibl.cfide.engine.decompiler; public class PrefixedStringBuilder { protected StringBuilder sb; protected String prefix; public PrefixedStringBuilder() { sb = new StringBuilder(); } public PrefixedStringBuilder append(String s) { sb.append(s); if ((s != null) && s.contains("\n") && (prefix != null) && (prefix.length() > 0))// insert the prefix at every new line, overridable sb.append(prefix); return this; } public PrefixedStringBuilder append(Object o) { if (o == null) { sb.append("null"); return this; } return append(o.toString()); } public void setPrefix(String prefix) { this.prefix = prefix; } public void trimPrefix(int amount) { if (prefix == null) return; if (prefix.length() < amount) return; prefix = prefix.substring(0, prefix.length() - amount); } public void appendPrefix(String s) { if (prefix == null) prefix = ""; prefix += s; } public String getPrefix() { return prefix; } @Override public String toString() { return sb.toString(); } }