@Override public void visitCtCodeSnippetStatement(CtCodeSnippetStatement statement) { enterCtStatement(statement); printer.writeCodeSnippet(statement.getValue()); exitCtStatement(statement); }
@Override public <T> void visitCtConstructorCall(CtConstructorCall<T> ctConstructorCall) { enterCtStatement(ctConstructorCall); enterCtExpression(ctConstructorCall); printConstructorCall(ctConstructorCall); exitCtExpression(ctConstructorCall); exitCtStatement(ctConstructorCall); }
@Override public void visitCtThrow(CtThrow throwStatement) { enterCtStatement(throwStatement); printer.writeKeyword("throw").writeSpace(); scan(throwStatement.getThrownExpression()); exitCtStatement(throwStatement); }
@Override public <T> void visitCtNewClass(CtNewClass<T> newClass) { enterCtStatement(newClass); enterCtExpression(newClass); printConstructorCall(newClass); scan(newClass.getAnonymousClass()); exitCtExpression(newClass); exitCtStatement(newClass); }
@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 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); }
@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 <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 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 <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 <T> void visitCtUnaryOperator(CtUnaryOperator<T> operator) { enterCtStatement(operator); enterCtExpression(operator); UnaryOperatorKind op = operator.getKind(); if (OperatorHelper.isPrefixOperator(op)) { printer.writeOperator(OperatorHelper.getOperatorText(op)); } scan(operator.getOperand()); if (OperatorHelper.isSufixOperator(op)) { printer.writeOperator(OperatorHelper.getOperatorText(op)); } exitCtExpression(operator); exitCtStatement(operator); }
@Override public void visitCtTry(CtTry tryBlock) { enterCtStatement(tryBlock); printer.writeKeyword("try").writeSpace(); scan(tryBlock.getBody()); for (CtCatch c : tryBlock.getCatchers()) { scan(c); } if (tryBlock.getFinalizer() != null) { printer.writeSpace().writeKeyword("finally").writeSpace(); scan(tryBlock.getFinalizer()); } exitCtStatement(tryBlock); }
@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 void visitCtTryWithResource(CtTryWithResource tryWithResource) { enterCtStatement(tryWithResource); printer.writeKeyword("try").writeSpace(); if (tryWithResource.getResources() != null && !tryWithResource.getResources().isEmpty()) { elementPrinterHelper.printList(tryWithResource.getResources(), null, false, "(", false, false, ";", false, false, ")", r -> scan(r)); } printer.writeSpace(); scan(tryWithResource.getBody()); for (CtCatch c : tryWithResource.getCatchers()) { scan(c); } if (tryWithResource.getFinalizer() != null) { printer.writeSpace().writeKeyword("finally").writeSpace(); scan(tryWithResource.getFinalizer()); } exitCtStatement(tryWithResource); }
@Override public <E> void visitCtSwitch(CtSwitch<E> switchStatement) { enterCtStatement(switchStatement); printer.writeKeyword("switch").writeSpace().writeSeparator("("); scan(switchStatement.getSelector()); printer.writeSeparator(")").writeSpace().writeSeparator("{").incTab(); for (CtCase<?> c : switchStatement.getCases()) { printer.writeln(); scan(c); } if (env.isPreserveLineNumbers()) { printer.decTab().writeSeparator("}"); } else { printer.decTab().writeln().writeSeparator("}"); } exitCtStatement(switchStatement); }
@Override public <R> void visitCtBlock(CtBlock<R> block) { enterCtStatement(block); if (!block.isImplicit()) { printer.writeSeparator("{"); } printer.incTab(); for (CtStatement statement : block.getStatements()) { if (!statement.isImplicit()) { printer.writeln(); elementPrinterHelper.writeStatement(statement); } } printer.decTab(); getPrinterHelper().adjustEndPosition(block); if (env.isPreserveLineNumbers()) { if (!block.isImplicit()) { printer.writeSeparator("}"); } } else { printer.writeln(); if (!block.isImplicit()) { printer.writeSeparator("}"); } } exitCtStatement(block); }
@Override public <T> void visitCtLocalVariable(CtLocalVariable<T> localVariable) { enterCtStatement(localVariable); if (env.isPreserveLineNumbers()) { getPrinterHelper().adjustStartPosition(localVariable); } if (!context.isNextForVariable()) { elementPrinterHelper.writeModifiers(localVariable); if (localVariable.isInferred() && this.env.getComplianceLevel() >= 10) { getPrinterTokenWriter().writeKeyword("var"); } else { scan(localVariable.getType()); } printer.writeSpace(); } printer.writeIdentifier(localVariable.getSimpleName()); if (localVariable.getDefaultExpression() != null) { printer.writeSpace().writeOperator("=").writeSpace(); scan(localVariable.getDefaultExpression()); } exitCtStatement(localVariable); }