@Override public TokenWriter decTab() { this.listener.onTokenWriterWrite(TokenType.DEC_TAB, null, null, () -> delegate.decTab()); return this; }
@Override public TokenWriter decTab() { if (isMuted()) { return this; } delegate.decTab(); return this; } @Override
@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 <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 <T> void visitCtInterface(CtInterface<T> intrface) { visitCtType(intrface); printer.writeKeyword("interface").writeSpace().writeIdentifier(intrface.getSimpleName()); if (intrface.getFormalCtTypeParameters() != null) { elementPrinterHelper.writeFormalTypeParameters(intrface); } if (!intrface.getSuperInterfaces().isEmpty()) { elementPrinterHelper.printList(intrface.getSuperInterfaces(), "extends", false, null, false, true, ",", true, false, null, ref -> scan(ref)); } context.pushCurrentThis(intrface); printer.writeSpace().writeSeparator("{").incTab(); // Content elementPrinterHelper.writeElementList(intrface.getTypeMembers()); printer.decTab().writeSeparator("}"); context.popCurrentThis(); }
@Override public <T> void visitCtClass(CtClass<T> ctClass) { context.pushCurrentThis(ctClass); if (ctClass.getSimpleName() != null && !CtType.NAME_UNKNOWN.equals(ctClass.getSimpleName()) && !ctClass.isAnonymous()) { visitCtType(ctClass); if (ctClass.isLocalType()) { printer.writeKeyword("class").writeSpace().writeIdentifier(ctClass.getSimpleName().replaceAll("^[0-9]*", "")); } else { printer.writeKeyword("class").writeSpace().writeIdentifier(ctClass.getSimpleName()); } elementPrinterHelper.writeFormalTypeParameters(ctClass); elementPrinterHelper.writeExtendsClause(ctClass); elementPrinterHelper.writeImplementsClause(ctClass); } printer.writeSpace().writeSeparator("{").incTab(); elementPrinterHelper.writeElementList(ctClass.getTypeMembers()); getPrinterHelper().adjustEndPosition(ctClass); printer.decTab().writeSeparator("}"); context.popCurrentThis(); }
@Override public void visitCtModule(CtModule module) { enter(module); if (module.isOpenModule()) { printer.writeKeyword("open").writeSpace(); } printer.writeKeyword("module").writeSpace().writeIdentifier(module.getSimpleName()); printer.writeSpace().writeSeparator("{").incTab().writeln(); for (CtModuleDirective moduleDirective : module.getModuleDirectives()) { scan(moduleDirective); } printer.decTab().writeSeparator("}"); exit(module); }
/** write all non-implicit parts of a block, with special care for indentation */ public void writeIfOrLoopBlock(CtStatement block) { if (block != null) { if (!block.isImplicit() && (block instanceof CtBlock || block instanceof CtIf)) { printer.writeSpace(); } if (!(block instanceof CtBlock) && !(block instanceof CtIf)) { printer.incTab(); printer.writeln(); } writeStatement(block); if (!(block instanceof CtBlock) && !(block instanceof CtIf)) { printer.decTab().writeln(); } if (!block.isImplicit()) { if (!block.isParentInitialized() || (!(block.getParent() instanceof CtFor) && !(block.getParent() instanceof CtForEach) && !(block.getParent() instanceof CtIf))) { printer.writeSpace(); } } } else { printer.writeSeparator(";"); } } /**
@Override public <T extends Enum<?>> void visitCtEnum(CtEnum<T> ctEnum) { visitCtType(ctEnum); printer.writeKeyword("enum").writeSpace().writeIdentifier(ctEnum.getSimpleName()); elementPrinterHelper.writeImplementsClause(ctEnum); context.pushCurrentThis(ctEnum); printer.writeSpace().writeSeparator("{").incTab().writeln(); if (ctEnum.getEnumValues().isEmpty()) { printer.writeSeparator(";").writeln(); } else { elementPrinterHelper.printList(ctEnum.getEnumValues(), null, false, null, false, false, ",", false, false, ";", enumValue -> { printer.writeln(); scan(enumValue); }); } elementPrinterHelper.writeElementList(ctEnum.getTypeMembers()); printer.decTab().writeSeparator("}"); context.popCurrentThis(); }
@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); }
elementPrinterHelper.writeStatement(statement); printer.decTab(); exitCtStatement(caseStatement);