@Override public char[] getContents() { DefaultJavaPrettyPrinter printer = new DefaultJavaPrettyPrinter(type.getFactory().getEnvironment()); List<CtType<?>> types = new ArrayList<>(); types.add(type); printer.calculate(type.getPosition().getCompilationUnit(), types); return printer.getResult().toCharArray(); } }
@Override public void calculate(CtCompilationUnit sourceCompilationUnit, List<CtType<?>> types) { //use line separator of origin source file setLineSeparator(detectLineSeparator(sourceCompilationUnit.getOriginalSourceCode())); super.calculate(sourceCompilationUnit, types); }
@Override public void visitCtCompilationUnit(CtCompilationUnit compilationUnit) { switch (compilationUnit.getUnitType()) { case MODULE_DECLARATION: //TODO print module declaration break; case PACKAGE_DECLARATION: //TODO print package declaration break; case TYPE_DECLARATION: calculate(compilationUnit, compilationUnit.getDeclaredTypes()); break; default: throw new SpoonException("Cannot print compilation unit of type " + compilationUnit.getUnitType()); } }