aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny van Bruggen <hexagonaal@gmail.com>2017-10-19 23:49:33 +0200
committerDanny van Bruggen <hexagonaal@gmail.com>2017-10-19 23:49:33 +0200
commitb061b9891dd7908fd4ab5c8ecddaa7f5cd23ee80 (patch)
treef775e65984eddcbcee2a666d7fe919789bffb152
parent179d34079dd694392e6d4e1a111824bbbdd33e01 (diff)
parent658f4d5f3916a1942067bc40fcb5412dd4034d3f (diff)
downloadjavaparser-b061b9891dd7908fd4ab5c8ecddaa7f5cd23ee80.tar.gz
Merge remote-tracking branch 'javaparser/master' into no_receiver_param_in_signature
# Conflicts: # javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java11
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java11
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java10
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java11
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java9
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java6
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java16
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java5
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java16
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java6
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/ast/NodeTest.java17
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/ast/ReplaceNodeTest.java21
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java7
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java7
-rw-r--r--javaparser-testing/src/test/resources/com/github/javaparser/bdd/pretty_printing_scenarios.story2
27 files changed, 143 insertions, 52 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java
index c6e625868..335ffacda 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java
@@ -37,6 +37,10 @@ import java.util.EnumSet;
import java.util.List;
import javax.annotation.Generated;
import com.github.javaparser.TokenRange;
+import com.github.javaparser.resolution.Resolvable;
+import com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
+
import java.util.function.Consumer;
/**
@@ -44,7 +48,7 @@ import java.util.function.Consumer;
*
* @author Julio Vilmar Gesser
*/
-public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDeclaration> implements NodeWithAbstractModifier<AnnotationDeclaration> {
+public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDeclaration> implements NodeWithAbstractModifier<AnnotationDeclaration>, Resolvable<ResolvedAnnotationDeclaration> {
public AnnotationDeclaration() {
this(null, EnumSet.noneOf(Modifier.class), new NodeList<>(), new SimpleName(), new NodeList<>());
@@ -122,4 +126,9 @@ public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDecla
public void ifAnnotationDeclaration(Consumer<AnnotationDeclaration> action) {
action.accept(this);
}
+
+ @Override
+ public ResolvedAnnotationDeclaration resolve() {
+ return getSymbolResolver().resolveDeclaration(this, ResolvedAnnotationDeclaration.class);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java
index 8071d2221..6791e373c 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java
@@ -44,6 +44,10 @@ import com.github.javaparser.metamodel.ConstructorDeclarationMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import javax.annotation.Generated;
import com.github.javaparser.TokenRange;
+import com.github.javaparser.resolution.Resolvable;
+import com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration;
+
import java.util.function.Consumer;
/**
@@ -54,7 +58,7 @@ import java.util.function.Consumer;
*
* @author Julio Vilmar Gesser
*/
-public final class ConstructorDeclaration extends CallableDeclaration<ConstructorDeclaration> implements NodeWithBlockStmt<ConstructorDeclaration>, NodeWithAccessModifiers<ConstructorDeclaration>, NodeWithJavadoc<ConstructorDeclaration>, NodeWithDeclaration, NodeWithSimpleName<ConstructorDeclaration>, NodeWithParameters<ConstructorDeclaration>, NodeWithThrownExceptions<ConstructorDeclaration>, NodeWithTypeParameters<ConstructorDeclaration> {
+public final class ConstructorDeclaration extends CallableDeclaration<ConstructorDeclaration> implements NodeWithBlockStmt<ConstructorDeclaration>, NodeWithAccessModifiers<ConstructorDeclaration>, NodeWithJavadoc<ConstructorDeclaration>, NodeWithDeclaration, NodeWithSimpleName<ConstructorDeclaration>, NodeWithParameters<ConstructorDeclaration>, NodeWithThrownExceptions<ConstructorDeclaration>, NodeWithTypeParameters<ConstructorDeclaration>, Resolvable<ResolvedConstructorDeclaration> {
private BlockStmt body;
@@ -227,4 +231,9 @@ public final class ConstructorDeclaration extends CallableDeclaration<Constructo
public void ifConstructorDeclaration(Consumer<ConstructorDeclaration> action) {
action.accept(this);
}
+
+ @Override
+ public ResolvedConstructorDeclaration resolve() {
+ return getSymbolResolver().resolveDeclaration(this, ResolvedConstructorDeclaration.class);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java
index 21d6c0c87..db5364a55 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java
@@ -36,6 +36,9 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.metamodel.EnumDeclarationMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
+import com.github.javaparser.resolution.Resolvable;
+import com.github.javaparser.resolution.declarations.ResolvedEnumDeclaration;
+
import javax.annotation.Generated;
import java.util.EnumSet;
import static com.github.javaparser.utils.Utils.assertNonEmpty;
@@ -47,7 +50,7 @@ import java.util.function.Consumer;
*
* @author Julio Vilmar Gesser
*/
-public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration> implements NodeWithImplements<EnumDeclaration>, NodeWithConstructors<EnumDeclaration> {
+public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration> implements NodeWithImplements<EnumDeclaration>, NodeWithConstructors<EnumDeclaration>, Resolvable<ResolvedEnumDeclaration> {
private NodeList<ClassOrInterfaceType> implementedTypes;
@@ -214,4 +217,9 @@ public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration> impl
public void ifEnumDeclaration(Consumer<EnumDeclaration> action) {
action.accept(this);
}
+
+ @Override
+ public ResolvedEnumDeclaration resolve() {
+ return getSymbolResolver().resolveDeclaration(this, ResolvedEnumDeclaration.class);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java
index f92a28780..6a4c8fc0d 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java
@@ -53,6 +53,10 @@ import static com.github.javaparser.ast.NodeList.nodeList;
import static com.github.javaparser.utils.Utils.assertNotNull;
import javax.annotation.Generated;
import com.github.javaparser.TokenRange;
+import com.github.javaparser.resolution.Resolvable;
+import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration;
+import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration;
+
import java.util.function.Consumer;
/**
@@ -64,7 +68,7 @@ import java.util.function.Consumer;
*
* @author Julio Vilmar Gesser
*/
-public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> implements NodeWithJavadoc<FieldDeclaration>, NodeWithVariables<FieldDeclaration>, NodeWithAccessModifiers<FieldDeclaration>, NodeWithStaticModifier<FieldDeclaration>, NodeWithFinalModifier<FieldDeclaration> {
+public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> implements NodeWithJavadoc<FieldDeclaration>, NodeWithVariables<FieldDeclaration>, NodeWithAccessModifiers<FieldDeclaration>, NodeWithStaticModifier<FieldDeclaration>, NodeWithFinalModifier<FieldDeclaration>, Resolvable<ResolvedFieldDeclaration> {
private EnumSet<Modifier> modifiers;
@@ -288,4 +292,9 @@ public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> im
public void ifFieldDeclaration(Consumer<FieldDeclaration> action) {
action.accept(this);
}
+
+ @Override
+ public ResolvedFieldDeclaration resolve() {
+ return getSymbolResolver().resolveDeclaration(this, ResolvedFieldDeclaration.class);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java
index 1e3f794c4..3ab2097a2 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java
@@ -345,7 +345,7 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati
@Override
public ResolvedMethodDeclaration resolve() {
- return getSymbolResolver().resolve(this, ResolvedMethodDeclaration.class);
+ return getSymbolResolver().resolveDeclaration(this, ResolvedMethodDeclaration.class);
}
@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java
index 7a9ab90bf..d9c2d177a 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java
@@ -34,14 +34,16 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.CloneVisitor;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.metamodel.TypeDeclarationMetaModel;
+import com.github.javaparser.resolution.Resolvable;
+import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration;
+
import javax.annotation.Generated;
import java.util.EnumSet;
-import java.util.LinkedList;
import java.util.List;
+import java.util.function.Consumer;
+
import static com.github.javaparser.utils.Utils.assertNotNull;
import static java.util.stream.Collectors.toList;
-import com.github.javaparser.ast.Node;
-import java.util.function.Consumer;
/**
* A base class for all types of type declarations.
@@ -235,4 +237,5 @@ public abstract class TypeDeclaration<T extends TypeDeclaration<?>> extends Body
public void ifTypeDeclaration(Consumer<TypeDeclaration> action) {
action.accept(this);
}
+
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
index 6529c9808..0f0293348 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
@@ -27,6 +27,8 @@ import com.github.javaparser.metamodel.ExpressionMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import javax.annotation.Generated;
import com.github.javaparser.TokenRange;
+import com.github.javaparser.resolution.types.ResolvedType;
+
import java.util.function.Consumer;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
@@ -552,4 +554,8 @@ public abstract class Expression extends Node {
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifVariableDeclarationExpr(Consumer<VariableDeclarationExpr> action) {
}
+
+ public ResolvedType calculateResolvedType() {
+ return getSymbolResolver().calculateType(this);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java
index 820a9d8a5..6e54be193 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java
@@ -50,7 +50,7 @@ public final class ArrayType extends ReferenceType implements NodeWithAnnotation
@Override
public ResolvedArrayType resolve() {
- return getSymbolResolver().resolve(this, ResolvedArrayType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedArrayType.class);
}
/**
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java
index 5072e291f..eb12278ee 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java
@@ -286,6 +286,6 @@ public final class ClassOrInterfaceType extends ReferenceType implements NodeWit
@Override
public ResolvedReferenceType resolve() {
- return getSymbolResolver().resolve(this, ResolvedReferenceType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedReferenceType.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java
index 384a1e4e0..6ea13bec8 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java
@@ -172,6 +172,6 @@ public final class IntersectionType extends Type implements NodeWithAnnotations<
@Override
public ResolvedIntersectionType resolve() {
- return getSymbolResolver().resolve(this, ResolvedIntersectionType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedIntersectionType.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java
index d2f5c00b0..9089d5922 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java
@@ -226,6 +226,6 @@ public final class PrimitiveType extends Type implements NodeWithAnnotations<Pri
@Override
public ResolvedPrimitiveType resolve() {
- return getSymbolResolver().resolve(this, ResolvedPrimitiveType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedPrimitiveType.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java
index 6a4c7cf6a..4d681e177 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java
@@ -232,6 +232,6 @@ public final class TypeParameter extends ReferenceType implements NodeWithSimple
@Override
public ResolvedTypeVariable resolve() {
- return getSymbolResolver().resolve(this, ResolvedTypeVariable.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedTypeVariable.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java
index 5b52bd036..0df8505f2 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java
@@ -181,6 +181,6 @@ public final class UnionType extends Type implements NodeWithAnnotations<UnionTy
@Override
public ResolvedUnionType resolve() {
- return getSymbolResolver().resolve(this, ResolvedUnionType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedUnionType.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java
index ace0b4bc6..4e467ae44 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java
@@ -133,6 +133,6 @@ public final class UnknownType extends Type {
@Override
public ResolvedType resolve() {
- return getSymbolResolver().resolve(this, ResolvedReferenceType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedReferenceType.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java
index 21b562e4c..32154f5dc 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java
@@ -128,6 +128,6 @@ public final class VoidType extends Type implements NodeWithAnnotations<VoidType
@Override
public ResolvedVoidType resolve() {
- return getSymbolResolver().resolve(this, ResolvedVoidType.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedVoidType.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java
index 61110d2f9..9b8fe56d8 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java
@@ -283,6 +283,6 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild
@Override
public ResolvedWildcard resolve() {
- return getSymbolResolver().resolve(this, ResolvedWildcard.class);
+ return getSymbolResolver().toResolvedType(this, ResolvedWildcard.class);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java
index 27b0f4029..f11f009d7 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java
@@ -36,6 +36,7 @@ import com.github.javaparser.ast.stmt.*;
import com.github.javaparser.ast.type.*;
import com.github.javaparser.ast.visitor.Visitable;
import com.github.javaparser.ast.visitor.VoidVisitor;
+import com.github.javaparser.utils.Utils;
import java.util.*;
import java.util.stream.Collectors;
@@ -304,7 +305,11 @@ public class PrettyPrintVisitor implements VoidVisitor<Void> {
@Override
public void visit(final JavadocComment n, final Void arg) {
printer.print("/**");
- printer.print(n.getContent());
+ String commentContent = n.getContent();
+ if (configuration.isNormalizeEolInComment()) {
+ commentContent = Utils.normalizeEolInTextBlock(commentContent, configuration.getEndOfLineCharacter());
+ }
+ printer.print(commentContent);
printer.println("*/");
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java
index 312707682..cae779246 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrinterConfiguration.java
@@ -27,6 +27,7 @@ import static com.github.javaparser.utils.Utils.EOL;
import static com.github.javaparser.utils.Utils.assertNotNull;
public class PrettyPrinterConfiguration {
+ private boolean normalizeEolInComment = false;
private boolean printComments = true;
private boolean printJavaDoc = true;
private boolean columnAlignParameters = false;
@@ -44,6 +45,15 @@ public class PrettyPrinterConfiguration {
return this;
}
+ public boolean isNormalizeEolInComment() {
+ return normalizeEolInComment;
+ }
+
+ public PrettyPrinterConfiguration setNormalizeEolInComment(boolean normalizeEolInComment) {
+ this.normalizeEolInComment = normalizeEolInComment;
+ return this;
+ }
+
public boolean isPrintComments() {
return printComments;
}
@@ -55,7 +65,7 @@ public class PrettyPrinterConfiguration {
public boolean isPrintJavaDoc() {
return printJavaDoc;
}
-
+
public boolean isColumnAlignParameters() {
return columnAlignParameters;
}
@@ -73,12 +83,12 @@ public class PrettyPrinterConfiguration {
this.printJavaDoc = printJavaDoc;
return this;
}
-
+
public PrettyPrinterConfiguration setColumnAlignParameters(boolean columnAlignParameters) {
this.columnAlignParameters = columnAlignParameters;
return this;
}
-
+
public PrettyPrinterConfiguration setColumnAlignFirstMethodChain(boolean columnAlignFirstMethodChain) {
this.columnAlignFirstMethodChain = columnAlignFirstMethodChain;
return this;
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java
index 623d70263..d2cdd9d28 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/SourcePrinter.java
@@ -27,6 +27,7 @@ import java.util.LinkedList;
import java.util.regex.Pattern;
import com.github.javaparser.Position;
+import com.github.javaparser.utils.Utils;
public class SourcePrinter {
@@ -143,4 +144,8 @@ public class SourcePrinter {
public String toString() {
return getSource();
}
+
+ public String normalizeEolInTextBlock(String content) {
+ return Utils.normalizeEolInTextBlock(content, endOfLineCharacter);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java
index 848341b99..8e684c4c5 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/concretesyntaxmodel/CsmComment.java
@@ -28,22 +28,21 @@ import com.github.javaparser.ast.comments.JavadocComment;
import com.github.javaparser.ast.comments.LineComment;
import com.github.javaparser.printer.SourcePrinter;
-import static com.github.javaparser.utils.Utils.EOL;
-
public class CsmComment implements CsmElement {
static void process(Comment comment, SourcePrinter printer) {
+ String content = printer.normalizeEolInTextBlock(comment.getContent());
if (comment instanceof BlockComment) {
printer.print("/*");
- printer.print(comment.getContent());
- printer.print("*/" + EOL);
+ printer.print(content);
+ printer.println("*/");
} else if (comment instanceof JavadocComment) {
printer.print("/**");
- printer.print(comment.getContent());
- printer.print("*/" + EOL);
+ printer.print(content);
+ printer.println("*/");
} else if (comment instanceof LineComment) {
printer.print("//");
- printer.print(comment.getContent());
+ printer.print(content);
printer.println();
} else {
throw new UnsupportedOperationException(comment.getClass().getSimpleName());
diff --git a/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java b/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java
index 977fb0904..67f8a00ce 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/resolution/SymbolResolver.java
@@ -22,7 +22,21 @@
package com.github.javaparser.resolution;
import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.type.Type;
+import com.github.javaparser.resolution.types.ResolvedType;
public interface SymbolResolver {
- <T> T resolve(Node node, Class<T> resultClass);
+ /**
+ * For a reference it would find the corresponding
+ * declaration.
+ */
+ <T> T resolveDeclaration(Node node, Class<T> resultClass);
+
+ /**
+ * For types it would find the corresponding resolved types.
+ */
+ <T> T toResolvedType(Type javaparserType, Class<T> resultClass);
+
+ ResolvedType calculateType(Expression expression);
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java b/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java
index 6649e41e5..637460e0e 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java
@@ -220,4 +220,10 @@ public class Utils {
public static <T> Set<T> set(T... items) {
return new HashSet<>(asList(items));
}
+
+ public static String normalizeEolInTextBlock(String content, String endOfLineCharacter) {
+ content.replaceAll("\\r\\n", "\n");
+ content = content.replaceAll("\\r", "\n");
+ return content.replaceAll("\\n", endOfLineCharacter);
+ }
}
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeTest.java
index aef89a87b..9135d33b4 100644
--- a/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeTest.java
+++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeTest.java
@@ -42,6 +42,7 @@ import java.util.EnumSet;
import java.util.List;
import static com.github.javaparser.JavaParser.parse;
+import static com.github.javaparser.utils.Utils.EOL;
import static org.junit.Assert.*;
public class NodeTest {
@@ -309,18 +310,18 @@ public class NodeTest {
MethodDeclaration methodDeclaration = cu.getType(0).getMethods().get(0);
methodDeclaration.getName().removeForced();
// Name is required, so to remove it the whole method is removed.
- assertEquals("class X {\n}\n", cu.toString());
+ assertEquals(String.format("class X {%1$s}%1$s", EOL), cu.toString());
}
@Test
public void removingTheSecondOfAListOfIdenticalStatementsDoesNotMessUpTheParents() {
- CompilationUnit unit = JavaParser.parse("public class Example {\n" +
- " public static void example() {\n" +
- " boolean swapped;\n" +
- " swapped=false;\n" +
- " swapped=false;\n" +
- " }\n" +
- "}\n");
+ CompilationUnit unit = JavaParser.parse(String.format("public class Example {%1$s" +
+ " public static void example() {%1$s" +
+ " boolean swapped;%1$s" +
+ " swapped=false;%1$s" +
+ " swapped=false;%1$s" +
+ " }%1$s" +
+ "}%1$s", EOL));
// remove the second swapped=false
Node target = unit.getChildNodes().get(0).getChildNodes().get(1).getChildNodes().get(2).getChildNodes().get(2);
target.remove();
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/ReplaceNodeTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/ReplaceNodeTest.java
index 822bd9433..4e93efce6 100644
--- a/javaparser-testing/src/test/java/com/github/javaparser/ast/ReplaceNodeTest.java
+++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/ReplaceNodeTest.java
@@ -4,6 +4,7 @@ import org.junit.Test;
import static com.github.javaparser.JavaParser.parse;
import static com.github.javaparser.JavaParser.parsePackageDeclaration;
+import static com.github.javaparser.utils.Utils.EOL;
import static org.junit.Assert.assertEquals;
public class ReplaceNodeTest {
@@ -11,21 +12,21 @@ public class ReplaceNodeTest {
public void testSimplePropertyWithGenericReplace() {
CompilationUnit cu = parse("package x; class Y {}");
cu.replace(cu.getPackageDeclaration().get(), parsePackageDeclaration("package z;"));
- assertEquals("package z;\n" +
- "\n" +
- "class Y {\n" +
- "}\n", cu.toString());
+ assertEquals(String.format("package z;%1$s" +
+ "%1$s" +
+ "class Y {%1$s" +
+ "}%1$s", EOL), cu.toString());
}
@Test
public void testListProperty() {
CompilationUnit cu = parse("package x; class Y {}");
cu.replace(cu.getClassByName("Y").get(), parse("class B{int y;}").getClassByName("B").get());
- assertEquals("package x;\n" +
- "\n" +
- "class B {\n" +
- "\n" +
- " int y;\n" +
- "}\n", cu.toString());
+ assertEquals(String.format("package x;%1$s" +
+ "%1$s" +
+ "class B {%1$s" +
+ "%1$s" +
+ " int y;%1$s" +
+ "}%1$s", EOL), cu.toString());
}
}
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java
index 24c99c8ab..63310ec78 100644
--- a/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java
+++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java
@@ -7,6 +7,7 @@ import org.junit.Test;
import static com.github.javaparser.ParseStart.CLASS_BODY;
import static com.github.javaparser.Providers.provider;
import static com.github.javaparser.utils.TestUtils.assertProblems;
+import static com.github.javaparser.utils.Utils.EOL;
import static org.junit.Assert.assertEquals;
public class ConstructorDeclarationTest {
@@ -17,9 +18,9 @@ public class ConstructorDeclarationTest {
ConstructorDeclaration cons = new ConstructorDeclaration("Cons");
cons.createBody().addStatement("super();");
- assertEquals("public Cons() {\n" +
- " super();\n" +
- "}", cons.toString());
+ assertEquals(String.format("public Cons() {%1$s" +
+ " super();%1$s" +
+ "}", EOL), cons.toString());
}
@Test
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java b/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java
index b10302c49..da83a0d21 100644
--- a/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java
+++ b/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java
@@ -21,11 +21,11 @@
package com.github.javaparser.bdd.steps;
-import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseException;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.visitor.ModifierVisitor;
+import com.github.javaparser.printer.PrettyPrinterConfiguration;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
@@ -112,4 +112,9 @@ public class PrettyPrintingSteps {
assertEquals(src.trim(), resultNode.toString().trim());
}
+ @Then("it is printed with normalized EOL in comments as:$src")
+ public void isPrintedWithEolAs(String src) {
+ PrettyPrinterConfiguration conf = new PrettyPrinterConfiguration().setNormalizeEolInComment(true);
+ assertEquals(src.trim(), resultNode.toString(conf).trim());
+ }
}
diff --git a/javaparser-testing/src/test/resources/com/github/javaparser/bdd/pretty_printing_scenarios.story b/javaparser-testing/src/test/resources/com/github/javaparser/bdd/pretty_printing_scenarios.story
index 355b6784e..50bbe1f50 100644
--- a/javaparser-testing/src/test/resources/com/github/javaparser/bdd/pretty_printing_scenarios.story
+++ b/javaparser-testing/src/test/resources/com/github/javaparser/bdd/pretty_printing_scenarios.story
@@ -472,7 +472,7 @@ public class Abc<@C A, @C X extends @C String & @C Serializable> {
Scenario: we can parse a package-info file.
Given the class in the file "package-info.java"
When the class is parsed by the Java parser
-Then it is printed as:
+Then it is printed with normalized EOL in comments as:
/**
* This package contains class for doing some stuff.
*/