@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 <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(); }