/** * Generates a new line. */ public PrinterHelper writeln() { write(lineSeparator); return this; }
printer.write(DefaultJavaPrettyPrinter.JAVADOC_START).writeln(); break; case JAVADOC: printer.write(DefaultJavaPrettyPrinter.JAVADOC_START).writeln(); break; case INLINE: printer.write(DefaultJavaPrettyPrinter.INLINE_COMMENT_START); break; case BLOCK: printer.write(DefaultJavaPrettyPrinter.BLOCK_COMMENT_START); break; printer.write(content); break; default: printer.write(DefaultJavaPrettyPrinter.BLOCK_COMMENT_END); break; case FILE: printer.write(DefaultJavaPrettyPrinter.BLOCK_COMMENT_END); break; case JAVADOC: printer.write(DefaultJavaPrettyPrinter.BLOCK_COMMENT_END); break;
static void printCommentContent(PrinterHelper printer, CtComment comment, Function<String, String> transfo) { CtComment.CommentType commentType = comment.getCommentType(); String content = comment.getContent(); String[] lines = LINE_SEPARATORS_RE.split(content); for (String com : lines) { if (commentType == CtComment.CommentType.BLOCK) { printer.write(com); if (lines.length > 1) { printer.write(CtComment.LINE_SEPARATOR); } } else { printer.write(transfo.apply(com)).writeln(); // removing spaces at the end of the space } } if (comment instanceof CtJavaDoc) { List<CtJavaDocTag> tags = null; Collection<CtJavaDocTag> javaDocTags = ((CtJavaDoc) comment).getTags(); if (javaDocTags != null && javaDocTags.isEmpty() == false) { printer.write(transfo.apply("")).writeln(); for (CtJavaDocTag docTag : javaDocTags) { printJavaDocTag(printer, docTag, transfo); } } } }
@Override public DefaultTokenWriter writeCodeSnippet(String token) { printerHelper.write(token); return this; }
static void printJavaDocTag(PrinterHelper printer, CtJavaDocTag docTag, Function<String, String> transfo) { printer.write(transfo.apply(CtJavaDocTag.JAVADOC_TAG_PREFIX)); printer.write(docTag.getType().name().toLowerCase()); printer.write(" "); if (docTag.getType().hasParam()) { printer.write(docTag.getParam()).writeln(); } String[] tagLines = LINE_SEPARATORS_RE.split(docTag.getContent()); for (int i = 0; i < tagLines.length; i++) { String com = tagLines[i]; if (docTag.getType().hasParam()) { printer.write(transfo.apply("\t\t")); } printer.write(com.trim()).writeln(); } } }
@Override public DefaultTokenWriter writeOperator(String token) { printerHelper.write(token); return this; }
private String getSubstitutionRequestsDescription(CtElement ele, List<ParamOnElement> requestsOnPos) { //sort requestsOnPos by their path Map<String, ParamOnElement> reqByPath = new TreeMap<>(); StringBuilder sb = new StringBuilder(); for (ParamOnElement reqPos : requestsOnPos) { sb.setLength(0); appendPathIn(sb, reqPos.sourceElement, ele); if (reqPos.role != null) { sb.append("/").append(reqPos.role.getCamelCaseName()); } String path = sb.toString(); reqByPath.put(path, reqPos); } PrinterHelper printer = new PrinterHelper(getFactory().getEnvironment()); //all comments in Spoon are using \n as separator printer.setLineSeparator("\n"); printer.write(getElementTypeName(ele)).incTab(); for (Map.Entry<String, ParamOnElement> e : reqByPath.entrySet()) { printer.writeln(); printer.write(e.getKey()).write('/'); printer.write(" <= ").write(e.getValue().node.toString()); } return printer.toString(); }
@Override public DefaultTokenWriter writeKeyword(String token) { printerHelper.write(token); return this; }
@Override public DefaultTokenWriter writeIdentifier(String token) { printerHelper.write(token); return this; }
/** writes a space ' ' */ public void writeSpace() { this.write(' '); } }
@Override public DefaultTokenWriter writeSeparator(String token) { printerHelper.write(token); return this; }
@Override public DefaultTokenWriter writeLiteral(String token) { printerHelper.write(token); return this; }
/** * Outputs a string. */ public PrinterHelper write(String s) { if (s != null) { int len = s.length(); for (int i = 0; i < len; i++) { write(s.charAt(i)); } } return this; }
@Override public <T> void visitCtExecutableReference(CtExecutableReference<T> reference) { //it is not called during printing of sources. Use shortcut and print directly to PrinterHelper printer.getPrinterHelper().write(reference.getSignature()); }