diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2017-12-08 22:33:51 +0100 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2017-12-08 22:33:51 +0100 |
commit | ec67c249106a847bcb63816da967c5edbdbce114 (patch) | |
tree | fbb7adf8e17896264b1afdca9e532fe37a56853f | |
parent | f373cb0d8ba5d56c175a12e8faaab4f16cc54b3f (diff) | |
download | javaparser-ec67c249106a847bcb63816da967c5edbdbce114.tar.gz |
Generate toXyz methods
91 files changed, 830 insertions, 5 deletions
diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java index c44573a0f..3a611f4c5 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java @@ -1,7 +1,6 @@ package com.github.javaparser.generator.core.node; import com.github.javaparser.ast.CompilationUnit; -import com.github.javaparser.ast.body.BodyDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.generator.NodeGenerator; @@ -10,6 +9,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.utils.Pair; import com.github.javaparser.utils.SourceRoot; +import java.util.Optional; import java.util.Set; import java.util.function.Consumer; @@ -56,6 +56,7 @@ public class TypeCastingGenerator extends NodeGenerator { generateIsType(baseCu, nodeCoid, baseCoid, typeName); generateAsType(baseCu, nodeCoid, baseCoid, typeName); + generateToType(nodeCu, baseCu, nodeCoid, baseCoid, typeName); generateIfType(nodeCu, baseCu, nodeCoid, baseCoid, typeName); } @@ -65,7 +66,15 @@ public class TypeCastingGenerator extends NodeGenerator { addOrReplaceWhenSameSignature(baseCoid, asTypeBaseMethod); addOrReplaceWhenSameSignature(nodeCoid, asTypeNodeMethod); baseCu.addImport("com.github.javaparser.utils.CodeGenerationUtils.f", true, false); + } + private void generateToType(CompilationUnit nodeCu, CompilationUnit baseCu, ClassOrInterfaceDeclaration nodeCoid, ClassOrInterfaceDeclaration baseCoid, String typeName) { + baseCu.addImport(Optional.class); + nodeCu.addImport(Optional.class); + final MethodDeclaration asTypeBaseMethod = (MethodDeclaration) parseBodyDeclaration(f("public Optional<%s> to%s() { return Optional.empty(); }", typeName, typeName, typeName)); + final MethodDeclaration asTypeNodeMethod = (MethodDeclaration) parseBodyDeclaration(f("@Override public Optional<%s> to%s() { return Optional.of(this); }", typeName, typeName)); + addOrReplaceWhenSameSignature(baseCoid, asTypeBaseMethod); + addOrReplaceWhenSameSignature(nodeCoid, asTypeNodeMethod); } private void generateIfType(CompilationUnit nodeCu, CompilationUnit baseCu, ClassOrInterfaceDeclaration nodeCoid, ClassOrInterfaceDeclaration baseCoid, String typeName) { 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 35016d29f..1404d57d6 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 @@ -41,6 +41,7 @@ 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; +import java.util.Optional; /** * An annotation type declaration.<br/><code>@interface X { ... }</code> @@ -132,4 +133,9 @@ public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDecla public ResolvedAnnotationDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedAnnotationDeclaration.class); } + + @Override + public Optional<AnnotationDeclaration> toAnnotationDeclaration() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java index fdf9d9201..e8311b6e5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java @@ -264,4 +264,9 @@ public final class AnnotationMemberDeclaration extends BodyDeclaration<Annotatio public ResolvedAnnotationMemberDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedAnnotationMemberDeclaration.class); } + + @Override + public Optional<AnnotationMemberDeclaration> toAnnotationMemberDeclaration() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java index b32bf1682..575b00015 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java @@ -36,6 +36,7 @@ import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; import static com.github.javaparser.utils.CodeGenerationUtils.f; +import java.util.Optional; /** * Any declaration that can appear between the { and } of a class, interface, or enum. @@ -282,4 +283,48 @@ public abstract class BodyDeclaration<T extends BodyDeclaration<?>> extends Node @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") public void ifTypeDeclaration(Consumer<TypeDeclaration> action) { } + + public Optional<AnnotationDeclaration> toAnnotationDeclaration() { + return Optional.empty(); + } + + public Optional<AnnotationMemberDeclaration> toAnnotationMemberDeclaration() { + return Optional.empty(); + } + + public Optional<CallableDeclaration> toCallableDeclaration() { + return Optional.empty(); + } + + public Optional<ClassOrInterfaceDeclaration> toClassOrInterfaceDeclaration() { + return Optional.empty(); + } + + public Optional<ConstructorDeclaration> toConstructorDeclaration() { + return Optional.empty(); + } + + public Optional<EnumConstantDeclaration> toEnumConstantDeclaration() { + return Optional.empty(); + } + + public Optional<EnumDeclaration> toEnumDeclaration() { + return Optional.empty(); + } + + public Optional<FieldDeclaration> toFieldDeclaration() { + return Optional.empty(); + } + + public Optional<InitializerDeclaration> toInitializerDeclaration() { + return Optional.empty(); + } + + public Optional<MethodDeclaration> toMethodDeclaration() { + return Optional.empty(); + } + + public Optional<TypeDeclaration> toTypeDeclaration() { + return Optional.empty(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java index 42ba46698..0eb7848cd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java @@ -417,4 +417,9 @@ public abstract class CallableDeclaration<T extends CallableDeclaration<?>> exte public CallableDeclaration removeReceiverParameter() { return setReceiverParameter((ReceiverParameter) null); } + + @Override + public Optional<CallableDeclaration> toCallableDeclaration() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java index 91b9614df..4fadbf218 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java @@ -49,6 +49,7 @@ import javax.annotation.Generated; import java.util.EnumSet; import static com.github.javaparser.utils.Utils.assertNotNull; import java.util.function.Consumer; +import java.util.Optional; /** * A definition of a class or interface.<br/><code>class X { ... }</code> @@ -276,4 +277,9 @@ public final class ClassOrInterfaceDeclaration extends TypeDeclaration<ClassOrIn public ResolvedReferenceTypeDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedReferenceTypeDeclaration.class); } + + @Override + public Optional<ClassOrInterfaceDeclaration> toClassOrInterfaceDeclaration() { + return Optional.of(this); + } } 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 a48981bc3..27367ee36 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 @@ -45,6 +45,7 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; import java.util.function.Consumer; +import java.util.Optional; /** * A constructor declaration: <code>class X { X() { } }</code> where X(){} is the constructor declaration. @@ -238,4 +239,9 @@ public final class ConstructorDeclaration extends CallableDeclaration<Constructo public ResolvedConstructorDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedConstructorDeclaration.class); } + + @Override + public Optional<ConstructorDeclaration> toConstructorDeclaration() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java index 40be67fd1..9c7fe6d3c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java @@ -44,6 +44,7 @@ import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; import com.github.javaparser.resolution.declarations.ResolvedEnumConstantDeclaration; import java.util.function.Consumer; +import java.util.Optional; /** * One of the values an enum can take. A(1) and B(2) in this example: <code>enum X { A(1), B(2) }</code> @@ -229,4 +230,9 @@ public final class EnumConstantDeclaration extends BodyDeclaration<EnumConstantD public ResolvedEnumConstantDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedEnumConstantDeclaration.class); } + + @Override + public Optional<EnumConstantDeclaration> toEnumConstantDeclaration() { + return Optional.of(this); + } } 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 5b2b1feb2..fc7699ba0 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 @@ -43,6 +43,7 @@ import java.util.EnumSet; import static com.github.javaparser.utils.Utils.assertNonEmpty; import static com.github.javaparser.utils.Utils.assertNotNull; import java.util.function.Consumer; +import java.util.Optional; /** * The declaration of an enum.<br/><code>enum X { ... }</code> @@ -223,4 +224,9 @@ public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration> impl public ResolvedEnumDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedEnumDeclaration.class); } + + @Override + public Optional<EnumDeclaration> toEnumDeclaration() { + return Optional.of(this); + } } 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 103d24fdc..7bef048ee 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 @@ -298,4 +298,9 @@ public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> im public ResolvedFieldDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedFieldDeclaration.class); } + + @Override + public Optional<FieldDeclaration> toFieldDeclaration() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java index ed608b10d..15277e8a1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java @@ -38,6 +38,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A (possibly static) initializer body. "static { a=3; }" in this example: <code>class X { static { a=3; } } </code> @@ -164,4 +165,9 @@ public final class InitializerDeclaration extends BodyDeclaration<InitializerDec public void ifInitializerDeclaration(Consumer<InitializerDeclaration> action) { action.accept(this); } + + @Override + public Optional<InitializerDeclaration> toInitializerDeclaration() { + return Optional.of(this); + } } 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 b42174a17..4b5cd6de5 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 @@ -338,4 +338,9 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati public ResolvedMethodDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedMethodDeclaration.class); } + + @Override + public Optional<MethodDeclaration> toMethodDeclaration() { + return Optional.of(this); + } } 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 46aa8fc36..3411c7568 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 @@ -41,6 +41,7 @@ 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.Optional; /** * A base class for all types of type declarations. @@ -236,4 +237,9 @@ public abstract class TypeDeclaration<T extends TypeDeclaration<?>> extends Body public void ifTypeDeclaration(Consumer<TypeDeclaration> action) { action.accept(this); } + + @Override + public Optional<TypeDeclaration> toTypeDeclaration() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java index e0a3d2ead..a3dfc28ae 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * <p> @@ -116,4 +117,9 @@ public final class BlockComment extends Comment { public void ifBlockComment(Consumer<BlockComment> action) { action.accept(this); } + + @Override + public Optional<BlockComment> toBlockComment() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java index ad6b668c0..3743bd37f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java @@ -202,4 +202,16 @@ public abstract class Comment extends Node { @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") public void ifLineComment(Consumer<LineComment> action) { } + + public Optional<BlockComment> toBlockComment() { + return Optional.empty(); + } + + public Optional<JavadocComment> toJavadocComment() { + return Optional.empty(); + } + + public Optional<LineComment> toLineComment() { + return Optional.empty(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java index 45846490e..0c96e6a5b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java @@ -32,6 +32,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A Javadoc comment. <code>/** a comment */</code> @@ -118,4 +119,9 @@ public final class JavadocComment extends Comment { public void ifJavadocComment(Consumer<JavadocComment> action) { action.accept(this); } + + @Override + public Optional<JavadocComment> toJavadocComment() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java index daf12b78e..dc27035ca 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * <p> @@ -115,4 +116,9 @@ public final class LineComment extends Comment { public void ifLineComment(Consumer<LineComment> action) { action.accept(this); } + + @Override + public Optional<LineComment> toLineComment() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java index d86219f9c..e64767e1c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java @@ -31,6 +31,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A base class for the different types of annotations. @@ -127,4 +128,9 @@ public abstract class AnnotationExpr extends Expression implements NodeWithName< public void ifAnnotationExpr(Consumer<AnnotationExpr> action) { action.accept(this); } + + @Override + public Optional<AnnotationExpr> toAnnotationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java index a21ebe653..4f439ea05 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java @@ -32,6 +32,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Array brackets [] being used to get a value from an array. @@ -167,4 +168,9 @@ public final class ArrayAccessExpr extends Expression { public void ifArrayAccessExpr(Consumer<ArrayAccessExpr> action) { action.accept(this); } + + @Override + public Optional<ArrayAccessExpr> toArrayAccessExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java index a32d7e1f6..6f3a73a4b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java @@ -270,4 +270,9 @@ public final class ArrayCreationExpr extends Expression { public void ifArrayCreationExpr(Consumer<ArrayCreationExpr> action) { action.accept(this); } + + @Override + public Optional<ArrayCreationExpr> toArrayCreationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java index 028105f1b..6f6ae261a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java @@ -35,6 +35,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * The initialization of an array. In the following sample, the outer { } is an ArrayInitializerExpr. @@ -154,4 +155,9 @@ public final class ArrayInitializerExpr extends Expression { public void ifArrayInitializerExpr(Consumer<ArrayInitializerExpr> action) { action.accept(this); } + + @Override + public Optional<ArrayInitializerExpr> toArrayInitializerExpr() { + return Optional.of(this); + } } 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 b22b9c709..23423575a 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 @@ -33,6 +33,7 @@ import com.github.javaparser.printer.Printable; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * An assignment expression. It supports the operators that are found the the AssignExpr.Operator enum. @@ -203,4 +204,9 @@ public final class AssignExpr extends Expression { public void ifAssignExpr(Consumer<AssignExpr> action) { action.accept(this); } + + @Override + public Optional<AssignExpr> toAssignExpr() { + return Optional.of(this); + } } 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 dc458fb62..96fc72718 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 @@ -33,6 +33,7 @@ import com.github.javaparser.printer.Printable; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * An expression with an expression on the left, an expression on the right, and an operator in the middle. @@ -204,4 +205,9 @@ public final class BinaryExpr extends Expression { public void ifBinaryExpr(Consumer<BinaryExpr> action) { action.accept(this); } + + @Override + public Optional<BinaryExpr> toBinaryExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java index b2b26bc81..35073223a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java @@ -31,6 +31,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * The boolean literals. @@ -133,4 +134,9 @@ public final class BooleanLiteralExpr extends LiteralExpr { public void ifBooleanLiteralExpr(Consumer<BooleanLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<BooleanLiteralExpr> toBooleanLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java index de0ee0785..94e921e7b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A typecast. The (long) in <code>(long)15</code> @@ -170,4 +171,9 @@ public final class CastExpr extends Expression implements NodeWithType<CastExpr, public void ifCastExpr(Consumer<CastExpr> action) { action.accept(this); } + + @Override + public Optional<CastExpr> toCastExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java index bc85bd48a..3200bca3b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java @@ -32,6 +32,7 @@ import com.github.javaparser.utils.Utils; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A literal character. @@ -153,4 +154,9 @@ public final class CharLiteralExpr extends LiteralStringValueExpr { public void ifCharLiteralExpr(Consumer<CharLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<CharLiteralExpr> toCharLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java index ad2a32991..65f4cc6bb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java @@ -35,6 +35,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Defines an expression that accesses the class of a type. @@ -144,4 +145,9 @@ public final class ClassExpr extends Expression implements NodeWithType<ClassExp public void ifClassExpr(Consumer<ClassExpr> action) { action.accept(this); } + + @Override + public Optional<ClassExpr> toClassExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java index 87eb5c736..333cc9604 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java @@ -33,6 +33,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * The ternary conditional expression. @@ -194,4 +195,9 @@ public final class ConditionalExpr extends Expression implements NodeWithConditi public void ifConditionalExpr(Consumer<ConditionalExpr> action) { action.accept(this); } + + @Override + public Optional<ConditionalExpr> toConditionalExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java index cba795938..0447735ac 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A float or a double constant. This value is stored exactly as found in the source. @@ -131,4 +132,9 @@ public final class DoubleLiteralExpr extends LiteralStringValueExpr { public void ifDoubleLiteralExpr(Consumer<DoubleLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<DoubleLiteralExpr> toDoubleLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java index bd0ce0708..5fbe738b9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java @@ -153,4 +153,9 @@ public final class EnclosedExpr extends Expression { public void ifEnclosedExpr(Consumer<EnclosedExpr> action) { action.accept(this); } + + @Override + public Optional<EnclosedExpr> toEnclosedExpr() { + return Optional.of(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 d7c93f431..3b134833c 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 @@ -30,6 +30,7 @@ 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; +import java.util.Optional; /** * A base class for all expressions. @@ -559,4 +560,140 @@ public abstract class Expression extends Node { public ResolvedType calculateResolvedType() { return getSymbolResolver().calculateType(this); } + + public Optional<AnnotationExpr> toAnnotationExpr() { + return Optional.empty(); + } + + public Optional<ArrayAccessExpr> toArrayAccessExpr() { + return Optional.empty(); + } + + public Optional<ArrayCreationExpr> toArrayCreationExpr() { + return Optional.empty(); + } + + public Optional<ArrayInitializerExpr> toArrayInitializerExpr() { + return Optional.empty(); + } + + public Optional<AssignExpr> toAssignExpr() { + return Optional.empty(); + } + + public Optional<BinaryExpr> toBinaryExpr() { + return Optional.empty(); + } + + public Optional<BooleanLiteralExpr> toBooleanLiteralExpr() { + return Optional.empty(); + } + + public Optional<CastExpr> toCastExpr() { + return Optional.empty(); + } + + public Optional<CharLiteralExpr> toCharLiteralExpr() { + return Optional.empty(); + } + + public Optional<ClassExpr> toClassExpr() { + return Optional.empty(); + } + + public Optional<ConditionalExpr> toConditionalExpr() { + return Optional.empty(); + } + + public Optional<DoubleLiteralExpr> toDoubleLiteralExpr() { + return Optional.empty(); + } + + public Optional<EnclosedExpr> toEnclosedExpr() { + return Optional.empty(); + } + + public Optional<FieldAccessExpr> toFieldAccessExpr() { + return Optional.empty(); + } + + public Optional<InstanceOfExpr> toInstanceOfExpr() { + return Optional.empty(); + } + + public Optional<IntegerLiteralExpr> toIntegerLiteralExpr() { + return Optional.empty(); + } + + public Optional<LambdaExpr> toLambdaExpr() { + return Optional.empty(); + } + + public Optional<LiteralExpr> toLiteralExpr() { + return Optional.empty(); + } + + public Optional<LiteralStringValueExpr> toLiteralStringValueExpr() { + return Optional.empty(); + } + + public Optional<LongLiteralExpr> toLongLiteralExpr() { + return Optional.empty(); + } + + public Optional<MarkerAnnotationExpr> toMarkerAnnotationExpr() { + return Optional.empty(); + } + + public Optional<MethodCallExpr> toMethodCallExpr() { + return Optional.empty(); + } + + public Optional<MethodReferenceExpr> toMethodReferenceExpr() { + return Optional.empty(); + } + + public Optional<NameExpr> toNameExpr() { + return Optional.empty(); + } + + public Optional<NormalAnnotationExpr> toNormalAnnotationExpr() { + return Optional.empty(); + } + + public Optional<NullLiteralExpr> toNullLiteralExpr() { + return Optional.empty(); + } + + public Optional<ObjectCreationExpr> toObjectCreationExpr() { + return Optional.empty(); + } + + public Optional<SingleMemberAnnotationExpr> toSingleMemberAnnotationExpr() { + return Optional.empty(); + } + + public Optional<StringLiteralExpr> toStringLiteralExpr() { + return Optional.empty(); + } + + public Optional<SuperExpr> toSuperExpr() { + return Optional.empty(); + } + + public Optional<ThisExpr> toThisExpr() { + return Optional.empty(); + } + + public Optional<TypeExpr> toTypeExpr() { + return Optional.empty(); + } + + public Optional<UnaryExpr> toUnaryExpr() { + return Optional.empty(); + } + + public Optional<VariableDeclarationExpr> toVariableDeclarationExpr() { + return Optional.empty(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java index ad0c1da89..5668a2275 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java @@ -251,4 +251,9 @@ public final class FieldAccessExpr extends Expression implements NodeWithSimpleN public void ifFieldAccessExpr(Consumer<FieldAccessExpr> action) { action.accept(this); } + + @Override + public Optional<FieldAccessExpr> toFieldAccessExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java index fa2b2e1e2..6b672e294 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Usage of the instanceof operator. @@ -171,4 +172,9 @@ public final class InstanceOfExpr extends Expression implements NodeWithType<Ins public void ifInstanceOfExpr(Consumer<InstanceOfExpr> action) { action.accept(this); } + + @Override + public Optional<InstanceOfExpr> toInstanceOfExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java index 8b3686b47..88ca7370f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * All ways to specify an int literal. @@ -143,4 +144,9 @@ public final class IntegerLiteralExpr extends LiteralStringValueExpr { public void ifIntegerLiteralExpr(Consumer<IntegerLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<IntegerLiteralExpr> toIntegerLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java index 392441c69..52fa429ec 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java @@ -217,4 +217,9 @@ public final class LambdaExpr extends Expression implements NodeWithParameters<L public void ifLambdaExpr(Consumer<LambdaExpr> action) { action.accept(this); } + + @Override + public Optional<LambdaExpr> toLambdaExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java index 8e75762d7..8bb07da4b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java @@ -28,6 +28,7 @@ import com.github.javaparser.metamodel.LiteralExprMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A base class for all literal expressions. @@ -94,4 +95,9 @@ public abstract class LiteralExpr extends Expression { public void ifLiteralExpr(Consumer<LiteralExpr> action) { action.accept(this); } + + @Override + public Optional<LiteralExpr> toLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java index 5c44d0c8d..dbb7afde4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralStringValueExpr.java @@ -30,6 +30,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Any literal value that is stored internally as a String. @@ -113,4 +114,9 @@ public abstract class LiteralStringValueExpr extends LiteralExpr { public void ifLiteralStringValueExpr(Consumer<LiteralStringValueExpr> action) { action.accept(this); } + + @Override + public Optional<LiteralStringValueExpr> toLiteralStringValueExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java index d6364e049..6be61dd9d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.LongLiteralExprMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * All ways to specify a long literal. @@ -147,4 +148,9 @@ public final class LongLiteralExpr extends LiteralStringValueExpr { public void ifLongLiteralExpr(Consumer<LongLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<LongLiteralExpr> toLongLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java index ceadf4bfa..e2526521e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java @@ -31,6 +31,7 @@ import static com.github.javaparser.JavaParser.parseName; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * An annotation that uses only the annotation type name. @@ -118,4 +119,9 @@ public final class MarkerAnnotationExpr extends AnnotationExpr { public void ifMarkerAnnotationExpr(Consumer<MarkerAnnotationExpr> action) { action.accept(this); } + + @Override + public Optional<MarkerAnnotationExpr> toMarkerAnnotationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java index f61dde233..efaf44876 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java @@ -289,4 +289,9 @@ public final class MethodCallExpr extends Expression implements NodeWithTypeArgu public ResolvedMethodDeclaration resolveInvokedMethod() { return getSymbolResolver().resolveDeclaration(this, ResolvedMethodDeclaration.class); } + + @Override + public Optional<MethodCallExpr> toMethodCallExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java index 644e54336..1f45dcf3d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java @@ -218,4 +218,9 @@ public final class MethodReferenceExpr extends Expression implements NodeWithTyp public void ifMethodReferenceExpr(Consumer<MethodReferenceExpr> action) { action.accept(this); } + + @Override + public Optional<MethodReferenceExpr> toMethodReferenceExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java index 4630699c4..22b8d2ee7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java @@ -35,8 +35,8 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration; import com.github.javaparser.resolution.types.ResolvedUnionType; - import java.util.function.Consumer; +import java.util.Optional; /** * Whenever a SimpleName is used in an expression, it is wrapped in NameExpr. @@ -156,4 +156,9 @@ public final class NameExpr extends Expression implements NodeWithSimpleName<Nam public ResolvedValueDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedValueDeclaration.class); } + + @Override + public Optional<NameExpr> toNameExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java index eced8e576..18ae0a94b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java @@ -35,6 +35,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * An annotation that has zero or more key-value pairs.<br/><code>@Mapping(a=5, d=10)</code> @@ -170,4 +171,9 @@ public final class NormalAnnotationExpr extends AnnotationExpr { public void ifNormalAnnotationExpr(Consumer<NormalAnnotationExpr> action) { action.accept(this); } + + @Override + public Optional<NormalAnnotationExpr> toNormalAnnotationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java index 62a487b19..d62a5866e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A literal "null". @@ -109,4 +110,9 @@ public final class NullLiteralExpr extends LiteralExpr { public void ifNullLiteralExpr(Consumer<NullLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<NullLiteralExpr> toNullLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java index dd0f2829f..3bd95ab0d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java @@ -345,4 +345,9 @@ public final class ObjectCreationExpr extends Expression implements NodeWithType public ResolvedConstructorDeclaration resolveInvokedConstructor() { return getSymbolResolver().resolveDeclaration(this, ResolvedConstructorDeclaration.class); } + + @Override + public Optional<ObjectCreationExpr> toObjectCreationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java index f56262e09..b9825f35e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java @@ -32,6 +32,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * An annotation that has a single value. <br/><code>@Count(15)</code> @@ -140,4 +141,9 @@ public final class SingleMemberAnnotationExpr extends AnnotationExpr { public void ifSingleMemberAnnotationExpr(Consumer<SingleMemberAnnotationExpr> action) { action.accept(this); } + + @Override + public Optional<SingleMemberAnnotationExpr> toSingleMemberAnnotationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java index 4602382eb..a71985b51 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java @@ -32,6 +32,7 @@ import com.github.javaparser.utils.Utils; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A literal string. @@ -163,4 +164,9 @@ public final class StringLiteralExpr extends LiteralStringValueExpr { public void ifStringLiteralExpr(Consumer<StringLiteralExpr> action) { action.accept(this); } + + @Override + public Optional<StringLiteralExpr> toStringLiteralExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java index 8b51e4a6b..fe38a2693 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java @@ -162,4 +162,9 @@ public final class SuperExpr extends Expression { public void ifSuperExpr(Consumer<SuperExpr> action) { action.accept(this); } + + @Override + public Optional<SuperExpr> toSuperExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java index 3c77bf7d8..9c133770c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java @@ -35,7 +35,6 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; import com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration; - import java.util.function.Consumer; /** @@ -166,4 +165,9 @@ public final class ThisExpr extends Expression implements Resolvable<ResolvedTyp public ResolvedTypeDeclaration resolve() { return getSymbolResolver().resolveDeclaration(this, ResolvedTypeDeclaration.class); } + + @Override + public Optional<ThisExpr> toThisExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java index 9619a28df..cd3bd880e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java @@ -35,6 +35,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * This class is just instantiated as scopes for MethodReferenceExpr nodes to encapsulate Types. @@ -145,4 +146,9 @@ public final class TypeExpr extends Expression implements NodeWithType<TypeExpr, public void ifTypeExpr(Consumer<TypeExpr> action) { action.accept(this); } + + @Override + public Optional<TypeExpr> toTypeExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java index 14f1ace8a..8bd9e78c2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java @@ -35,6 +35,7 @@ import com.github.javaparser.printer.Printable; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * An expression where an operator is applied to a single expression. @@ -203,4 +204,9 @@ public final class UnaryExpr extends Expression implements NodeWithExpression<Un public void ifUnaryExpr(Consumer<UnaryExpr> action) { action.accept(this); } + + @Override + public Optional<UnaryExpr> toUnaryExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java index f320ca51a..e455967ad 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java @@ -45,6 +45,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A declaration of variables. @@ -251,4 +252,9 @@ public final class VariableDeclarationExpr extends Expression implements NodeWit public void ifVariableDeclarationExpr(Consumer<VariableDeclarationExpr> action) { action.accept(this); } + + @Override + public Optional<VariableDeclarationExpr> toVariableDeclarationExpr() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java index bcf94e3e6..8f59ee4c4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java @@ -17,6 +17,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; public final class ModuleExportsStmt extends ModuleStmt implements NodeWithName<ModuleExportsStmt> { @@ -154,4 +155,9 @@ public final class ModuleExportsStmt extends ModuleStmt implements NodeWithName< public void ifModuleExportsStmt(Consumer<ModuleExportsStmt> action) { action.accept(this); } + + @Override + public Optional<ModuleExportsStmt> toModuleExportsStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensStmt.java index 70635575d..03b9862ca 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleOpensStmt.java @@ -17,6 +17,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; public final class ModuleOpensStmt extends ModuleStmt implements NodeWithName<ModuleOpensStmt> { @@ -154,4 +155,9 @@ public final class ModuleOpensStmt extends ModuleStmt implements NodeWithName<Mo public void ifModuleOpensStmt(Consumer<ModuleOpensStmt> action) { action.accept(this); } + + @Override + public Optional<ModuleOpensStmt> toModuleOpensStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java index dd7ae14c2..48c3fb82d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java @@ -18,6 +18,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; public final class ModuleProvidesStmt extends ModuleStmt implements NodeWithType<ModuleProvidesStmt, Type> { @@ -155,4 +156,9 @@ public final class ModuleProvidesStmt extends ModuleStmt implements NodeWithType public void ifModuleProvidesStmt(Consumer<ModuleProvidesStmt> action) { action.accept(this); } + + @Override + public Optional<ModuleProvidesStmt> toModuleProvidesStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresStmt.java index 9fb91b594..2c6dd4b10 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleRequiresStmt.java @@ -18,6 +18,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A require statement in module-info.java. <code>require a.b.C;</code> @@ -151,4 +152,9 @@ public final class ModuleRequiresStmt extends ModuleStmt implements NodeWithStat public void ifModuleRequiresStmt(Consumer<ModuleRequiresStmt> action) { action.accept(this); } + + @Override + public Optional<ModuleRequiresStmt> toModuleRequiresStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleStmt.java index ab5c3451f..e75fe7b0f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleStmt.java @@ -9,6 +9,7 @@ import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; import static com.github.javaparser.utils.CodeGenerationUtils.f; +import java.util.Optional; public abstract class ModuleStmt extends Node { @@ -123,4 +124,24 @@ public abstract class ModuleStmt extends Node { @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") public void ifModuleUsesStmt(Consumer<ModuleUsesStmt> action) { } + + public Optional<ModuleExportsStmt> toModuleExportsStmt() { + return Optional.empty(); + } + + public Optional<ModuleOpensStmt> toModuleOpensStmt() { + return Optional.empty(); + } + + public Optional<ModuleProvidesStmt> toModuleProvidesStmt() { + return Optional.empty(); + } + + public Optional<ModuleRequiresStmt> toModuleRequiresStmt() { + return Optional.empty(); + } + + public Optional<ModuleUsesStmt> toModuleUsesStmt() { + return Optional.empty(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java index abe92ba45..a30e880fe 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java @@ -14,6 +14,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; public final class ModuleUsesStmt extends ModuleStmt implements NodeWithType<ModuleUsesStmt, Type> { @@ -117,4 +118,9 @@ public final class ModuleUsesStmt extends ModuleStmt implements NodeWithType<Mod public void ifModuleUsesStmt(Consumer<ModuleUsesStmt> action) { action.accept(this); } + + @Override + public Optional<ModuleUsesStmt> toModuleUsesStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java index 611e87ae9..8e8cb796d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java @@ -191,4 +191,9 @@ public final class AssertStmt extends Statement { public void ifAssertStmt(Consumer<AssertStmt> action) { action.accept(this); } + + @Override + public Optional<AssertStmt> toAssertStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java index 239c955c2..4e63fb952 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Statements in between { and }. @@ -152,4 +153,9 @@ public final class BlockStmt extends Statement implements NodeWithStatements<Blo public void ifBlockStmt(Consumer<BlockStmt> action) { action.accept(this); } + + @Override + public Optional<BlockStmt> toBlockStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java index 5ef666989..1192b4386 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java @@ -164,4 +164,9 @@ public final class BreakStmt extends Statement { public void ifBreakStmt(Consumer<BreakStmt> action) { action.accept(this); } + + @Override + public Optional<BreakStmt> toBreakStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java index 9bfa5118f..639c7dbc0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java @@ -166,4 +166,9 @@ public final class ContinueStmt extends Statement implements NodeWithOptionalLab public void ifContinueStmt(Consumer<ContinueStmt> action) { action.accept(this); } + + @Override + public Optional<ContinueStmt> toContinueStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java index 3fcf0facc..a40ac489f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A do-while. @@ -171,4 +172,9 @@ public final class DoStmt extends Statement implements NodeWithBody<DoStmt>, Nod public void ifDoStmt(Consumer<DoStmt> action) { action.accept(this); } + + @Override + public Optional<DoStmt> toDoStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java index 2f035e889..5fc9897b0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java @@ -30,6 +30,7 @@ import com.github.javaparser.metamodel.EmptyStmtMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import java.util.function.Consumer; +import java.util.Optional; /** * An empty statement is a ";" where a statement is expected. @@ -107,4 +108,9 @@ public final class EmptyStmt extends Statement { public void ifEmptyStmt(Consumer<EmptyStmt> action) { action.accept(this); } + + @Override + public Optional<EmptyStmt> toEmptyStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java index 20b5c8d66..105fb2d14 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java @@ -39,7 +39,6 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; - import java.util.function.Consumer; /** @@ -288,4 +287,9 @@ public final class ExplicitConstructorInvocationStmt extends Statement implement public ResolvedConstructorDeclaration resolveInvokedConstructor() { return getSymbolResolver().resolveDeclaration(this, ResolvedConstructorDeclaration.class); } + + @Override + public Optional<ExplicitConstructorInvocationStmt> toExplicitConstructorInvocationStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java index d38ef9705..d8e35fc64 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java @@ -35,6 +35,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Used to wrap an expression so that it can take the place of a statement. @@ -143,4 +144,9 @@ public final class ExpressionStmt extends Statement implements NodeWithExpressio public void ifExpressionStmt(Consumer<ExpressionStmt> action) { action.accept(this); } + + @Override + public Optional<ExpressionStmt> toExpressionStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java index bb3c079cb..45c51ef19 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java @@ -261,4 +261,9 @@ public final class ForStmt extends Statement implements NodeWithBody<ForStmt> { public void ifForStmt(Consumer<ForStmt> action) { action.accept(this); } + + @Override + public Optional<ForStmt> toForStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java index 90bc00edb..b8158f696 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A for-each statement. @@ -201,4 +202,9 @@ public final class ForeachStmt extends Statement implements NodeWithBody<Foreach public void ifForeachStmt(Consumer<ForeachStmt> action) { action.accept(this); } + + @Override + public Optional<ForeachStmt> toForeachStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java index f2c94aedb..bb80cadda 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java @@ -249,4 +249,9 @@ public final class IfStmt extends Statement implements NodeWithCondition<IfStmt> public void ifIfStmt(Consumer<IfStmt> action) { action.accept(this); } + + @Override + public Optional<IfStmt> toIfStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java index 84d3643eb..355dc5bc8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java @@ -33,6 +33,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A statement that is labeled, like <code>label123: println("continuing");</code> @@ -171,4 +172,9 @@ public final class LabeledStmt extends Statement { public void ifLabeledStmt(Consumer<LabeledStmt> action) { action.accept(this); } + + @Override + public Optional<LabeledStmt> toLabeledStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java index e40769e6a..d1f8be4e4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java @@ -33,6 +33,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A class declaration inside a method. @@ -144,4 +145,9 @@ public final class LocalClassDeclarationStmt extends Statement { public void ifLocalClassDeclarationStmt(Consumer<LocalClassDeclarationStmt> action) { action.accept(this); } + + @Override + public Optional<LocalClassDeclarationStmt> toLocalClassDeclarationStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java index acea3f7d2..b6538d4d2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java @@ -167,4 +167,9 @@ public final class ReturnStmt extends Statement { public void ifReturnStmt(Consumer<ReturnStmt> action) { action.accept(this); } + + @Override + public Optional<ReturnStmt> toReturnStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java index 7df4c83e4..5a6e8462c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java @@ -29,6 +29,7 @@ import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; import static com.github.javaparser.utils.CodeGenerationUtils.f; +import java.util.Optional; /** * A base class for all statements. @@ -372,4 +373,88 @@ public abstract class Statement extends Node { @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") public void ifWhileStmt(Consumer<WhileStmt> action) { } + + public Optional<AssertStmt> toAssertStmt() { + return Optional.empty(); + } + + public Optional<BlockStmt> toBlockStmt() { + return Optional.empty(); + } + + public Optional<BreakStmt> toBreakStmt() { + return Optional.empty(); + } + + public Optional<ContinueStmt> toContinueStmt() { + return Optional.empty(); + } + + public Optional<DoStmt> toDoStmt() { + return Optional.empty(); + } + + public Optional<EmptyStmt> toEmptyStmt() { + return Optional.empty(); + } + + public Optional<ExplicitConstructorInvocationStmt> toExplicitConstructorInvocationStmt() { + return Optional.empty(); + } + + public Optional<ExpressionStmt> toExpressionStmt() { + return Optional.empty(); + } + + public Optional<ForStmt> toForStmt() { + return Optional.empty(); + } + + public Optional<ForeachStmt> toForeachStmt() { + return Optional.empty(); + } + + public Optional<IfStmt> toIfStmt() { + return Optional.empty(); + } + + public Optional<LabeledStmt> toLabeledStmt() { + return Optional.empty(); + } + + public Optional<LocalClassDeclarationStmt> toLocalClassDeclarationStmt() { + return Optional.empty(); + } + + public Optional<ReturnStmt> toReturnStmt() { + return Optional.empty(); + } + + public Optional<SwitchEntryStmt> toSwitchEntryStmt() { + return Optional.empty(); + } + + public Optional<SwitchStmt> toSwitchStmt() { + return Optional.empty(); + } + + public Optional<SynchronizedStmt> toSynchronizedStmt() { + return Optional.empty(); + } + + public Optional<ThrowStmt> toThrowStmt() { + return Optional.empty(); + } + + public Optional<TryStmt> toTryStmt() { + return Optional.empty(); + } + + public Optional<UnparsableStmt> toUnparsableStmt() { + return Optional.empty(); + } + + public Optional<WhileStmt> toWhileStmt() { + return Optional.empty(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java index e6157a822..c32a1b476 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java @@ -213,4 +213,9 @@ public final class SwitchEntryStmt extends Statement implements NodeWithStatemen public void ifSwitchEntryStmt(Consumer<SwitchEntryStmt> action) { action.accept(this); } + + @Override + public Optional<SwitchEntryStmt> toSwitchEntryStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java index 92b5d8718..778bbb14e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java @@ -37,6 +37,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A switch statement. @@ -196,4 +197,9 @@ public final class SwitchStmt extends Statement { public void ifSwitchStmt(Consumer<SwitchStmt> action) { action.accept(this); } + + @Override + public Optional<SwitchStmt> toSwitchStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java index be2c40c26..2b36fc281 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Usage of the synchronized keyword. @@ -171,4 +172,9 @@ public final class SynchronizedStmt extends Statement implements NodeWithBlockSt public void ifSynchronizedStmt(Consumer<SynchronizedStmt> action) { action.accept(this); } + + @Override + public Optional<SynchronizedStmt> toSynchronizedStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java index 1a9489c4e..a9e843238 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java @@ -35,6 +35,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * Usage of the throw statement. @@ -144,4 +145,9 @@ public final class ThrowStmt extends Statement implements NodeWithExpression<Thr public void ifThrowStmt(Consumer<ThrowStmt> action) { action.accept(this); } + + @Override + public Optional<ThrowStmt> toThrowStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java index a96cec9cc..efa45f862 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java @@ -310,4 +310,9 @@ public final class TryStmt extends Statement { public void ifTryStmt(Consumer<TryStmt> action) { action.accept(this); } + + @Override + public Optional<TryStmt> toTryStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java index c66798310..08fcf3b6e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/UnparsableStmt.java @@ -11,6 +11,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.UnparsableStmtMetaModel; import static com.github.javaparser.ast.Node.Parsedness.*; import java.util.function.Consumer; +import java.util.Optional; /** * A statement that had parse errors. @@ -93,4 +94,9 @@ public final class UnparsableStmt extends Statement { public void ifUnparsableStmt(Consumer<UnparsableStmt> action) { action.accept(this); } + + @Override + public Optional<UnparsableStmt> toUnparsableStmt() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java index 52c2c4894..4c7d1a8cb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java @@ -36,6 +36,7 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import javax.annotation.Generated; import com.github.javaparser.TokenRange; import java.util.function.Consumer; +import java.util.Optional; /** * A while statement. @@ -171,4 +172,9 @@ public final class WhileStmt extends Statement implements NodeWithBody<WhileStmt public void ifWhileStmt(Consumer<WhileStmt> action) { action.accept(this); } + + @Override + public Optional<WhileStmt> toWhileStmt() { + return Optional.of(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 45ccd1263..d5d8e26a8 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 @@ -283,4 +283,9 @@ public final class ArrayType extends ReferenceType implements NodeWithAnnotation public void ifArrayType(Consumer<ArrayType> action) { action.accept(this); } + + @Override + public Optional<ArrayType> toArrayType() { + return Optional.of(this); + } } 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 e936887a4..3ea6e145d 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 @@ -290,4 +290,9 @@ public final class ClassOrInterfaceType extends ReferenceType implements NodeWit public ResolvedReferenceType resolve() { return getSymbolResolver().toResolvedType(this, ResolvedReferenceType.class); } + + @Override + public Optional<ClassOrInterfaceType> toClassOrInterfaceType() { + return Optional.of(this); + } } 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 bf9a3f7aa..d672dd76a 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 @@ -41,6 +41,7 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.types.ResolvedIntersectionType; import com.github.javaparser.resolution.types.ResolvedReferenceType; import java.util.function.Consumer; +import java.util.Optional; /** * Represents a set of types. A given value of this type has to be assignable to at all of the element types. @@ -176,4 +177,9 @@ public final class IntersectionType extends Type implements NodeWithAnnotations< public ResolvedIntersectionType resolve() { return getSymbolResolver().toResolvedType(this, ResolvedIntersectionType.class); } + + @Override + public Optional<IntersectionType> toIntersectionType() { + return Optional.of(this); + } } 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 f65be449e..5fc257bb7 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 @@ -41,6 +41,7 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.types.ResolvedPrimitiveType; import com.github.javaparser.resolution.types.ResolvedReferenceType; import java.util.function.Consumer; +import java.util.Optional; /** * A primitive type. @@ -230,4 +231,9 @@ public final class PrimitiveType extends Type implements NodeWithAnnotations<Pri public ResolvedPrimitiveType resolve() { return getSymbolResolver().toResolvedType(this, ResolvedPrimitiveType.class); } + + @Override + public Optional<PrimitiveType> toPrimitiveType() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java index d65bfe7c9..9ca8c363c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java @@ -28,9 +28,9 @@ import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.ReferenceTypeMetaModel; - import javax.annotation.Generated; import java.util.function.Consumer; +import java.util.Optional; /** * Base class for reference types. @@ -101,4 +101,9 @@ public abstract class ReferenceType extends Type { public void ifReferenceType(Consumer<ReferenceType> action) { action.accept(this); } + + @Override + public Optional<ReferenceType> toReferenceType() { + return Optional.of(this); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java index 12405896d..f20e92668 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java @@ -38,6 +38,7 @@ import com.github.javaparser.resolution.types.ResolvedType; import java.util.function.Consumer; import java.util.function.Supplier; import static com.github.javaparser.utils.CodeGenerationUtils.f; +import java.util.Optional; /** * Base class for types. @@ -298,4 +299,44 @@ public abstract class Type extends Node implements Resolvable<Object> { @Override public abstract ResolvedType resolve(); + + public Optional<ArrayType> toArrayType() { + return Optional.empty(); + } + + public Optional<ClassOrInterfaceType> toClassOrInterfaceType() { + return Optional.empty(); + } + + public Optional<IntersectionType> toIntersectionType() { + return Optional.empty(); + } + + public Optional<PrimitiveType> toPrimitiveType() { + return Optional.empty(); + } + + public Optional<ReferenceType> toReferenceType() { + return Optional.empty(); + } + + public Optional<TypeParameter> toTypeParameter() { + return Optional.empty(); + } + + public Optional<UnionType> toUnionType() { + return Optional.empty(); + } + + public Optional<UnknownType> toUnknownType() { + return Optional.empty(); + } + + public Optional<VoidType> toVoidType() { + return Optional.empty(); + } + + public Optional<WildcardType> toWildcardType() { + return Optional.empty(); + } } 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 6f2ecb04c..b2a63a437 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 @@ -41,6 +41,7 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration; import com.github.javaparser.resolution.types.ResolvedTypeVariable; import java.util.function.Consumer; +import java.util.Optional; /** * A type parameter. @@ -236,4 +237,9 @@ public final class TypeParameter extends ReferenceType implements NodeWithSimple public ResolvedTypeVariable resolve() { return getSymbolResolver().toResolvedType(this, ResolvedTypeVariable.class); } + + @Override + public Optional<TypeParameter> toTypeParameter() { + return Optional.of(this); + } } 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 6feeada4d..8c77df024 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 @@ -41,6 +41,7 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.types.ResolvedReferenceType; import com.github.javaparser.resolution.types.ResolvedUnionType; import java.util.function.Consumer; +import java.util.Optional; /** * <h1>The union type</h1> @@ -185,4 +186,9 @@ public final class UnionType extends Type implements NodeWithAnnotations<UnionTy public ResolvedUnionType resolve() { return getSymbolResolver().toResolvedType(this, ResolvedUnionType.class); } + + @Override + public Optional<UnionType> toUnionType() { + return Optional.of(this); + } } 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 0afd12e9a..260ccbbca 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 @@ -37,6 +37,7 @@ import com.github.javaparser.resolution.types.ResolvedReferenceType; import com.github.javaparser.resolution.types.ResolvedType; import com.github.javaparser.resolution.types.ResolvedUnionType; import java.util.function.Consumer; +import java.util.Optional; /** * An unknown parameter type object. It plays the role of a null object for @@ -137,4 +138,9 @@ public final class UnknownType extends Type { public ResolvedType resolve() { return getSymbolResolver().toResolvedType(this, ResolvedReferenceType.class); } + + @Override + public Optional<UnknownType> toUnknownType() { + return Optional.of(this); + } } 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 7bd59e147..49cc6a9e3 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 @@ -37,6 +37,7 @@ import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.types.ResolvedUnionType; import com.github.javaparser.resolution.types.ResolvedVoidType; import java.util.function.Consumer; +import java.util.Optional; /** * The return type of a {@link com.github.javaparser.ast.body.MethodDeclaration} @@ -132,4 +133,9 @@ public final class VoidType extends Type implements NodeWithAnnotations<VoidType public ResolvedVoidType resolve() { return getSymbolResolver().toResolvedType(this, ResolvedVoidType.class); } + + @Override + public Optional<VoidType> toVoidType() { + return Optional.of(this); + } } 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 984222885..6060dcf80 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 @@ -289,4 +289,9 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild public ResolvedWildcard resolve() { return getSymbolResolver().toResolvedType(this, ResolvedWildcard.class); } + + @Override + public Optional<WildcardType> toWildcardType() { + return Optional.of(this); + } } |