aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java1080
1 files changed, 1080 insertions, 0 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java
new file mode 100644
index 000000000..4ae343ac6
--- /dev/null
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java
@@ -0,0 +1,1080 @@
+/*
+ * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.*;
+import com.github.javaparser.ast.body.*;
+import com.github.javaparser.ast.comments.*;
+import com.github.javaparser.ast.expr.*;
+import com.github.javaparser.ast.modules.*;
+import com.github.javaparser.ast.stmt.*;
+import com.github.javaparser.ast.type.*;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+/**
+ * A visitor that clones (copies) a node and all its children.
+ */
+public class CloneVisitor implements GenericVisitor<Visitable, Object> {
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final CompilationUnit n, final Object arg) {
+ NodeList<ImportDeclaration> imports = cloneList(n.getImports(), arg);
+ ModuleDeclaration module = cloneNode(n.getModule(), arg);
+ PackageDeclaration packageDeclaration = cloneNode(n.getPackageDeclaration(), arg);
+ NodeList<TypeDeclaration<?>> types = cloneList(n.getTypes(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ CompilationUnit r = new CompilationUnit(n.getTokenRange().orElse(null), packageDeclaration, imports, types, module);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final PackageDeclaration n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ PackageDeclaration r = new PackageDeclaration(n.getTokenRange().orElse(null), annotations, name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final TypeParameter n, final Object arg) {
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<ClassOrInterfaceType> typeBound = cloneList(n.getTypeBound(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ TypeParameter r = new TypeParameter(n.getTokenRange().orElse(null), name, typeBound, annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final LineComment n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ LineComment r = new LineComment(n.getTokenRange().orElse(null), n.getContent());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final BlockComment n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ BlockComment r = new BlockComment(n.getTokenRange().orElse(null), n.getContent());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ClassOrInterfaceDeclaration n, final Object arg) {
+ NodeList<ClassOrInterfaceType> extendedTypes = cloneList(n.getExtendedTypes(), arg);
+ NodeList<ClassOrInterfaceType> implementedTypes = cloneList(n.getImplementedTypes(), arg);
+ NodeList<TypeParameter> typeParameters = cloneList(n.getTypeParameters(), arg);
+ NodeList<BodyDeclaration<?>> members = cloneList(n.getMembers(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ClassOrInterfaceDeclaration r = new ClassOrInterfaceDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, n.isInterface(), name, typeParameters, extendedTypes, implementedTypes, members);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final EnumDeclaration n, final Object arg) {
+ NodeList<EnumConstantDeclaration> entries = cloneList(n.getEntries(), arg);
+ NodeList<ClassOrInterfaceType> implementedTypes = cloneList(n.getImplementedTypes(), arg);
+ NodeList<BodyDeclaration<?>> members = cloneList(n.getMembers(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ EnumDeclaration r = new EnumDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, name, implementedTypes, entries, members);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final EnumConstantDeclaration n, final Object arg) {
+ NodeList<Expression> arguments = cloneList(n.getArguments(), arg);
+ NodeList<BodyDeclaration<?>> classBody = cloneList(n.getClassBody(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ EnumConstantDeclaration r = new EnumConstantDeclaration(n.getTokenRange().orElse(null), annotations, name, arguments, classBody);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final AnnotationDeclaration n, final Object arg) {
+ NodeList<BodyDeclaration<?>> members = cloneList(n.getMembers(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ AnnotationDeclaration r = new AnnotationDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, name, members);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final AnnotationMemberDeclaration n, final Object arg) {
+ Expression defaultValue = cloneNode(n.getDefaultValue(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ Type type = cloneNode(n.getType(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ AnnotationMemberDeclaration r = new AnnotationMemberDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, type, name, defaultValue);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final FieldDeclaration n, final Object arg) {
+ NodeList<VariableDeclarator> variables = cloneList(n.getVariables(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ FieldDeclaration r = new FieldDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, variables);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final VariableDeclarator n, final Object arg) {
+ Expression initializer = cloneNode(n.getInitializer(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ Type type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ VariableDeclarator r = new VariableDeclarator(n.getTokenRange().orElse(null), type, name, initializer);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ConstructorDeclaration n, final Object arg) {
+ BlockStmt body = cloneNode(n.getBody(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<Parameter> parameters = cloneList(n.getParameters(), arg);
+ ReceiverParameter receiverParameter = cloneNode(n.getReceiverParameter(), arg);
+ NodeList<ReferenceType> thrownExceptions = cloneList(n.getThrownExceptions(), arg);
+ NodeList<TypeParameter> typeParameters = cloneList(n.getTypeParameters(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ConstructorDeclaration r = new ConstructorDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, typeParameters, name, parameters, thrownExceptions, body, receiverParameter);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final MethodDeclaration n, final Object arg) {
+ BlockStmt body = cloneNode(n.getBody(), arg);
+ Type type = cloneNode(n.getType(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ NodeList<Parameter> parameters = cloneList(n.getParameters(), arg);
+ ReceiverParameter receiverParameter = cloneNode(n.getReceiverParameter(), arg);
+ NodeList<ReferenceType> thrownExceptions = cloneList(n.getThrownExceptions(), arg);
+ NodeList<TypeParameter> typeParameters = cloneList(n.getTypeParameters(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ MethodDeclaration r = new MethodDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, typeParameters, type, name, parameters, thrownExceptions, body, receiverParameter);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final Parameter n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ Type type = cloneNode(n.getType(), arg);
+ NodeList<AnnotationExpr> varArgsAnnotations = cloneList(n.getVarArgsAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ Parameter r = new Parameter(n.getTokenRange().orElse(null), n.getModifiers(), annotations, type, n.isVarArgs(), varArgsAnnotations, name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final InitializerDeclaration n, final Object arg) {
+ BlockStmt body = cloneNode(n.getBody(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ InitializerDeclaration r = new InitializerDeclaration(n.getTokenRange().orElse(null), n.isStatic(), body);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final JavadocComment n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ JavadocComment r = new JavadocComment(n.getTokenRange().orElse(null), n.getContent());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ClassOrInterfaceType n, final Object arg) {
+ SimpleName name = cloneNode(n.getName(), arg);
+ ClassOrInterfaceType scope = cloneNode(n.getScope(), arg);
+ NodeList<Type> typeArguments = cloneList(n.getTypeArguments().orElse(null), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ClassOrInterfaceType r = new ClassOrInterfaceType(n.getTokenRange().orElse(null), scope, name, typeArguments, annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final PrimitiveType n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ PrimitiveType r = new PrimitiveType(n.getTokenRange().orElse(null), n.getType(), annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ArrayType n, final Object arg) {
+ Type componentType = cloneNode(n.getComponentType(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ArrayType r = new ArrayType(n.getTokenRange().orElse(null), componentType, n.getOrigin(), annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ArrayCreationLevel n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Expression dimension = cloneNode(n.getDimension(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ArrayCreationLevel r = new ArrayCreationLevel(n.getTokenRange().orElse(null), dimension, annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final IntersectionType n, final Object arg) {
+ NodeList<ReferenceType> elements = cloneList(n.getElements(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ IntersectionType r = new IntersectionType(n.getTokenRange().orElse(null), elements);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final UnionType n, final Object arg) {
+ NodeList<ReferenceType> elements = cloneList(n.getElements(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ UnionType r = new UnionType(n.getTokenRange().orElse(null), elements);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final VoidType n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ VoidType r = new VoidType(n.getTokenRange().orElse(null));
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final WildcardType n, final Object arg) {
+ ReferenceType extendedType = cloneNode(n.getExtendedType(), arg);
+ ReferenceType superType = cloneNode(n.getSuperType(), arg);
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ WildcardType r = new WildcardType(n.getTokenRange().orElse(null), extendedType, superType, annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final UnknownType n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ UnknownType r = new UnknownType(n.getTokenRange().orElse(null));
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ArrayAccessExpr n, final Object arg) {
+ Expression index = cloneNode(n.getIndex(), arg);
+ Expression name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ArrayAccessExpr r = new ArrayAccessExpr(n.getTokenRange().orElse(null), name, index);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ArrayCreationExpr n, final Object arg) {
+ Type elementType = cloneNode(n.getElementType(), arg);
+ ArrayInitializerExpr initializer = cloneNode(n.getInitializer(), arg);
+ NodeList<ArrayCreationLevel> levels = cloneList(n.getLevels(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ArrayCreationExpr r = new ArrayCreationExpr(n.getTokenRange().orElse(null), elementType, levels, initializer);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ArrayInitializerExpr n, final Object arg) {
+ NodeList<Expression> values = cloneList(n.getValues(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ArrayInitializerExpr r = new ArrayInitializerExpr(n.getTokenRange().orElse(null), values);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final AssignExpr n, final Object arg) {
+ Expression target = cloneNode(n.getTarget(), arg);
+ Expression value = cloneNode(n.getValue(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ AssignExpr r = new AssignExpr(n.getTokenRange().orElse(null), target, value, n.getOperator());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final BinaryExpr n, final Object arg) {
+ Expression left = cloneNode(n.getLeft(), arg);
+ Expression right = cloneNode(n.getRight(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ BinaryExpr r = new BinaryExpr(n.getTokenRange().orElse(null), left, right, n.getOperator());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final CastExpr n, final Object arg) {
+ Expression expression = cloneNode(n.getExpression(), arg);
+ Type type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ CastExpr r = new CastExpr(n.getTokenRange().orElse(null), type, expression);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ClassExpr n, final Object arg) {
+ Type type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ClassExpr r = new ClassExpr(n.getTokenRange().orElse(null), type);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ConditionalExpr n, final Object arg) {
+ Expression condition = cloneNode(n.getCondition(), arg);
+ Expression elseExpr = cloneNode(n.getElseExpr(), arg);
+ Expression thenExpr = cloneNode(n.getThenExpr(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ConditionalExpr r = new ConditionalExpr(n.getTokenRange().orElse(null), condition, thenExpr, elseExpr);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final EnclosedExpr n, final Object arg) {
+ Expression inner = cloneNode(n.getInner(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ EnclosedExpr r = new EnclosedExpr(n.getTokenRange().orElse(null), inner);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final FieldAccessExpr n, final Object arg) {
+ SimpleName name = cloneNode(n.getName(), arg);
+ Expression scope = cloneNode(n.getScope(), arg);
+ NodeList<Type> typeArguments = cloneList(n.getTypeArguments().orElse(null), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ FieldAccessExpr r = new FieldAccessExpr(n.getTokenRange().orElse(null), scope, typeArguments, name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final InstanceOfExpr n, final Object arg) {
+ Expression expression = cloneNode(n.getExpression(), arg);
+ ReferenceType type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ InstanceOfExpr r = new InstanceOfExpr(n.getTokenRange().orElse(null), expression, type);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final StringLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ StringLiteralExpr r = new StringLiteralExpr(n.getTokenRange().orElse(null), n.getValue());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final IntegerLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ IntegerLiteralExpr r = new IntegerLiteralExpr(n.getTokenRange().orElse(null), n.getValue());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final LongLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ LongLiteralExpr r = new LongLiteralExpr(n.getTokenRange().orElse(null), n.getValue());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final CharLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ CharLiteralExpr r = new CharLiteralExpr(n.getTokenRange().orElse(null), n.getValue());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final DoubleLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ DoubleLiteralExpr r = new DoubleLiteralExpr(n.getTokenRange().orElse(null), n.getValue());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final BooleanLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ BooleanLiteralExpr r = new BooleanLiteralExpr(n.getTokenRange().orElse(null), n.getValue());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final NullLiteralExpr n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ NullLiteralExpr r = new NullLiteralExpr(n.getTokenRange().orElse(null));
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final MethodCallExpr n, final Object arg) {
+ NodeList<Expression> arguments = cloneList(n.getArguments(), arg);
+ SimpleName name = cloneNode(n.getName(), arg);
+ Expression scope = cloneNode(n.getScope(), arg);
+ NodeList<Type> typeArguments = cloneList(n.getTypeArguments().orElse(null), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ MethodCallExpr r = new MethodCallExpr(n.getTokenRange().orElse(null), scope, typeArguments, name, arguments);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final NameExpr n, final Object arg) {
+ SimpleName name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ NameExpr r = new NameExpr(n.getTokenRange().orElse(null), name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ObjectCreationExpr n, final Object arg) {
+ NodeList<BodyDeclaration<?>> anonymousClassBody = cloneList(n.getAnonymousClassBody().orElse(null), arg);
+ NodeList<Expression> arguments = cloneList(n.getArguments(), arg);
+ Expression scope = cloneNode(n.getScope(), arg);
+ ClassOrInterfaceType type = cloneNode(n.getType(), arg);
+ NodeList<Type> typeArguments = cloneList(n.getTypeArguments().orElse(null), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ObjectCreationExpr r = new ObjectCreationExpr(n.getTokenRange().orElse(null), scope, type, typeArguments, arguments, anonymousClassBody);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final Name n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Name qualifier = cloneNode(n.getQualifier(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ Name r = new Name(n.getTokenRange().orElse(null), qualifier, n.getIdentifier(), annotations);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final SimpleName n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ SimpleName r = new SimpleName(n.getTokenRange().orElse(null), n.getIdentifier());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ThisExpr n, final Object arg) {
+ Expression classExpr = cloneNode(n.getClassExpr(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ThisExpr r = new ThisExpr(n.getTokenRange().orElse(null), classExpr);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final SuperExpr n, final Object arg) {
+ Expression classExpr = cloneNode(n.getClassExpr(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ SuperExpr r = new SuperExpr(n.getTokenRange().orElse(null), classExpr);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final UnaryExpr n, final Object arg) {
+ Expression expression = cloneNode(n.getExpression(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ UnaryExpr r = new UnaryExpr(n.getTokenRange().orElse(null), expression, n.getOperator());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final VariableDeclarationExpr n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ NodeList<VariableDeclarator> variables = cloneList(n.getVariables(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ VariableDeclarationExpr r = new VariableDeclarationExpr(n.getTokenRange().orElse(null), n.getModifiers(), annotations, variables);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final MarkerAnnotationExpr n, final Object arg) {
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ MarkerAnnotationExpr r = new MarkerAnnotationExpr(n.getTokenRange().orElse(null), name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final SingleMemberAnnotationExpr n, final Object arg) {
+ Expression memberValue = cloneNode(n.getMemberValue(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ SingleMemberAnnotationExpr r = new SingleMemberAnnotationExpr(n.getTokenRange().orElse(null), name, memberValue);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final NormalAnnotationExpr n, final Object arg) {
+ NodeList<MemberValuePair> pairs = cloneList(n.getPairs(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ NormalAnnotationExpr r = new NormalAnnotationExpr(n.getTokenRange().orElse(null), name, pairs);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final MemberValuePair n, final Object arg) {
+ SimpleName name = cloneNode(n.getName(), arg);
+ Expression value = cloneNode(n.getValue(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ MemberValuePair r = new MemberValuePair(n.getTokenRange().orElse(null), name, value);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ExplicitConstructorInvocationStmt n, final Object arg) {
+ NodeList<Expression> arguments = cloneList(n.getArguments(), arg);
+ Expression expression = cloneNode(n.getExpression(), arg);
+ NodeList<Type> typeArguments = cloneList(n.getTypeArguments().orElse(null), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ExplicitConstructorInvocationStmt r = new ExplicitConstructorInvocationStmt(n.getTokenRange().orElse(null), typeArguments, n.isThis(), expression, arguments);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final LocalClassDeclarationStmt n, final Object arg) {
+ ClassOrInterfaceDeclaration classDeclaration = cloneNode(n.getClassDeclaration(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ LocalClassDeclarationStmt r = new LocalClassDeclarationStmt(n.getTokenRange().orElse(null), classDeclaration);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final AssertStmt n, final Object arg) {
+ Expression check = cloneNode(n.getCheck(), arg);
+ Expression message = cloneNode(n.getMessage(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ AssertStmt r = new AssertStmt(n.getTokenRange().orElse(null), check, message);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final BlockStmt n, final Object arg) {
+ NodeList<Statement> statements = cloneList(n.getStatements(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ BlockStmt r = new BlockStmt(n.getTokenRange().orElse(null), statements);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final LabeledStmt n, final Object arg) {
+ SimpleName label = cloneNode(n.getLabel(), arg);
+ Statement statement = cloneNode(n.getStatement(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ LabeledStmt r = new LabeledStmt(n.getTokenRange().orElse(null), label, statement);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final EmptyStmt n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ EmptyStmt r = new EmptyStmt(n.getTokenRange().orElse(null));
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ExpressionStmt n, final Object arg) {
+ Expression expression = cloneNode(n.getExpression(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ExpressionStmt r = new ExpressionStmt(n.getTokenRange().orElse(null), expression);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final SwitchStmt n, final Object arg) {
+ NodeList<SwitchEntryStmt> entries = cloneList(n.getEntries(), arg);
+ Expression selector = cloneNode(n.getSelector(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ SwitchStmt r = new SwitchStmt(n.getTokenRange().orElse(null), selector, entries);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final SwitchEntryStmt n, final Object arg) {
+ Expression label = cloneNode(n.getLabel(), arg);
+ NodeList<Statement> statements = cloneList(n.getStatements(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ SwitchEntryStmt r = new SwitchEntryStmt(n.getTokenRange().orElse(null), label, statements);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final BreakStmt n, final Object arg) {
+ SimpleName label = cloneNode(n.getLabel(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ BreakStmt r = new BreakStmt(n.getTokenRange().orElse(null), label);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ReturnStmt n, final Object arg) {
+ Expression expression = cloneNode(n.getExpression(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ReturnStmt r = new ReturnStmt(n.getTokenRange().orElse(null), expression);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final IfStmt n, final Object arg) {
+ Expression condition = cloneNode(n.getCondition(), arg);
+ Statement elseStmt = cloneNode(n.getElseStmt(), arg);
+ Statement thenStmt = cloneNode(n.getThenStmt(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ IfStmt r = new IfStmt(n.getTokenRange().orElse(null), condition, thenStmt, elseStmt);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final WhileStmt n, final Object arg) {
+ Statement body = cloneNode(n.getBody(), arg);
+ Expression condition = cloneNode(n.getCondition(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ WhileStmt r = new WhileStmt(n.getTokenRange().orElse(null), condition, body);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ContinueStmt n, final Object arg) {
+ SimpleName label = cloneNode(n.getLabel(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ContinueStmt r = new ContinueStmt(n.getTokenRange().orElse(null), label);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final DoStmt n, final Object arg) {
+ Statement body = cloneNode(n.getBody(), arg);
+ Expression condition = cloneNode(n.getCondition(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ DoStmt r = new DoStmt(n.getTokenRange().orElse(null), body, condition);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ForeachStmt n, final Object arg) {
+ Statement body = cloneNode(n.getBody(), arg);
+ Expression iterable = cloneNode(n.getIterable(), arg);
+ VariableDeclarationExpr variable = cloneNode(n.getVariable(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ForeachStmt r = new ForeachStmt(n.getTokenRange().orElse(null), variable, iterable, body);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ForStmt n, final Object arg) {
+ Statement body = cloneNode(n.getBody(), arg);
+ Expression compare = cloneNode(n.getCompare(), arg);
+ NodeList<Expression> initialization = cloneList(n.getInitialization(), arg);
+ NodeList<Expression> update = cloneList(n.getUpdate(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ForStmt r = new ForStmt(n.getTokenRange().orElse(null), initialization, compare, update, body);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ThrowStmt n, final Object arg) {
+ Expression expression = cloneNode(n.getExpression(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ThrowStmt r = new ThrowStmt(n.getTokenRange().orElse(null), expression);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final SynchronizedStmt n, final Object arg) {
+ BlockStmt body = cloneNode(n.getBody(), arg);
+ Expression expression = cloneNode(n.getExpression(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ SynchronizedStmt r = new SynchronizedStmt(n.getTokenRange().orElse(null), expression, body);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final TryStmt n, final Object arg) {
+ NodeList<CatchClause> catchClauses = cloneList(n.getCatchClauses(), arg);
+ BlockStmt finallyBlock = cloneNode(n.getFinallyBlock(), arg);
+ NodeList<Expression> resources = cloneList(n.getResources(), arg);
+ BlockStmt tryBlock = cloneNode(n.getTryBlock(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ TryStmt r = new TryStmt(n.getTokenRange().orElse(null), resources, tryBlock, catchClauses, finallyBlock);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final CatchClause n, final Object arg) {
+ BlockStmt body = cloneNode(n.getBody(), arg);
+ Parameter parameter = cloneNode(n.getParameter(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ CatchClause r = new CatchClause(n.getTokenRange().orElse(null), parameter, body);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final LambdaExpr n, final Object arg) {
+ Statement body = cloneNode(n.getBody(), arg);
+ NodeList<Parameter> parameters = cloneList(n.getParameters(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ LambdaExpr r = new LambdaExpr(n.getTokenRange().orElse(null), parameters, body, n.isEnclosingParameters());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final MethodReferenceExpr n, final Object arg) {
+ Expression scope = cloneNode(n.getScope(), arg);
+ NodeList<Type> typeArguments = cloneList(n.getTypeArguments().orElse(null), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ MethodReferenceExpr r = new MethodReferenceExpr(n.getTokenRange().orElse(null), scope, typeArguments, n.getIdentifier());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final TypeExpr n, final Object arg) {
+ Type type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ TypeExpr r = new TypeExpr(n.getTokenRange().orElse(null), type);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Visitable visit(NodeList n, Object arg) {
+ NodeList<Node> newNodes = new NodeList<>();
+ for (Object node : n) {
+ Node resultNode = (Node) ((Node) node).accept(this, arg);
+ if (resultNode != null) {
+ newNodes.add(resultNode);
+ }
+ }
+ return newNodes;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Node visit(final ImportDeclaration n, final Object arg) {
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ImportDeclaration r = new ImportDeclaration(n.getTokenRange().orElse(null), name, n.isStatic(), n.isAsterisk());
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ModuleDeclaration n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ NodeList<ModuleStmt> moduleStmts = cloneList(n.getModuleStmts(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ModuleDeclaration r = new ModuleDeclaration(n.getTokenRange().orElse(null), annotations, name, n.isOpen(), moduleStmts);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ModuleRequiresStmt n, final Object arg) {
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ModuleRequiresStmt r = new ModuleRequiresStmt(n.getTokenRange().orElse(null), n.getModifiers(), name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected <T extends Node> T cloneNode(Optional<T> node, Object arg) {
+ if (!node.isPresent()) {
+ return null;
+ }
+ Node r = (Node) node.get().accept(this, arg);
+ if (r == null) {
+ return null;
+ }
+ return (T) r;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected <T extends Node> T cloneNode(T node, Object arg) {
+ if (node == null) {
+ return null;
+ }
+ Node r = (Node) node.accept(this, arg);
+ if (r == null) {
+ return null;
+ }
+ return (T) r;
+ }
+
+ private <N extends Node> NodeList<N> cloneList(NodeList<N> list, Object arg) {
+ if (list == null) {
+ return null;
+ }
+ return (NodeList<N>) list.accept(this, arg);
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ModuleExportsStmt n, final Object arg) {
+ NodeList<Name> moduleNames = cloneList(n.getModuleNames(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ModuleExportsStmt r = new ModuleExportsStmt(n.getTokenRange().orElse(null), name, moduleNames);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ModuleProvidesStmt n, final Object arg) {
+ Type type = cloneNode(n.getType(), arg);
+ NodeList<Type> withTypes = cloneList(n.getWithTypes(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ModuleProvidesStmt r = new ModuleProvidesStmt(n.getTokenRange().orElse(null), type, withTypes);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ModuleUsesStmt n, final Object arg) {
+ Type type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ModuleUsesStmt r = new ModuleUsesStmt(n.getTokenRange().orElse(null), type);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ModuleOpensStmt n, final Object arg) {
+ NodeList<Name> moduleNames = cloneList(n.getModuleNames(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ModuleOpensStmt r = new ModuleOpensStmt(n.getTokenRange().orElse(null), name, moduleNames);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final UnparsableStmt n, final Object arg) {
+ Comment comment = cloneNode(n.getComment(), arg);
+ UnparsableStmt r = new UnparsableStmt(n.getTokenRange().orElse(null));
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator")
+ public Visitable visit(final ReceiverParameter n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Name name = cloneNode(n.getName(), arg);
+ Type type = cloneNode(n.getType(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ ReceiverParameter r = new ReceiverParameter(n.getTokenRange().orElse(null), annotations, type, name);
+ r.setComment(comment);
+ return r;
+ }
+
+ @Override
+ public Visitable visit(final VarType n, final Object arg) {
+ NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg);
+ Comment comment = cloneNode(n.getComment(), arg);
+ VarType r = new VarType(n.getTokenRange().orElse(null));
+ r.setComment(comment);
+ return r;
+ }
+}