protected String getContents(Predicate<String> subpathsToInclude) throws IOException { TreeDef<File> treeDef = TreeDef.forFile(Errors.rethrow()); List<File> files = TreeStream.depthFirst(treeDef, rootFolder()) .filter(File::isFile) .collect(Collectors.toList()); ListIterator<File> iterator = files.listIterator(files.size()); int rootLength = rootFolder().getAbsolutePath().length() + 1; return StringPrinter.buildString(printer -> Errors.rethrow().run(() -> { while (iterator.hasPrevious()) { File file = iterator.previous(); String subPath = file.getAbsolutePath().substring(rootLength); if (subpathsToInclude.test(subPath)) { printer.println("### " + subPath + " ###"); printer.println(read(subPath)); } } })); }
static String buildResultToString(BuildResult result) { return StringPrinter.buildString(printer -> { for (BuildTask task : result.getTasks()) { printer.println(task.getPath() + " " + task.getOutcome()); } }); } }
/** * Prints the given string to the the given printer, wrapped in hierarchy-friendly * braces. Useful for emphasizing a specific event from a sea of logging statements. */ private static void printEmphasized(String toPrint) { // print the triggered header pristineSysErr.println("+----------\\"); for (String line : toPrint.split("\n")) { pristineSysErr.println("| " + line); } pristineSysErr.println("+----------/"); } }
/** * Prints the given string to the the given printer, wrapped in hierarchy-friendly * braces. Useful for emphasizing a specific event from a sea of logging statements. */ private static void printEmphasized(String toPrint) { // print the triggered header pristineSysErr.println("+----------\\"); for (String line : toPrint.split("\n")) { pristineSysErr.println("| " + line); } pristineSysErr.println("+----------/"); } }
/** * Passes each field and getter of {@code obj} to {@code evalPredicate}, grabs its value if it passes, and if the value passes {@code dumpPredicate} then it is dumped to {@code printer}. * @see #fieldsAndGetters(Object, Predicate) */ public static void dumpIf(String name, Object obj, Predicate<String> evalPredicate, Predicate<Map.Entry<String, Object>> dumpPredicate, StringPrinter printer) { printer.println(name + ": " + obj.getClass().getName()); fieldsAndGetters(obj, evalPredicate).filter(dumpPredicate).forEach(entry -> { printer.println("\t" + entry.getKey() + " = " + entry.getValue()); }); }
private String orderConstraintsAsString() { return StringPrinter.buildString(printer -> { for (ConstrainedEntry<T, ID> entry : values) { entry.constraints.before.forEach(before -> printer.println(entry.id + " must be before " + before)); entry.constraints.after.forEach(after -> printer.println(entry.id + " must be after " + after)); } }); }
/** * Passes each field and getter of {@code obj} to {@code evalPredicate}, grabs its value if it passes, and if the value passes {@code dumpPredicate} then it is dumped to {@code printer}. * @see #fieldsAndGetters(Object, Predicate) */ public static void dumpIf(String name, Object obj, Predicate<String> evalPredicate, Predicate<Map.Entry<String, Object>> dumpPredicate, StringPrinter printer) { printer.println(name + ": " + obj.getClass().getName()); fieldsAndGetters(obj, evalPredicate).filter(dumpPredicate).forEach(entry -> { printer.println("\t" + entry.getKey() + " = " + entry.getValue()); }); }
int start = productMatcher.start(1); int end = productMatcher.end(1); printer.println(line.substring(0, start) + version + line.substring(end)); return; printer.println(line); return; printer.println(pluginMatcher.group(1) + PLUGIN_PREFIX + pluginName + PLUGIN_MIDDLE + " version=\"" + pluginVersion + "\"" + pluginMatcher.group(3) + PLUGIN_SUFFIX);
to.println(name + ": " + eventType(e)); to.println("\t" + entry.getKey().getName() + " = " + entry.getValue()); }); to.println("\tnull = " + fields(e) .filter(entry -> entry.getValue() == null) .map(entry -> entry.getKey().getName()) .collect(Collectors.joining(", "))); to.println("\t0 = " + fields(e) .filter(entry -> { if (entry.getValue() instanceof Number) {
@Override public String toString() { return StringPrinter.buildString(printer -> { map.forEach((key, value) -> { printer.println(key + ": " + value); }); }); } }
/** Dumps the given message and exception stack to the system error console */ public static void dump(String message, Throwable exception) { printEmphasized(StringPrinter.buildString(printer -> { printer.println(message); exception.printStackTrace(printer.toPrintWriter()); })); }
/** Dumps the given message and exception stack to the system error console */ public static void dump(String message, Throwable exception) { printEmphasized(StringPrinter.buildString(printer -> { printer.println(message); exception.printStackTrace(printer.toPrintWriter()); })); }
private void needsBoth(Composite parent) { Layouts.setFill(parent); Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.WRAP); text.setFont(Fonts.systemLarge()); text.setText(StringPrinter.buildString(printer -> { try { printer.println("Calling NeedsBoth.parse..."); printer.println("parse MAVEN: " + NeedsBoth.parse("MAVEN")); printer.println("parse P2: " + NeedsBoth.parse("P2")); } catch (Throwable e) { e.printStackTrace(printer.toPrintWriter()); } })); } }
@Override public String toString() { return StringPrinter.buildString(printer -> { BiConsumer<String, Set<String>> add = (name, set) -> { for (String element : set) { printer.print(name); printer.print(": "); printer.print(element); printer.println(""); } }; add.accept("repo", repos); add.accept("metadataRepo", metadataRepos); add.accept("artifactRepo", artifactRepos); add.accept("ius", ius); printer.print("append: " + append); }); }
/** Converts a list of stack trace elements to a String similar to Throwable.printStackTrace(). */ private static String stackTraceToString(List<StackTraceElement> stack) { return StringPrinter.buildString(printer -> { for (StackTraceElement element : stack) { printer.print("at "); printer.print(element.getClassName()); printer.print("."); printer.print(element.getMethodName()); printer.print("("); printer.print(element.getFileName()); printer.print(":"); printer.print(Integer.toString(element.getLineNumber())); printer.println(")"); } }); }
/** Converts a list of stack trace elements to a String similar to Throwable.printStackTrace(). */ private static String stackTraceToString(List<StackTraceElement> stack) { return StringPrinter.buildString(printer -> { for (StackTraceElement element : stack) { printer.print("at "); printer.print(element.getClassName()); printer.print("."); printer.print(element.getMethodName()); printer.print("("); printer.print(element.getFileName()); printer.print(":"); printer.print(Integer.toString(element.getLineNumber())); printer.println(")"); } }); }
protected String getContents(Predicate<String> subpathsToInclude) throws IOException { TreeDef<File> treeDef = TreeDef.forFile(Errors.rethrow()); List<File> files = TreeStream.depthFirst(treeDef, folder.getRoot()) .filter(file -> file.isFile()) .collect(Collectors.toList()); ListIterator<File> iterator = files.listIterator(files.size()); int rootLength = folder.getRoot().getAbsolutePath().length() + 1; return StringPrinter.buildString(printer -> { Errors.rethrow().run(() -> { while (iterator.hasPrevious()) { File file = iterator.previous(); String subPath = file.getAbsolutePath().substring(rootLength); if (subpathsToInclude.test(subPath)) { printer.println("### " + subPath + " ###"); printer.println(read(subPath)); } } }); }); }
public static String computeDiff(String before, String after) { diff_match_patch differ = new diff_match_patch(); LinkedList<diff_match_patch.Diff> diffs = differ.diff_main(before, after); differ.diff_cleanupEfficiency(diffs); differ.diff_cleanupSemantic(diffs); return StringPrinter.buildString(printer -> { for (diff_match_patch.Diff diff : diffs) { switch (diff.operation) { case EQUAL: // do nothing break; case DELETE: case INSERT: printer.println(diff.operation.name()); printer.println(FileMisc.toUnixNewline(diff.text)); break; default: throw Unhandled.enumException(diff.operation); } } }); } }