@Override public String prettyPrint(int depth, int indent) { String result = ""; String ind = OExecutionStepInternal.getIndent(depth, indent); int[] blockSizes = new int[subPlans.size()]; for (int i = 0; i < subPlans.size(); i++) { OInternalExecutionPlan currentPlan = subPlans.get(subPlans.size() - 1 - i); String partial = currentPlan.prettyPrint(0, indent); String[] partials = partial.split("\n"); blockSizes[subPlans.size() - 1 - i] = partials.length + 2; result = "+-------------------------\n" + result; for (int j = 0; j < partials.length; j++) { String p = partials[partials.length - 1 - j]; if (result.length() > 0) { result = appendPipe(p) + "\n" + result; } else { result = appendPipe(p); } } result = "+-------------------------\n" + result; } result = addArrows(result, blockSizes); result += foot(blockSizes); result = ind + result; result = result.replaceAll("\n", "\n" + ind); result = head(depth, indent, subPlans.size()) + "\n" + result; return result; }