package net.sourceforge.pmd.eclipse.ui; import java.util.ArrayList; import java.util.Collections; import java.util.List; import net.sourceforge.pmd.util.StringUtil; /** * * @author Brian Remedios */ public class StringArranger { private String indentString; private static final char CR = '\n'; public StringArranger(String theIndent) { indentString = theIndent; } public String withIndent(String rawText) { return indentString + rawText; } public StringBuilder format(String rawText) { StringBuilder sb = new StringBuilder(); for (String line : trimmedLinesIn(rawText)) { sb.append(indentString); sb.append(line).append(CR); } return sb; } public List<String> trimmedLinesIn(String text) { String[] lines = text.split("\n"); if (lines.length < 1) return Collections.emptyList(); List<String> lineSet = new ArrayList<String>(lines.length); int startLine = 0; while (startLine < lines.length && StringUtil.isEmpty(lines[startLine])) startLine++; int endLine = lines.length-1; while (endLine >= 0 && StringUtil.isEmpty(lines[endLine])) endLine--; for (int i=startLine; i<=endLine; i++) { lineSet.add( lines[i].trim() ); } return lineSet; } }