/* * 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.BlockComment; import com.github.javaparser.ast.comments.Comment; import com.github.javaparser.ast.comments.JavadocComment; import com.github.javaparser.ast.comments.LineComment; 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 com.github.javaparser.utils.Pair; import javax.annotation.Generated; import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * This visitor can be used to save time when some specific nodes needs * to be changed. To do that just extend this class and override the methods * from the nodes who needs to be changed, returning the changed node. * Returning null will remove the node. * * If a node is removed that was required in its parent node, * the parent node will be removed too. * * @author Julio Vilmar Gesser */ public class ModifierVisitor implements GenericVisitor { @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final AnnotationDeclaration n, final A arg) { NodeList> members = modifyList(n.getMembers(), arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setMembers(members); n.setName(name); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final AnnotationMemberDeclaration n, final A arg) { Expression defaultValue = n.getDefaultValue().map(s -> (Expression) s.accept(this, arg)).orElse(null); SimpleName name = (SimpleName) n.getName().accept(this, arg); Type type = (Type) n.getType().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null || type == null) return null; n.setDefaultValue(defaultValue); n.setName(name); n.setType(type); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ArrayAccessExpr n, final A arg) { Expression index = (Expression) n.getIndex().accept(this, arg); Expression name = (Expression) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (index == null || name == null) return null; n.setIndex(index); n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ArrayCreationExpr n, final A arg) { Type elementType = (Type) n.getElementType().accept(this, arg); ArrayInitializerExpr initializer = n.getInitializer().map(s -> (ArrayInitializerExpr) s.accept(this, arg)).orElse(null); NodeList levels = modifyList(n.getLevels(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (elementType == null || levels.isEmpty()) return null; n.setElementType(elementType); n.setInitializer(initializer); n.setLevels(levels); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ArrayInitializerExpr n, final A arg) { NodeList values = modifyList(n.getValues(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setValues(values); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final AssertStmt n, final A arg) { Expression check = (Expression) n.getCheck().accept(this, arg); Expression message = n.getMessage().map(s -> (Expression) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (check == null) return null; n.setCheck(check); n.setMessage(message); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final AssignExpr n, final A arg) { Expression target = (Expression) n.getTarget().accept(this, arg); Expression value = (Expression) n.getValue().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (target == null || value == null) return null; n.setTarget(target); n.setValue(value); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final BinaryExpr n, final A arg) { Expression left = (Expression) n.getLeft().accept(this, arg); Expression right = (Expression) n.getRight().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (left == null) return right; if (right == null) return left; n.setLeft(left); n.setRight(right); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final BlockStmt n, final A arg) { NodeList statements = modifyList(n.getStatements(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setStatements(statements); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final BooleanLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final BreakStmt n, final A arg) { SimpleName label = n.getLabel().map(s -> (SimpleName) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setLabel(label); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final CastExpr n, final A arg) { Expression expression = (Expression) n.getExpression().accept(this, arg); Type type = (Type) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (expression == null || type == null) return null; n.setExpression(expression); n.setType(type); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final CatchClause n, final A arg) { BlockStmt body = (BlockStmt) n.getBody().accept(this, arg); Parameter parameter = (Parameter) n.getParameter().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null || parameter == null) return null; n.setBody(body); n.setParameter(parameter); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final CharLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ClassExpr n, final A arg) { Type type = (Type) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (type == null) return null; n.setType(type); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ClassOrInterfaceDeclaration n, final A arg) { NodeList extendedTypes = modifyList(n.getExtendedTypes(), arg); NodeList implementedTypes = modifyList(n.getImplementedTypes(), arg); NodeList typeParameters = modifyList(n.getTypeParameters(), arg); NodeList> members = modifyList(n.getMembers(), arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setExtendedTypes(extendedTypes); n.setImplementedTypes(implementedTypes); n.setTypeParameters(typeParameters); n.setMembers(members); n.setName(name); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ClassOrInterfaceType n, final A arg) { SimpleName name = (SimpleName) n.getName().accept(this, arg); ClassOrInterfaceType scope = n.getScope().map(s -> (ClassOrInterfaceType) s.accept(this, arg)).orElse(null); NodeList typeArguments = modifyList(n.getTypeArguments(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setName(name); n.setScope(scope); n.setTypeArguments(typeArguments); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final CompilationUnit n, final A arg) { NodeList imports = modifyList(n.getImports(), arg); ModuleDeclaration module = n.getModule().map(s -> (ModuleDeclaration) s.accept(this, arg)).orElse(null); PackageDeclaration packageDeclaration = n.getPackageDeclaration().map(s -> (PackageDeclaration) s.accept(this, arg)).orElse(null); NodeList> types = modifyList(n.getTypes(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setImports(imports); n.setModule(module); n.setPackageDeclaration(packageDeclaration); n.setTypes(types); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ConditionalExpr n, final A arg) { Expression condition = (Expression) n.getCondition().accept(this, arg); Expression elseExpr = (Expression) n.getElseExpr().accept(this, arg); Expression thenExpr = (Expression) n.getThenExpr().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (condition == null || elseExpr == null || thenExpr == null) return null; n.setCondition(condition); n.setElseExpr(elseExpr); n.setThenExpr(thenExpr); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ConstructorDeclaration n, final A arg) { BlockStmt body = (BlockStmt) n.getBody().accept(this, arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList parameters = modifyList(n.getParameters(), arg); ReceiverParameter receiverParameter = n.getReceiverParameter().map(s -> (ReceiverParameter) s.accept(this, arg)).orElse(null); NodeList thrownExceptions = modifyList(n.getThrownExceptions(), arg); NodeList typeParameters = modifyList(n.getTypeParameters(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null || name == null) return null; n.setBody(body); n.setName(name); n.setParameters(parameters); n.setReceiverParameter(receiverParameter); n.setThrownExceptions(thrownExceptions); n.setTypeParameters(typeParameters); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ContinueStmt n, final A arg) { SimpleName label = n.getLabel().map(s -> (SimpleName) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setLabel(label); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final DoStmt n, final A arg) { Statement body = (Statement) n.getBody().accept(this, arg); Expression condition = (Expression) n.getCondition().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null || condition == null) return null; n.setBody(body); n.setCondition(condition); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final DoubleLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final EmptyStmt n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final EnclosedExpr n, final A arg) { Expression inner = (Expression) n.getInner().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (inner == null) return null; n.setInner(inner); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final EnumConstantDeclaration n, final A arg) { NodeList arguments = modifyList(n.getArguments(), arg); NodeList> classBody = modifyList(n.getClassBody(), arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setArguments(arguments); n.setClassBody(classBody); n.setName(name); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final EnumDeclaration n, final A arg) { NodeList entries = modifyList(n.getEntries(), arg); NodeList implementedTypes = modifyList(n.getImplementedTypes(), arg); NodeList> members = modifyList(n.getMembers(), arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setEntries(entries); n.setImplementedTypes(implementedTypes); n.setMembers(members); n.setName(name); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ExplicitConstructorInvocationStmt n, final A arg) { NodeList arguments = modifyList(n.getArguments(), arg); Expression expression = n.getExpression().map(s -> (Expression) s.accept(this, arg)).orElse(null); NodeList typeArguments = modifyList(n.getTypeArguments(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setArguments(arguments); n.setExpression(expression); n.setTypeArguments(typeArguments); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ExpressionStmt n, final A arg) { Expression expression = (Expression) n.getExpression().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (expression == null) return null; n.setExpression(expression); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final FieldAccessExpr n, final A arg) { SimpleName name = (SimpleName) n.getName().accept(this, arg); Expression scope = (Expression) n.getScope().accept(this, arg); NodeList typeArguments = modifyList(n.getTypeArguments(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null || scope == null) return null; n.setName(name); n.setScope(scope); n.setTypeArguments(typeArguments); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final FieldDeclaration n, final A arg) { NodeList variables = modifyList(n.getVariables(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (variables.isEmpty()) return null; n.setVariables(variables); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ForeachStmt n, final A arg) { Statement body = (Statement) n.getBody().accept(this, arg); Expression iterable = (Expression) n.getIterable().accept(this, arg); VariableDeclarationExpr variable = (VariableDeclarationExpr) n.getVariable().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null || iterable == null || variable == null) return null; n.setBody(body); n.setIterable(iterable); n.setVariable(variable); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ForStmt n, final A arg) { Statement body = (Statement) n.getBody().accept(this, arg); Expression compare = n.getCompare().map(s -> (Expression) s.accept(this, arg)).orElse(null); NodeList initialization = modifyList(n.getInitialization(), arg); NodeList update = modifyList(n.getUpdate(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null) return null; n.setBody(body); n.setCompare(compare); n.setInitialization(initialization); n.setUpdate(update); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final IfStmt n, final A arg) { Expression condition = (Expression) n.getCondition().accept(this, arg); Statement elseStmt = n.getElseStmt().map(s -> (Statement) s.accept(this, arg)).orElse(null); Statement thenStmt = (Statement) n.getThenStmt().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (condition == null || thenStmt == null) return null; n.setCondition(condition); n.setElseStmt(elseStmt); n.setThenStmt(thenStmt); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final InitializerDeclaration n, final A arg) { BlockStmt body = (BlockStmt) n.getBody().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null) return null; n.setBody(body); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final InstanceOfExpr n, final A arg) { Expression expression = (Expression) n.getExpression().accept(this, arg); ReferenceType type = (ReferenceType) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (expression == null || type == null) return null; n.setExpression(expression); n.setType(type); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final IntegerLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final JavadocComment n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final LabeledStmt n, final A arg) { SimpleName label = (SimpleName) n.getLabel().accept(this, arg); Statement statement = (Statement) n.getStatement().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (label == null || statement == null) return null; n.setLabel(label); n.setStatement(statement); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final LongLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final MarkerAnnotationExpr n, final A arg) { Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final MemberValuePair n, final A arg) { SimpleName name = (SimpleName) n.getName().accept(this, arg); Expression value = (Expression) n.getValue().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null || value == null) return null; n.setName(name); n.setValue(value); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final MethodCallExpr n, final A arg) { NodeList arguments = modifyList(n.getArguments(), arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); Expression scope = n.getScope().map(s -> (Expression) s.accept(this, arg)).orElse(null); NodeList typeArguments = modifyList(n.getTypeArguments(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setArguments(arguments); n.setName(name); n.setScope(scope); n.setTypeArguments(typeArguments); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final MethodDeclaration n, final A arg) { BlockStmt body = n.getBody().map(s -> (BlockStmt) s.accept(this, arg)).orElse(null); Type type = (Type) n.getType().accept(this, arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList parameters = modifyList(n.getParameters(), arg); ReceiverParameter receiverParameter = n.getReceiverParameter().map(s -> (ReceiverParameter) s.accept(this, arg)).orElse(null); NodeList thrownExceptions = modifyList(n.getThrownExceptions(), arg); NodeList typeParameters = modifyList(n.getTypeParameters(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (type == null || name == null) return null; n.setBody(body); n.setType(type); n.setName(name); n.setParameters(parameters); n.setReceiverParameter(receiverParameter); n.setThrownExceptions(thrownExceptions); n.setTypeParameters(typeParameters); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final NameExpr n, final A arg) { SimpleName name = (SimpleName) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final NormalAnnotationExpr n, final A arg) { NodeList pairs = modifyList(n.getPairs(), arg); Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setPairs(pairs); n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final NullLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ObjectCreationExpr n, final A arg) { NodeList> anonymousClassBody = modifyList(n.getAnonymousClassBody(), arg); NodeList arguments = modifyList(n.getArguments(), arg); Expression scope = n.getScope().map(s -> (Expression) s.accept(this, arg)).orElse(null); ClassOrInterfaceType type = (ClassOrInterfaceType) n.getType().accept(this, arg); NodeList typeArguments = modifyList(n.getTypeArguments(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (type == null) return null; n.setAnonymousClassBody(anonymousClassBody); n.setArguments(arguments); n.setScope(scope); n.setType(type); n.setTypeArguments(typeArguments); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final PackageDeclaration n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setAnnotations(annotations); n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final Parameter n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); Type type = (Type) n.getType().accept(this, arg); NodeList varArgsAnnotations = modifyList(n.getVarArgsAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null || type == null) return null; n.setAnnotations(annotations); n.setName(name); n.setType(type); n.setVarArgsAnnotations(varArgsAnnotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final Name n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Name qualifier = n.getQualifier().map(s -> (Name) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setAnnotations(annotations); n.setQualifier(qualifier); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final PrimitiveType n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final SimpleName n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ArrayType n, final A arg) { Type componentType = (Type) n.getComponentType().accept(this, arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (componentType == null) return null; n.setComponentType(componentType); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ArrayCreationLevel n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Expression dimension = n.getDimension().map(s -> (Expression) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setAnnotations(annotations); n.setDimension(dimension); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final IntersectionType n, final A arg) { NodeList elements = modifyList(n.getElements(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (elements.isEmpty()) return null; n.setElements(elements); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final UnionType n, final A arg) { NodeList elements = modifyList(n.getElements(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (elements.isEmpty()) return null; n.setElements(elements); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ReturnStmt n, final A arg) { Expression expression = n.getExpression().map(s -> (Expression) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setExpression(expression); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final SingleMemberAnnotationExpr n, final A arg) { Expression memberValue = (Expression) n.getMemberValue().accept(this, arg); Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (memberValue == null || name == null) return null; n.setMemberValue(memberValue); n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final StringLiteralExpr n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final SuperExpr n, final A arg) { Expression classExpr = n.getClassExpr().map(s -> (Expression) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setClassExpr(classExpr); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final SwitchEntryStmt n, final A arg) { Expression label = n.getLabel().map(s -> (Expression) s.accept(this, arg)).orElse(null); NodeList statements = modifyList(n.getStatements(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setLabel(label); n.setStatements(statements); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final SwitchStmt n, final A arg) { NodeList entries = modifyList(n.getEntries(), arg); Expression selector = (Expression) n.getSelector().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (selector == null) return null; n.setEntries(entries); n.setSelector(selector); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final SynchronizedStmt n, final A arg) { BlockStmt body = (BlockStmt) n.getBody().accept(this, arg); Expression expression = (Expression) n.getExpression().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null || expression == null) return null; n.setBody(body); n.setExpression(expression); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ThisExpr n, final A arg) { Expression classExpr = n.getClassExpr().map(s -> (Expression) s.accept(this, arg)).orElse(null); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setClassExpr(classExpr); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ThrowStmt n, final A arg) { Expression expression = (Expression) n.getExpression().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (expression == null) return null; n.setExpression(expression); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final TryStmt n, final A arg) { NodeList catchClauses = modifyList(n.getCatchClauses(), arg); BlockStmt finallyBlock = n.getFinallyBlock().map(s -> (BlockStmt) s.accept(this, arg)).orElse(null); NodeList resources = modifyList(n.getResources(), arg); BlockStmt tryBlock = (BlockStmt) n.getTryBlock().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (tryBlock == null) return null; n.setCatchClauses(catchClauses); n.setFinallyBlock(finallyBlock); n.setResources(resources); n.setTryBlock(tryBlock); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final LocalClassDeclarationStmt n, final A arg) { ClassOrInterfaceDeclaration classDeclaration = (ClassOrInterfaceDeclaration) n.getClassDeclaration().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (classDeclaration == null) return null; n.setClassDeclaration(classDeclaration); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final TypeParameter n, final A arg) { SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList typeBound = modifyList(n.getTypeBound(), arg); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setName(name); n.setTypeBound(typeBound); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final UnaryExpr n, final A arg) { Expression expression = (Expression) n.getExpression().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (expression == null) return null; n.setExpression(expression); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final UnknownType n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final VariableDeclarationExpr n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); NodeList variables = modifyList(n.getVariables(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (variables.isEmpty()) return null; n.setAnnotations(annotations); n.setVariables(variables); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final VariableDeclarator n, final A arg) { Expression initializer = n.getInitializer().map(s -> (Expression) s.accept(this, arg)).orElse(null); SimpleName name = (SimpleName) n.getName().accept(this, arg); Type type = (Type) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null || type == null) return null; n.setInitializer(initializer); n.setName(name); n.setType(type); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final VoidType n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final WhileStmt n, final A arg) { Statement body = (Statement) n.getBody().accept(this, arg); Expression condition = (Expression) n.getCondition().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null || condition == null) return null; n.setBody(body); n.setCondition(condition); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final WildcardType n, final A arg) { ReferenceType extendedType = n.getExtendedType().map(s -> (ReferenceType) s.accept(this, arg)).orElse(null); ReferenceType superType = n.getSuperType().map(s -> (ReferenceType) s.accept(this, arg)).orElse(null); NodeList annotations = modifyList(n.getAnnotations(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setExtendedType(extendedType); n.setSuperType(superType); n.setAnnotations(annotations); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final LambdaExpr n, final A arg) { Statement body = (Statement) n.getBody().accept(this, arg); NodeList parameters = modifyList(n.getParameters(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (body == null) return null; n.setBody(body); n.setParameters(parameters); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final MethodReferenceExpr n, final A arg) { Expression scope = (Expression) n.getScope().accept(this, arg); NodeList typeArguments = modifyList(n.getTypeArguments(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (scope == null) return null; n.setScope(scope); n.setTypeArguments(typeArguments); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final TypeExpr n, final A arg) { Type type = (Type) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (type == null) return null; n.setType(type); n.setComment(comment); return n; } @Override public Visitable visit(NodeList n, A arg) { if (n.isEmpty()) { return n; } final List> changeList = new ArrayList<>(); final List listCopy = new ArrayList<>(n); for (Node node : listCopy) { final Node newNode = (Node) node.accept(this, arg); changeList.add(new Pair<>(node, newNode)); } for (Pair change : changeList) { if (change.b == null) { n.remove(change.a); } else { final int i = n.indexOf(change.a); // If the user removed this item by hand, ignore the change. if (i != -1) { n.set(i, change.b); } } } return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Node visit(final ImportDeclaration n, final A arg) { Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final BlockComment n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final LineComment n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } private NodeList modifyList(NodeList list, A arg) { return (NodeList) list.accept(this, arg); } private NodeList modifyList(Optional> list, A arg) { return list.map(ns -> modifyList(ns, arg)).orElse(null); } @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleDeclaration n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); NodeList moduleStmts = modifyList(n.getModuleStmts(), arg); Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setAnnotations(annotations); n.setModuleStmts(moduleStmts); n.setName(name); n.setComment(comment); return n; } @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleRequiresStmt n, final A arg) { Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setName(name); n.setComment(comment); return n; } @Override() @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleExportsStmt n, final A arg) { NodeList moduleNames = modifyList(n.getModuleNames(), arg); Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setModuleNames(moduleNames); n.setName(name); n.setComment(comment); return n; } @Override() @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleProvidesStmt n, final A arg) { Type type = (Type) n.getType().accept(this, arg); NodeList withTypes = modifyList(n.getWithTypes(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (type == null) return null; n.setType(type); n.setWithTypes(withTypes); n.setComment(comment); return n; } @Override() @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleUsesStmt n, final A arg) { Type type = (Type) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (type == null) return null; n.setType(type); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleOpensStmt n, final A arg) { NodeList moduleNames = modifyList(n.getModuleNames(), arg); Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null) return null; n.setModuleNames(moduleNames); n.setName(name); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final UnparsableStmt n, final A arg) { Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); n.setComment(comment); return n; } @Override @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ReceiverParameter n, final A arg) { NodeList annotations = modifyList(n.getAnnotations(), arg); Name name = (Name) n.getName().accept(this, arg); Type type = (Type) n.getType().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); if (name == null || type == null) return null; n.setAnnotations(annotations); n.setName(name); n.setType(type); n.setComment(comment); return n; } }