Skip to content

Commit

Permalink
fix(comments): handle stacked comments in package-info.java (#1011)
Browse files Browse the repository at this point in the history
  • Loading branch information
pvojtechovsky authored and monperrus committed Nov 28, 2016
1 parent ddf4db5 commit a970b09
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -1680,7 +1680,9 @@ public String getPackageDeclaration() {
@Override
public String printPackageInfo(CtPackage pack) {
PrinterHelper bck = printer;
ElementPrinterHelper bck2 = elementPrinterHelper;
printer = new PrinterHelper(env);
elementPrinterHelper = new ElementPrinterHelper(printer, this, env);

elementPrinterHelper.writeComment(pack);

Expand All @@ -1692,6 +1694,7 @@ public String printPackageInfo(CtPackage pack) {
printer.write("package " + pack.getQualifiedName() + ";");
}
String ret = printer.toString();
elementPrinterHelper = bck2;
printer = bck;

return ret;
Expand Down
20 changes: 19 additions & 1 deletion src/test/java/spoon/test/comment/CommentTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,15 @@
import spoon.reflect.declaration.CtInterface;
import spoon.reflect.declaration.CtMethod;
import spoon.reflect.declaration.CtNamedElement;
import spoon.reflect.declaration.CtPackage;
import spoon.reflect.declaration.CtParameter;
import spoon.reflect.declaration.ModifierKind;
import spoon.reflect.factory.Factory;
import spoon.reflect.factory.FactoryImpl;
import spoon.reflect.visitor.filter.AbstractFilter;
import spoon.reflect.visitor.filter.TypeFilter;
import spoon.support.DefaultCoreFactory;
import spoon.support.JavaOutputProcessor;
import spoon.support.StandardEnvironment;
import spoon.support.compiler.jdt.JDTSnippetCompiler;
import spoon.test.comment.testclasses.BlockComment;
Expand All @@ -52,7 +54,7 @@
public class CommentTest {

private String newLine = System.getProperty("line.separator");

private Factory getSpoonFactory() {
final Launcher launcher = new Launcher();
launcher.run(new String[]{
Expand All @@ -70,6 +72,22 @@ private CtComment createFakeComment(Factory factory, String content) {
private CtComment createFakeBlockComment(Factory factory, String content) {
return factory.Code().createComment(content, CtComment.CommentType.BLOCK);
}

@Test
public void testCombinedPackageInfoComment() {
Factory f = getSpoonFactory();
CtPackage p = f.Package().get("spoon.test.comment.testclasses");
String l_content = ((JavaOutputProcessor)f.getEnvironment().getDefaultFileGenerator()).getPrinter().printPackageInfo(p);
String EOL = System.getProperty("line.separator");
assertEquals("/* comment1 */"+EOL+
"// comment2"+EOL+
"/**"+EOL+
" * Comment3"+EOL+
" */"+EOL+
"@java.lang.Deprecated"+EOL+
"package spoon.test.comment.testclasses;",l_content);
}


@Test
public void testRemoveComment() {
Expand Down
10 changes: 10 additions & 0 deletions src/test/java/spoon/test/comment/testclasses/package-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/*
* comment1
*/

// comment2
/**
* Comment3
*/
@java.lang.Deprecated
package spoon.test.comment.testclasses;

0 comments on commit a970b09

Please sign in to comment.