aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main
diff options
context:
space:
mode:
authorDanny van Bruggen <lol@meuk.info>2018-02-07 19:23:51 +0100
committerGitHub <noreply@github.com>2018-02-07 19:23:51 +0100
commit3aaebd2ab93a6e484890657726ab6e3939a21809 (patch)
tree60a6c654363f09ca498c59e5d8acdf42cabdc83f /javaparser-core/src/main
parent8a84534731712fff8d6cdd1d50f93945591b782c (diff)
parent4b64706539d4b8eb310e6f33ed752267d27a566f (diff)
downloadplatform_external_javaparser-3aaebd2ab93a6e484890657726ab6e3939a21809.tar.gz
platform_external_javaparser-3aaebd2ab93a6e484890657726ab6e3939a21809.tar.bz2
platform_external_javaparser-3aaebd2ab93a6e484890657726ab6e3939a21809.zip
Merge branch 'master' into cleanup_jss
Diffstat (limited to 'javaparser-core/src/main')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java10
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/validator/NoProblemsValidator.java2
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java33
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java18
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java49
7 files changed, 103 insertions, 19 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java b/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java
index 42a6fe067..deb8d4cdc 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ParserConfiguration.java
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.validator.*;
import com.github.javaparser.printer.lexicalpreservation.LexicalPreservingPrinter;
import com.github.javaparser.resolution.SymbolResolver;
import com.github.javaparser.version.Java10PostProcessor;
+import com.github.javaparser.version.Java11PostProcessor;
import java.util.ArrayList;
import java.util.List;
@@ -41,7 +42,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull;
*/
public class ParserConfiguration {
public enum LanguageLevel {
- ANY(null, null),
+ RAW(null, null),
JAVA_1_0(new Java1_0Validator(), null),
JAVA_1_1(new Java1_1Validator(), null),
JAVA_1_2(new Java1_2Validator(), null),
@@ -52,7 +53,8 @@ public class ParserConfiguration {
JAVA_7(new Java7Validator(), null),
JAVA_8(new Java8Validator(), null),
JAVA_9(new Java9Validator(), null),
- JAVA_10_PREVIEW(null, new Java10PostProcessor());
+ JAVA_10_PREVIEW(null, new Java10PostProcessor()),
+ JAVA_11_PREVIEW(null, new Java11PostProcessor());
final Validator validator;
final ParseResult.PostProcessor postProcessor;
@@ -201,7 +203,7 @@ public class ParserConfiguration {
} else if (validator instanceof Java1_0Validator) {
setLanguageLevel(LanguageLevel.JAVA_1_0);
} else if (validator instanceof NoProblemsValidator) {
- setLanguageLevel(LanguageLevel.ANY);
+ setLanguageLevel(LanguageLevel.RAW);
}
return this;
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java
index c551013a8..b182e8db5 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java10Validator.java
@@ -8,7 +8,7 @@ import com.github.javaparser.ast.type.VarType;
public class Java10Validator extends Java9Validator {
protected final Validator varOnlyOnLocalVariableDefinitionAndFor = new SingleNodeTypeValidator<>(VarType.class, (n, reporter) -> {
-
+ // TODO issue 1407
});
public Java10Validator() {
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java
new file mode 100644
index 000000000..d80577268
--- /dev/null
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java11Validator.java
@@ -0,0 +1,10 @@
+package com.github.javaparser.ast.validator;
+
+/**
+ * This validator validates according to Java 11 syntax rules.
+ */
+public class Java11Validator extends Java10Validator {
+ public Java11Validator() {
+ super();
+ }
+}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/NoProblemsValidator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/NoProblemsValidator.java
index 15edbf7f3..002668892 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/NoProblemsValidator.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/NoProblemsValidator.java
@@ -6,7 +6,7 @@ import com.github.javaparser.ast.Node;
/**
* Stub validator for when no validation is wanted.
*
- * @deprecated when setting a language validator, try {@link com.github.javaparser.ParserConfiguration#setLanguageLevel(ParserConfiguration.LanguageLevel)} with ANY.
+ * @deprecated when setting a language validator, try {@link com.github.javaparser.ParserConfiguration#setLanguageLevel(ParserConfiguration.LanguageLevel)} with RAW.
*/
@Deprecated
public final class NoProblemsValidator implements Validator {
diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java
index 569f461ad..01251712e 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java10PostProcessor.java
@@ -7,24 +7,29 @@ import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.type.VarType;
import com.github.javaparser.ast.validator.Java10Validator;
import com.github.javaparser.ast.validator.ProblemReporter;
-import com.github.javaparser.ast.visitor.ModifierVisitor;
-import com.github.javaparser.ast.visitor.Visitable;
+
+import static com.github.javaparser.ParseResult.*;
/**
* Processes the generic AST into a Java 10 AST and validates it.
*/
-public class Java10PostProcessor implements ParseResult.PostProcessor {
- private final Java10Validator validator = new Java10Validator();
-
- @Override
- public void process(ParseResult<? extends Node> result, ParserConfiguration configuration) {
- result.getResult().ifPresent(node -> {
- node.findAll(ClassOrInterfaceType.class).forEach(n -> {
- if (n.getNameAsString().equals("var")) {
- n.replace(new VarType(n.getTokenRange().orElse(null)));
- }
+public class Java10PostProcessor extends PostProcessors {
+ protected final PostProcessor java10Validator = new Java10Validator().postProcessor();
+ protected final PostProcessor varNodeCreator = new PostProcessor() {
+ @Override
+ public void process(ParseResult<? extends Node> result, ParserConfiguration configuration) {
+ result.getResult().ifPresent(node -> {
+ node.findAll(ClassOrInterfaceType.class).forEach(n -> {
+ if (n.getNameAsString().equals("var")) {
+ n.replace(new VarType(n.getTokenRange().orElse(null)));
+ }
+ });
});
- validator.accept(node, new ProblemReporter(problem -> result.getProblems().add(problem)));
- });
+ }
+ };
+
+ public Java10PostProcessor() {
+ add(varNodeCreator);
+ add(java10Validator);
}
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java b/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java
new file mode 100644
index 000000000..5d36efc05
--- /dev/null
+++ b/javaparser-core/src/main/java/com/github/javaparser/version/Java11PostProcessor.java
@@ -0,0 +1,18 @@
+package com.github.javaparser.version;
+
+import com.github.javaparser.ParseResult;
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.validator.Java11Validator;
+import com.github.javaparser.ast.validator.ProblemReporter;
+
+/**
+ * Processes the generic AST into a Java 10 AST and validates it.
+ */
+public class Java11PostProcessor extends Java10PostProcessor {
+ protected final ParseResult.PostProcessor java11Validator = new Java11Validator().postProcessor();
+
+ public Java11PostProcessor() {
+ replace(java10Validator, java11Validator);
+ }
+}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java b/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java
new file mode 100644
index 000000000..4220de341
--- /dev/null
+++ b/javaparser-core/src/main/java/com/github/javaparser/version/PostProcessors.java
@@ -0,0 +1,49 @@
+package com.github.javaparser.version;
+
+import com.github.javaparser.ParseResult;
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.ast.Node;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static com.github.javaparser.ParseResult.PostProcessor;
+
+/**
+ * A post processor that will call a collection of post processors.
+ */
+public class PostProcessors implements PostProcessor {
+ private final List<PostProcessor> postProcessors = new ArrayList<>();
+
+ public PostProcessors(PostProcessor... postProcessors) {
+ this.postProcessors.addAll(Arrays.asList(postProcessors));
+ }
+
+ public List<PostProcessor> getPostProcessors() {
+ return postProcessors;
+ }
+
+ public PostProcessors remove(PostProcessor postProcessor) {
+ if (!postProcessors.remove(postProcessor)) {
+ throw new AssertionError("Trying to remove a post processor that isn't there.");
+ }
+ return this;
+ }
+
+ public PostProcessors replace(PostProcessor oldProcessor, PostProcessor newProcessor) {
+ remove(oldProcessor);
+ add(newProcessor);
+ return this;
+ }
+
+ public PostProcessors add(PostProcessor newProcessor) {
+ postProcessors.add(newProcessor);
+ return this;
+ }
+
+ @Override
+ public void process(ParseResult<? extends Node> result, ParserConfiguration configuration) {
+ postProcessors.forEach(pp -> pp.process(result, configuration));
+ }
+}