Skip to content

Commit

Permalink
Merge 02dae4f into 9b5fc01
Browse files Browse the repository at this point in the history
  • Loading branch information
jlerbsc committed Nov 27, 2020
2 parents 9b5fc01 + 02dae4f commit 5e4e6df
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
import com.github.javaparser.ast.type.PrimitiveType;
import com.github.javaparser.printer.PrettyPrinter;
import com.github.javaparser.printer.PrettyPrinterConfiguration;
import com.github.javaparser.printer.Printable;

import org.jbehave.core.annotations.Alias;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
Expand Down Expand Up @@ -61,7 +63,7 @@ public class CommentParsingSteps {
private CommentsCollection commentsCollection;
private String sourceUnderTest;
private ParserConfiguration configuration = new ParserConfiguration();
private PrettyPrinter prettyPrinter = new PrettyPrinter(new PrettyPrinterConfiguration());
private Printable prettyPrinter = new PrettyPrinter(new PrettyPrinterConfiguration());

@Given("the class:$classSrc")
public void givenTheClass(String classSrc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ void printingArrayVariables() {

private String prettyPrintConfigurable(String code) {
CompilationUnit cu = parse(code);
PrettyPrinter printer = new PrettyPrinter(new PrettyPrinterConfiguration().setVisitorFactory(TestVisitor::new));
Printable printer = new PrettyPrinter(new PrettyPrinterConfiguration().setVisitorFactory(TestVisitor::new));
return printer.print(cu.findFirst(ClassOrInterfaceDeclaration.class).get());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.OptionalProperty;
import com.github.javaparser.printer.PrettyPrinter;
import com.github.javaparser.printer.Printable;
import com.github.javaparser.utils.ClassUtils;
import com.github.javaparser.utils.CodeGenerationUtils;
import com.github.javaparser.utils.Utils;
Expand Down Expand Up @@ -684,17 +685,33 @@ public static class Storage {
private final Path path;

private final Charset encoding;

private Printable printer;

private Storage(CompilationUnit compilationUnit, Path path) {
this.compilationUnit = compilationUnit;
this.path = path.toAbsolutePath();
this.encoding = UTF8;
this(compilationUnit, path, UTF8);
}

private Storage(CompilationUnit compilationUnit, Path path, Charset encoding) {
this.compilationUnit = compilationUnit;
this.path = path.toAbsolutePath();
this.encoding = encoding;
// default printer
this.printer = new PrettyPrinter();
}

/**
* Set a new printer
*/
public void setPrinter(Printable printer) {
this.printer = printer;
}

/**
* Returns the internal printer
*/
public Printable getPrinter() {
return this.printer;
}

/**
Expand Down Expand Up @@ -740,7 +757,7 @@ public Path getDirectory() {
* Saves the compilation unit to its original location
*/
public void save() {
save(cu -> new PrettyPrinter().print(cu));
save(cu -> printer.print(cu));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
/**
* Pretty printer for AST nodes.
*/
public class PrettyPrinter {
private final PrettyPrinterConfiguration configuration;
public class PrettyPrinter implements Printable {
private PrettyPrinterConfiguration configuration;

public PrettyPrinter() {
this(new PrettyPrinterConfiguration());
Expand All @@ -38,6 +38,21 @@ public PrettyPrinter(PrettyPrinterConfiguration configuration) {
this.configuration = configuration;
}

/*
* Returns the PrettyPrinter configuration
*/
public PrettyPrinterConfiguration getConfiguration() {
return configuration;
}

/*
* set or update the PrettyPrinter configuration
*/
public void setConfiguration(PrettyPrinterConfiguration configuration) {
this.configuration = configuration;
}

@Override
public String print(Node node) {
final VoidVisitor<Void> visitor = configuration.getVisitorFactory().apply(configuration);
node.accept(visitor, null);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.github.javaparser.printer;

import com.github.javaparser.ast.Node;

public interface Printable {

String print(Node node);

}

0 comments on commit 5e4e6df

Please sign in to comment.