@Override public void close() { if (endPrefixSpace) { printerTokenWriter.writeSpace(); } if (end != null && !end.isEmpty()) { printerTokenWriter.writeSeparator(end); } } }
@Override public TokenWriter writeSpace() { this.listener.onTokenWriterWrite(TokenType.SPACE, " ", null, () -> delegate.writeSpace()); return this; } }
public void writeExtendsClause(CtType<?> type) { if (type.getSuperclass() != null) { printer.writeSpace().writeKeyword("extends").writeSpace(); prettyPrinter.scan(type.getSuperclass()); } }
@Override public <T> void visitCtAssert(CtAssert<T> asserted) { enterCtStatement(asserted); printer.writeKeyword("assert").writeSpace(); scan(asserted.getAssertExpression()); if (asserted.getExpression() != null) { printer.writeSpace().writeSeparator(":").writeSpace(); scan(asserted.getExpression()); } exitCtStatement(asserted); }
@Override public void visitCtForEach(CtForEach foreach) { enterCtStatement(foreach); printer.writeKeyword("for").writeSpace().writeSeparator("("); scan(foreach.getVariable()); printer.writeSpace().writeSeparator(":").writeSpace(); scan(foreach.getExpression()); printer.writeSeparator(")"); elementPrinterHelper.writeIfOrLoopBlock(foreach.getBody()); exitCtStatement(foreach); }
@Override public <T, A extends T> void visitCtAssignment(CtAssignment<T, A> assignement) { enterCtStatement(assignement); enterCtExpression(assignement); scan(assignement.getAssigned()); printer.writeSpace().writeOperator("=").writeSpace(); scan(assignement.getAssignment()); exitCtExpression(assignement); exitCtStatement(assignement); }
@Override public void visitCtTypeParameter(CtTypeParameter typeParameter) { elementPrinterHelper.writeAnnotations(typeParameter); printer.writeIdentifier(typeParameter.getSimpleName()); if (typeParameter.getSuperclass() != null && typeParameter.getSuperclass().isImplicit() == false) { printer.writeSpace().writeKeyword("extends").writeSpace(); scan(typeParameter.getSuperclass()); } }
@Override public void visitCtDo(CtDo doLoop) { enterCtStatement(doLoop); printer.writeKeyword("do"); elementPrinterHelper.writeIfOrLoopBlock(doLoop.getBody()); printer.writeKeyword("while").writeSpace().writeSeparator("("); scan(doLoop.getLoopingExpression()); printer.writeSpace().writeSeparator(")"); exitCtStatement(doLoop); }
@Override public void visitCtUsedService(CtUsedService usedService) { printer.writeKeyword("uses").writeSpace(); scan(usedService.getServiceType()); printer.writeSeparator(";").writeln(); }
@Override public void visitCtThrow(CtThrow throwStatement) { enterCtStatement(throwStatement); printer.writeKeyword("throw").writeSpace(); scan(throwStatement.getThrownExpression()); exitCtStatement(throwStatement); }
@Override public void visitCtModuleRequirement(CtModuleRequirement moduleRequirement) { printer.writeKeyword("requires").writeSpace(); if (!moduleRequirement.getRequiresModifiers().isEmpty()) { this.elementPrinterHelper.printList(moduleRequirement.getRequiresModifiers(), null, false, null, false, false, " ", false, false, " ", modifier -> printer.writeKeyword(modifier.name().toLowerCase())); } scan(moduleRequirement.getModuleReference()); printer.writeSeparator(";").writeln(); }
@Override public <T, A extends T> void visitCtOperatorAssignment(CtOperatorAssignment<T, A> assignment) { enterCtStatement(assignment); enterCtExpression(assignment); scan(assignment.getAssigned()); printer.writeSpace(); // the operators like +=, *= are sent as one operator token printer.writeOperator(OperatorHelper.getOperatorText(assignment.getKind()) + "="); printer.writeSpace(); scan(assignment.getAssignment()); exitCtExpression(assignment); exitCtStatement(assignment); }
@Override public <A extends Annotation> void visitCtAnnotationType(CtAnnotationType<A> annotationType) { visitCtType(annotationType); printer.writeSeparator("@").writeKeyword("interface") .writeSpace().writeIdentifier(annotationType.getSimpleName()) .writeSpace().writeSeparator("{").incTab(); elementPrinterHelper.writeElementList(annotationType.getTypeMembers()); printer.decTab().writeSeparator("}"); }
@Override public <R> void visitCtReturn(CtReturn<R> returnStatement) { enterCtStatement(returnStatement); printer.writeKeyword("return"); // checkstyle wants "return;" and not "return ;" if (returnStatement.getReturnedExpression() != null) { printer.writeSpace(); } scan(returnStatement.getReturnedExpression()); exitCtStatement(returnStatement); }
@Override public void visitCtBreak(CtBreak breakStatement) { enterCtStatement(breakStatement); printer.writeKeyword("break"); if (breakStatement.getTargetLabel() != null) { printer.writeSpace().writeKeyword(breakStatement.getTargetLabel()); } exitCtStatement(breakStatement); }
@Override public void visitCtContinue(CtContinue continueStatement) { enterCtStatement(continueStatement); printer.writeKeyword("continue"); if (continueStatement.getTargetLabel() != null) { printer.writeSpace().writeIdentifier(continueStatement.getTargetLabel()); } exitCtStatement(continueStatement); }
@Override public void visitCtProvidedService(CtProvidedService moduleProvidedService) { printer.writeKeyword("provides").writeSpace(); scan(moduleProvidedService.getServiceType()); this.elementPrinterHelper.printList(moduleProvidedService.getImplementationTypes(), null, false, " with", true, false, ",", true, false, null, implementations -> scan(implementations)); printer.writeSeparator(";").writeln(); }
@Override public <T> void visitCtCatchVariable(CtCatchVariable<T> catchVariable) { if (env.isPreserveLineNumbers()) { getPrinterHelper().adjustStartPosition(catchVariable); } elementPrinterHelper.writeModifiers(catchVariable); scan(catchVariable.getType()); printer.writeSpace(); printer.writeIdentifier(catchVariable.getSimpleName()); }
@Override public void visitCtWhile(CtWhile whileLoop) { enterCtStatement(whileLoop); printer.writeKeyword("while").writeSpace().writeSeparator("("); scan(whileLoop.getLoopingExpression()); printer.writeSeparator(")"); elementPrinterHelper.writeIfOrLoopBlock(whileLoop.getBody()); exitCtStatement(whileLoop); }
@Override public void visitCtSynchronized(CtSynchronized synchro) { enterCtStatement(synchro); printer.writeKeyword("synchronized"); if (synchro.getExpression() != null) { printer.writeSeparator("("); scan(synchro.getExpression()); printer.writeSeparator(")").writeSpace(); } scan(synchro.getBlock()); exitCtStatement(synchro); }