aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main
diff options
context:
space:
mode:
authorDanny van Bruggen <lol@meuk.info>2018-02-02 15:38:11 +0100
committerGitHub <noreply@github.com>2018-02-02 15:38:11 +0100
commit204b8d3d6950b8784b359ae6918bd493c652042e (patch)
tree788aa334aebe2aa5dd11dba67ceee6beaccfdde5 /javaparser-core/src/main
parenta14e906792ecea9c208e6c4ead73a6f24982d8d5 (diff)
parent7eb04f3e0bc2d7fe6e2840c32430e9109619b96e (diff)
downloadplatform_external_javaparser-204b8d3d6950b8784b359ae6918bd493c652042e.tar.gz
platform_external_javaparser-204b8d3d6950b8784b359ae6918bd493c652042e.tar.bz2
platform_external_javaparser-204b8d3d6950b8784b359ae6918bd493c652042e.zip
Merge branch 'master' into issue_200_javadocced_enum_constants
Diffstat (limited to 'javaparser-core/src/main')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java61
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java75
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java17
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java15
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/utils/Utils.java13
6 files changed, 135 insertions, 66 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java b/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java
index 94ff436fe..bbe9797e2 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/JavadocParser.java
@@ -25,13 +25,13 @@ import com.github.javaparser.ast.comments.JavadocComment;
import com.github.javaparser.javadoc.Javadoc;
import com.github.javaparser.javadoc.JavadocBlockTag;
import com.github.javaparser.javadoc.description.JavadocDescription;
-import com.github.javaparser.utils.Utils;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import static com.github.javaparser.utils.Utils.*;
import static com.github.javaparser.utils.Utils.nextWord;
/**
@@ -47,7 +47,7 @@ class JavadocParser {
}
public static Javadoc parse(String commentContent) {
- List<String> cleanLines = cleanLines(commentContent);
+ List<String> cleanLines = cleanLines(normalizeEolInTextBlock(commentContent, EOL));
int indexOfFirstBlockTag = cleanLines.stream()
.filter(JavadocParser::isABlockLine)
.map(cleanLines::indexOf)
@@ -56,24 +56,24 @@ class JavadocParser {
List<String> blockLines;
String descriptionText;
if (indexOfFirstBlockTag == -1) {
- descriptionText = trimRight(String.join("\n", cleanLines));
+ descriptionText = trimRight(String.join(EOL, cleanLines));
blockLines = Collections.emptyList();
} else {
- descriptionText = trimRight(String.join("\n", cleanLines.subList(0, indexOfFirstBlockTag)));
+ descriptionText = trimRight(String.join(EOL, cleanLines.subList(0, indexOfFirstBlockTag)));
//Combine cleaned lines, but only starting with the first block tag till the end
//In this combined string it is easier to handle multiple lines which actually belong together
String tagBlock = cleanLines.subList(indexOfFirstBlockTag, cleanLines.size())
.stream()
- .collect(Collectors.joining("\n"));
+ .collect(Collectors.joining(EOL));
- //Split up the entire tag black again, considering now that some lines belong to the same block tag.
- //The pattern used splits the block at each new line starting with the '@' symbol, thus the symbol
+ //Split up the entire tag back again, considering now that some lines belong to the same block tag.
+ //The pattern splits the block at each new line starting with the '@' symbol, thus the symbol
//then needs to be added again so that the block parsers handles everything correctly.
blockLines = BLOCK_PATTERN
.splitAsStream(tagBlock)
- .filter(Utils.STRING_NOT_EMPTY)
- .map(s -> BLOCK_TAG_PREFIX + s.replace("\n", " ").trim())
+ .filter(STRING_NOT_EMPTY)
+ .map(s -> BLOCK_TAG_PREFIX + s)
.collect(Collectors.toList());
}
Javadoc document = new Javadoc(JavadocDescription.parseText(descriptionText));
@@ -100,7 +100,7 @@ class JavadocParser {
}
private static List<String> cleanLines(String content) {
- String[] lines = content.split("\n");
+ String[] lines = content.split(EOL);
List<String> cleanedLines = Arrays.stream(lines).map(l -> {
int asteriskIndex = startsWithAsterisk(l);
if (asteriskIndex == -1) {
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java
index efa172dcd..db03718ae 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java
@@ -24,14 +24,19 @@ import com.github.javaparser.ast.AllFieldsConstructor;
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
+
import static com.github.javaparser.utils.Utils.assertNotNull;
+
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.visitor.CloneVisitor;
import com.github.javaparser.metamodel.AssignExprMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.printer.Printable;
+
import javax.annotation.Generated;
+
import com.github.javaparser.TokenRange;
+
import java.util.function.Consumer;
import java.util.Optional;
@@ -49,26 +54,23 @@ public final class AssignExpr extends Expression {
public enum Operator implements Printable {
- ASSIGN("=", null),
- PLUS("+=", BinaryExpr.Operator.PLUS),
- MINUS("-=", BinaryExpr.Operator.MINUS),
- MULTIPLY("*=", BinaryExpr.Operator.MULTIPLY),
- DIVIDE("/=", BinaryExpr.Operator.DIVIDE),
- BINARY_AND("&=", BinaryExpr.Operator.BINARY_AND),
- BINARY_OR("|=", BinaryExpr.Operator.BINARY_OR),
- XOR("^=", BinaryExpr.Operator.XOR),
- REMAINDER("%=", BinaryExpr.Operator.REMAINDER),
- LEFT_SHIFT("<<=", BinaryExpr.Operator.LEFT_SHIFT),
- SIGNED_RIGHT_SHIFT(">>=", BinaryExpr.Operator.SIGNED_RIGHT_SHIFT),
- UNSIGNED_RIGHT_SHIFT(">>>=", BinaryExpr.Operator.UNSIGNED_RIGHT_SHIFT);
+ ASSIGN("="),
+ PLUS("+="),
+ MINUS("-="),
+ MULTIPLY("*="),
+ DIVIDE("/="),
+ BINARY_AND("&="),
+ BINARY_OR("|="),
+ XOR("^="),
+ REMAINDER("%="),
+ LEFT_SHIFT("<<="),
+ SIGNED_RIGHT_SHIFT(">>="),
+ UNSIGNED_RIGHT_SHIFT(">>>=");
private final String codeRepresentation;
- private final BinaryExpr.Operator binaryOperatorEquivalent;
-
- Operator(String codeRepresentation, BinaryExpr.Operator binaryOperatorEquivalent) {
+ Operator(String codeRepresentation) {
this.codeRepresentation = codeRepresentation;
- this.binaryOperatorEquivalent = binaryOperatorEquivalent;
}
public String asString() {
@@ -76,7 +78,32 @@ public final class AssignExpr extends Expression {
}
public Optional<BinaryExpr.Operator> toBinaryOperator() {
- return Optional.ofNullable(binaryOperatorEquivalent);
+ switch (this) {
+ case PLUS:
+ return Optional.of(BinaryExpr.Operator.PLUS);
+ case MINUS:
+ return Optional.of(BinaryExpr.Operator.MINUS);
+ case MULTIPLY:
+ return Optional.of(BinaryExpr.Operator.MULTIPLY);
+ case DIVIDE:
+ return Optional.of(BinaryExpr.Operator.DIVIDE);
+ case BINARY_AND:
+ return Optional.of(BinaryExpr.Operator.BINARY_AND);
+ case BINARY_OR:
+ return Optional.of(BinaryExpr.Operator.BINARY_OR);
+ case XOR:
+ return Optional.of(BinaryExpr.Operator.XOR);
+ case REMAINDER:
+ return Optional.of(BinaryExpr.Operator.REMAINDER);
+ case LEFT_SHIFT:
+ return Optional.of(BinaryExpr.Operator.LEFT_SHIFT);
+ case SIGNED_RIGHT_SHIFT:
+ return Optional.of(BinaryExpr.Operator.SIGNED_RIGHT_SHIFT);
+ case UNSIGNED_RIGHT_SHIFT:
+ return Optional.of(BinaryExpr.Operator.UNSIGNED_RIGHT_SHIFT);
+ default:
+ return Optional.empty();
+ }
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java
index fc75b67d9..ac4729ac9 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java
@@ -24,14 +24,19 @@ import com.github.javaparser.ast.AllFieldsConstructor;
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
+
import static com.github.javaparser.utils.Utils.assertNotNull;
+
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.visitor.CloneVisitor;
import com.github.javaparser.metamodel.BinaryExprMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.printer.Printable;
+
import javax.annotation.Generated;
+
import com.github.javaparser.TokenRange;
+
import java.util.function.Consumer;
import java.util.Optional;
@@ -47,33 +52,30 @@ public final class BinaryExpr extends Expression {
public enum Operator implements Printable {
- OR("||", null),
- AND("&&", null),
- BINARY_OR("|", AssignExpr.Operator.BINARY_OR),
- BINARY_AND("&", AssignExpr.Operator.BINARY_AND),
- XOR("^", AssignExpr.Operator.XOR),
- EQUALS("==", null),
- NOT_EQUALS("!=", null),
- LESS("<", null),
- GREATER(">", null),
- LESS_EQUALS("<=", null),
- GREATER_EQUALS(">=", null),
- LEFT_SHIFT("<<", AssignExpr.Operator.LEFT_SHIFT),
- SIGNED_RIGHT_SHIFT(">>", AssignExpr.Operator.SIGNED_RIGHT_SHIFT),
- UNSIGNED_RIGHT_SHIFT(">>>", AssignExpr.Operator.UNSIGNED_RIGHT_SHIFT),
- PLUS("+", AssignExpr.Operator.PLUS),
- MINUS("-", AssignExpr.Operator.MINUS),
- MULTIPLY("*", AssignExpr.Operator.MULTIPLY),
- DIVIDE("/", AssignExpr.Operator.DIVIDE),
- REMAINDER("%", AssignExpr.Operator.REMAINDER);
+ OR("||"),
+ AND("&&"),
+ BINARY_OR("|"),
+ BINARY_AND("&"),
+ XOR("^"),
+ EQUALS("=="),
+ NOT_EQUALS("!="),
+ LESS("<"),
+ GREATER(">"),
+ LESS_EQUALS("<="),
+ GREATER_EQUALS(">="),
+ LEFT_SHIFT("<<"),
+ SIGNED_RIGHT_SHIFT(">>"),
+ UNSIGNED_RIGHT_SHIFT(">>>"),
+ PLUS("+"),
+ MINUS("-"),
+ MULTIPLY("*"),
+ DIVIDE("/"),
+ REMAINDER("%");
private final String codeRepresentation;
- private final AssignExpr.Operator assignOperatorEquivalent;
-
- Operator(String codeRepresentation, AssignExpr.Operator assignOperatorEquivalent) {
+ Operator(String codeRepresentation) {
this.codeRepresentation = codeRepresentation;
- this.assignOperatorEquivalent = assignOperatorEquivalent;
}
public String asString() {
@@ -81,7 +83,32 @@ public final class BinaryExpr extends Expression {
}
public Optional<AssignExpr.Operator> toAssignOperator() {
- return Optional.ofNullable(assignOperatorEquivalent);
+ switch (this) {
+ case BINARY_OR:
+ return Optional.of(AssignExpr.Operator.BINARY_OR);
+ case BINARY_AND:
+ return Optional.of(AssignExpr.Operator.BINARY_AND);
+ case XOR:
+ return Optional.of(AssignExpr.Operator.XOR);
+ case LEFT_SHIFT:
+ return Optional.of(AssignExpr.Operator.LEFT_SHIFT);
+ case SIGNED_RIGHT_SHIFT:
+ return Optional.of(AssignExpr.Operator.SIGNED_RIGHT_SHIFT);
+ case UNSIGNED_RIGHT_SHIFT:
+ return Optional.of(AssignExpr.Operator.UNSIGNED_RIGHT_SHIFT);
+ case PLUS:
+ return Optional.of(AssignExpr.Operator.PLUS);
+ case MINUS:
+ return Optional.of(AssignExpr.Operator.MINUS);
+ case MULTIPLY:
+ return Optional.of(AssignExpr.Operator.MULTIPLY);
+ case DIVIDE:
+ return Optional.of(AssignExpr.Operator.DIVIDE);
+ case REMAINDER:
+ return Optional.of(AssignExpr.Operator.REMAINDER);
+ default:
+ return Optional.empty();
+ }
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java
index 3239997cd..41ed01bdc 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/Javadoc.java
@@ -27,6 +27,8 @@ import com.github.javaparser.javadoc.description.JavadocDescription;
import java.util.LinkedList;
import java.util.List;
+import static com.github.javaparser.utils.Utils.*;
+
/**
* The structured content of a single Javadoc comment.
* <p>
@@ -66,14 +68,14 @@ public class Javadoc {
StringBuilder sb = new StringBuilder();
if (!description.isEmpty()) {
sb.append(description.toText());
- sb.append("\n");
+ sb.append(EOL);
}
if (!blockTags.isEmpty()) {
- sb.append("\n");
+ sb.append(EOL);
}
blockTags.forEach(bt -> {
sb.append(bt.toText());
- sb.append("\n");
+ sb.append(EOL);
});
return sb.toString();
}
@@ -88,13 +90,14 @@ public class Javadoc {
}
}
StringBuilder sb = new StringBuilder();
- sb.append("\n");
- if (!toText().isEmpty()) {
- for (String line : toText().split("\n")) {
+ sb.append(EOL);
+ final String text = toText();
+ if (!text.isEmpty()) {
+ for (String line : text.split(EOL)) {
sb.append(indentation);
sb.append(" * ");
sb.append(line);
- sb.append("\n");
+ sb.append(EOL);
}
}
sb.append(indentation);
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 dd76cf7ed..3a09cbf9b 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
@@ -44,6 +44,7 @@ import static com.github.javaparser.ast.Node.Parsedness.UNPARSABLE;
import static com.github.javaparser.utils.PositionUtils.sortByBeginPosition;
import static com.github.javaparser.utils.Utils.isNullOrEmpty;
import static com.github.javaparser.utils.Utils.normalizeEolInTextBlock;
+import static com.github.javaparser.utils.Utils.trimTrailingSpaces;
/**
* Outputs the AST as formatted Java source code.
@@ -328,10 +329,11 @@ public class PrettyPrintVisitor implements VoidVisitor<Void> {
boolean skippingLeadingEmptyLines = true;
boolean prependEmptyLine = false;
for (String line : lines) {
- line = line.trim();
- if (line.startsWith("*")) {
- line = line.substring(1).trim();
+ final String trimmedLine = line.trim();
+ if (trimmedLine.startsWith("*")) {
+ line = trimmedLine.substring(1);
}
+ line = trimTrailingSpaces(line);
if (line.isEmpty()) {
if (!skippingLeadingEmptyLines) {
prependEmptyLine = true;
@@ -342,7 +344,7 @@ public class PrettyPrintVisitor implements VoidVisitor<Void> {
printer.println(" *");
prependEmptyLine = false;
}
- printer.println(" * " + line);
+ printer.println(" *" + line);
}
}
printer.println(" */");
@@ -507,10 +509,9 @@ public class PrettyPrintVisitor implements VoidVisitor<Void> {
n.getName().accept(this, arg);
n.getAncestorOfType(NodeWithVariables.class).ifPresent(ancestor -> {
- Optional<Type> maximumCommonType = ancestor.getMaximumCommonType();
- maximumCommonType.ifPresent(commonType -> {
+ ((NodeWithVariables<?>) ancestor).getMaximumCommonType().ifPresent(commonType -> {
- Type type = n.getType();
+ final Type type = n.getType();
ArrayType arrayType = null;
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 7319ff4af..2db00e522 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
@@ -49,7 +49,7 @@ public class Utils {
public static <E> boolean isNullOrEmpty(Collection<E> collection) {
return collection == null || collection.isEmpty();
}
-
+
public static <T> T assertNotNull(T o) {
if (o == null) {
throw new AssertionError("A reference was unexpectedly null.");
@@ -239,4 +239,15 @@ public class Utils {
return filename.substring(0, extensionIndex);
}
+
+ /**
+ * Like {@link String#trim()}, but only the trailing spaces.
+ */
+ public static String trimTrailingSpaces(String line) {
+ while (line.length() > 0 && line.charAt(line.length() - 1) <= 0x20) {
+ line = line.substring(0, line.length() - 1);
+ }
+ return line;
+ }
+
}