@Override public TokenWriter writeOperator(String token) { this.listener.onTokenWriterWrite(TokenType.OPERATOR, token, null, () -> delegate.writeOperator(token)); return this; }
@Override public TokenWriter writeOperator(String token) { if (isMuted()) { getPrinterHelper().setShouldWriteTabs(false); return this; } delegate.writeOperator(token); return this; } @Override
@Override public <A extends Annotation> void visitCtAnnotation(CtAnnotation<A> annotation) { elementPrinterHelper.writeAnnotations(annotation); printer.writeSeparator("@"); scan(annotation.getAnnotationType()); if (!annotation.getValues().isEmpty()) { elementPrinterHelper.printList(annotation.getValues().entrySet(), null, false, "(", false, false, ",", true, false, ")", e -> { if ((annotation.getValues().size() == 1 && "value".equals(e.getKey())) == false) { //it is not a default value attribute. We must print a attribute name too. printer.writeIdentifier(e.getKey()).writeSpace().writeOperator("=").writeSpace(); } elementPrinterHelper.writeAnnotationElement(annotation.getFactory(), e.getValue()); }); } }
@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 <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, 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); }
printer.writeSeparator(")"); printer.writeSpace().writeOperator("?").writeSpace(); CtExpression<T> thenExpression = conditional.getThenExpression(); scan(thenExpression); printer.writeSpace().writeOperator(":").writeSpace();
@Override public <T> void visitCtBinaryOperator(CtBinaryOperator<T> operator) { enterCtExpression(operator); scan(operator.getLeftHandOperand()); printer.writeSpace(); printer.writeOperator(OperatorHelper.getOperatorText(operator.getKind())); printer.writeSpace(); try (Writable _context = context.modify()) { if (operator.getKind() == BinaryOperatorKind.INSTANCEOF) { _context.forceWildcardGenerics(true); } scan(operator.getRightHandOperand()); } exitCtExpression(operator); }
@Override public <T> void visitCtField(CtField<T> f) { elementPrinterHelper.writeComment(f, CommentOffset.BEFORE); elementPrinterHelper.visitCtNamedElement(f, sourceCompilationUnit); elementPrinterHelper.writeModifiers(f); scan(f.getType()); printer.writeSpace(); printer.writeIdentifier(f.getSimpleName()); if (f.getDefaultExpression() != null) { printer.writeSpace().writeOperator("=").writeSpace(); scan(f.getDefaultExpression()); } printer.writeSeparator(";"); elementPrinterHelper.writeComment(f, CommentOffset.AFTER); }
@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); }