@Override public PrettyPrinter createPrettyPrinter() { if (prettyPrinterCreator == null) { // DJPP is the default mode // fully backward compatible return new DefaultJavaPrettyPrinter(this); } return prettyPrinterCreator.get(); }
@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 String toString() { DefaultJavaPrettyPrinter printer = new DefaultJavaPrettyPrinter(getFactory().getEnvironment()); String errorMessage = ""; try { // we do not want to compute imports of for CtImport and CtReference // as it may change the print of a reference if (!(this instanceof CtImport) && !(this instanceof CtReference)) { printer.getImportsContext().computeImports(this); } printer.scan(this); } catch (ParentNotInitializedException ignore) { LOGGER.error(ERROR_MESSAGE_TO_STRING, ignore); errorMessage = ERROR_MESSAGE_TO_STRING; } // in line-preservation mode, newlines are added at the beginning to matches the lines // removing them from the toString() representation return printer.toString().replaceFirst("^\\s+", "") + errorMessage; }
public PrettyPrinter createPrettyPrinter() { return new DefaultJavaPrettyPrinter(getEnvironment()); }
protected InputStream getCompilationUnitInputStream(String path) { Environment env = factory.getEnvironment(); spoon.reflect.cu.CompilationUnit cu = factory.CompilationUnit().getMap().get(path); List<CtType<?>> toBePrinted = cu.getDeclaredTypes(); PrettyPrinter printer = null; if (printer == null) { printer = new DefaultJavaPrettyPrinter(env); } printer.calculate(cu, toBePrinted); return new ByteArrayInputStream(printer.getResult().toString().getBytes()); }
public void updateOutput(String output) { getEnvironment().setSourceOutputDirectory(new File(output)); JavaOutputProcessor fileOutput = new JavaOutputProcessor(new DefaultJavaPrettyPrinter(getEnvironment())); fileOutput.setFactory(getFactory()); this.javaPrinter = fileOutput; }
protected synchronized String sourceForModelledClass(CtType<?> modelledClass) { prettyPrinter = new DefaultJavaPrettyPrinter(this.getFactory().getEnvironment()); prettyPrinter.scan(modelledClass); String sourceCode = "package " + modelledClass.getPackage().toString() + ";" + System.getProperty("line.separator") + prettyPrinter.toString(); prettyPrinter = new DefaultJavaPrettyPrinter(this.getFactory().getEnvironment()); return sourceCode; }
@Override public String toString() { DefaultJavaPrettyPrinter printer = new DefaultJavaPrettyPrinter( getFactory().getEnvironment()); printer.scan(this); return printer.toString(); }
@Override public CompilationResult compile(Collection<? extends CtType> ctClassList, URL[] cp) { Map<String, String> toCompile = new HashMap<String, String>(); prettyPrinter = new DefaultJavaPrettyPrinter(this.getFactory().getEnvironment()); for (CtType ctClass : ctClassList) { try { this.getProcessingManager().process(ctClass); toCompile.put(ctClass.getQualifiedName(), sourceForModelledClass(ctClass)); } catch (Exception e) { logger.error("Error printing class " + ctClass.getQualifiedName(), e); } } return compile(cp, toCompile); }
private int printUntilGoalIsReached(File currentOutput, int indexTestClass, int numberOfTestMethodGoal, List<CtType<?>> testClasses, Factory factory) { for (; indexTestClass < testClasses.size(); indexTestClass++) { Environment env = factory.getEnvironment(); env.setAutoImports(true); env.setNoClasspath(true); env.setCommentEnabled(true); JavaOutputProcessor processor = new JavaOutputProcessor(new DefaultJavaPrettyPrinter(env)); processor.setFactory(factory); processor.getEnvironment().setSourceOutputDirectory(currentOutput); processor.createJavaFile(testClasses.get(indexTestClass)); env.setAutoImports(false); numberOfTestMethodGoal -= testClasses.get(indexTestClass).getMethods().size(); if (numberOfTestMethodGoal <= 0) { return indexTestClass; } } return -1; }
@Override public String toString() { DefaultJavaPrettyPrinter printer = new DefaultJavaPrettyPrinter(getFactory().getEnvironment()); String errorMessage = ""; try { printer.computeImports(this); printer.scan(this); } catch (ParentNotInitializedException ignore) { errorMessage = ERROR_MESSAGE_TO_STRING; } return printer.toString() + errorMessage; }
public static void printCtTypeToGivenDirectory(CtType<?> type, File directory, boolean autoImports) { Factory factory = type.getFactory(); Environment env = factory.getEnvironment(); env.setAutoImports(autoImports); env.setNoClasspath(true); env.setCommentEnabled(InputConfiguration.get().withComment()); JavaOutputProcessor processor = new JavaOutputProcessor(new DefaultJavaPrettyPrinter(env)); processor.setFactory(factory); processor.getEnvironment().setSourceOutputDirectory(directory); processor.createJavaFile(type); env.setAutoImports(false); }
protected synchronized String sourceForModelledClass(CtType<?> modelledClass) { //logDebug(logger(), format("[Scanning source code of %s]", modelledClass.getQualifiedName())); prettyPrinter().scan(modelledClass); String packageDeclaration = ""; if (!modelledClass.getPackage().isUnnamedPackage()) { packageDeclaration = "package " + modelledClass.getPackage().getQualifiedName() + ";"; } String sourceCode = packageDeclaration + JavaLibrary.lineSeparator() + prettyPrinter().toString(); prettyPrinter = new DefaultJavaPrettyPrinter(spoonEnvironment()); return sourceCode; }
public SpoonedFile(File[] sourceFiles, NopolContext nopolContext) { this.nopolContext = nopolContext; this.sourceFiles = sourceFiles; this.projectClasspath = nopolContext.getProjectClasspath(); factory = SpoonModelLibrary.newFactory(); factory.getEnvironment().setComplianceLevel(nopolContext.getComplianceLevel()); factory.getEnvironment().setCommentEnabled(false); factory.getEnvironment().setLevel(Level.OFF.toString()); factory = SpoonModelLibrary.modelFor(factory, sourceFiles, projectClasspath()); compiler = new DynamicClassCompiler(compilationClasspath(), nopolContext.getComplianceLevel()); manager = new RuntimeProcessingManager(factory); compiledClasses = MetaMap.newHashMap(); prettyPrinter = new DefaultJavaPrettyPrinter(spoonEnvironment()); }