class EnumConstantDeclaration extends BodyDeclaration<EnumConstantDeclaration> implements NodeWithJavadoc<EnumConstantDeclaration>, NodeWithSimpleName<EnumConstantDeclaration>, NodeWithArguments<EnumConstantDeclaration>, Resolvable<ResolvedEnumConstantDeclaration> {

    private SimpleName name;

    private NodeList<Expression> arguments;

    private NodeList<BodyDeclaration<?>> classBody;

    public EnumConstantDeclaration() {
        this(null, new NodeList<>(), new SimpleName(), new NodeList<>(), new NodeList<>());
    }

    public EnumConstantDeclaration(String name) {
        this(null, new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>());
    }

    @AllFieldsConstructor
    public EnumConstantDeclaration(NodeList<AnnotationExpr> annotations, SimpleName name, NodeList<Expression> arguments, NodeList<BodyDeclaration<?>> classBody) {
        this(null, annotations, name, arguments, classBody);
    }

    /**
     * This constructor is used by the parser and is considered private.
     */
    @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
    public EnumConstantDeclaration(TokenRange tokenRange, NodeList<AnnotationExpr> annotations, SimpleName name, NodeList<Expression> arguments, NodeList<BodyDeclaration<?>> classBody) {
        super(tokenRange, annotations);
        setName(name);
        setArguments(arguments);
        setClassBody(classBody);
        customInitialization();
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
    public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
        return v.visit(this, arg);
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
    public <A> void accept(final VoidVisitor<A> v, final A arg) {
        v.visit(this, arg);
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public NodeList<Expression> getArguments() {
        return arguments;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public NodeList<BodyDeclaration<?>> getClassBody() {
        return classBody;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public SimpleName getName() {
        return name;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public EnumConstantDeclaration setArguments(final NodeList<Expression> arguments) {
        assertNotNull(arguments);
        if (arguments == this.arguments) {
            return this;
        }
        notifyPropertyChange(ObservableProperty.ARGUMENTS, this.arguments, arguments);
        if (this.arguments != null)
            this.arguments.setParentNode(null);
        this.arguments = arguments;
        setAsParentNodeOf(arguments);
        return this;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public EnumConstantDeclaration setClassBody(final NodeList<BodyDeclaration<?>> classBody) {
        assertNotNull(classBody);
        if (classBody == this.classBody) {
            return this;
        }
        notifyPropertyChange(ObservableProperty.CLASS_BODY, this.classBody, classBody);
        if (this.classBody != null)
            this.classBody.setParentNode(null);
        this.classBody = classBody;
        setAsParentNodeOf(classBody);
        return this;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public EnumConstantDeclaration setName(final SimpleName name) {
        assertNotNull(name);
        if (name == this.name) {
            return this;
        }
        notifyPropertyChange(ObservableProperty.NAME, this.name, name);
        if (this.name != null)
            this.name.setParentNode(null);
        this.name = name;
        setAsParentNodeOf(name);
        return this;
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
    public boolean remove(Node node) {<FILL_FUNCTION_BODY>}

    @Override
    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
    public EnumConstantDeclaration clone() {
        return (EnumConstantDeclaration) accept(new CloneVisitor(), null);
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
    public EnumConstantDeclarationMetaModel getMetaModel() {
        return JavaParserMetaModel.enumConstantDeclarationMetaModel;
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
    public boolean replace(Node node, Node replacementNode) {
        if (node == null) {
            return false;
        }
        for (int i = 0; i < arguments.size(); i++) {
            if (arguments.get(i) == node) {
                arguments.set(i, (Expression) replacementNode);
                return true;
            }
        }
        for (int i = 0; i < classBody.size(); i++) {
            if (classBody.get(i) == node) {
                classBody.set(i, (BodyDeclaration) replacementNode);
                return true;
            }
        }
        if (node == name) {
            setName((SimpleName) replacementNode);
            return true;
        }
        return super.replace(node, replacementNode);
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
    public boolean isEnumConstantDeclaration() {
        return true;
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
    public EnumConstantDeclaration asEnumConstantDeclaration() {
        return this;
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
    public void ifEnumConstantDeclaration(Consumer<EnumConstantDeclaration> action) {
        action.accept(this);
    }

    @Override
    public ResolvedEnumConstantDeclaration resolve() {
        return getSymbolResolver().resolveDeclaration(this, ResolvedEnumConstantDeclaration.class);
    }

    @Override
    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
    public Optional<EnumConstantDeclaration> toEnumConstantDeclaration() {
        return Optional.of(this);
    }
}

        if (node == null) {
            return false;
        }
        for (int i = 0; i < arguments.size(); i++) {
            if (arguments.get(i) == node) {
                arguments.remove(i);
                return true;
            }
        }
        for (int i = 0; i < classBody.size(); i++) {
            if (classBody.get(i) == node) {
                classBody.remove(i);
                return true;
            }
        }
        return super.remove(node);
    
<methods>public void <init>() ,public void <init>(NodeList<com.github.javaparser.ast.expr.AnnotationExpr>) ,public void <init>(com.github.javaparser.TokenRange, NodeList<com.github.javaparser.ast.expr.AnnotationExpr>) ,public com.github.javaparser.ast.body.AnnotationDeclaration asAnnotationDeclaration() ,public com.github.javaparser.ast.body.AnnotationMemberDeclaration asAnnotationMemberDeclaration() ,public CallableDeclaration#RAW asCallableDeclaration() ,public com.github.javaparser.ast.body.ClassOrInterfaceDeclaration asClassOrInterfaceDeclaration() ,public com.github.javaparser.ast.body.CompactConstructorDeclaration asCompactConstructorDeclaration() ,public com.github.javaparser.ast.body.ConstructorDeclaration asConstructorDeclaration() ,public com.github.javaparser.ast.body.EnumConstantDeclaration asEnumConstantDeclaration() ,public com.github.javaparser.ast.body.EnumDeclaration asEnumDeclaration() ,public com.github.javaparser.ast.body.FieldDeclaration asFieldDeclaration() ,public com.github.javaparser.ast.body.InitializerDeclaration asInitializerDeclaration() ,public com.github.javaparser.ast.body.MethodDeclaration asMethodDeclaration() ,public com.github.javaparser.ast.body.RecordDeclaration asRecordDeclaration() ,public TypeDeclaration#RAW asTypeDeclaration() ,public BodyDeclaration<?> clone() ,public NodeList<com.github.javaparser.ast.expr.AnnotationExpr> getAnnotations() ,public com.github.javaparser.metamodel.BodyDeclarationMetaModel getMetaModel() ,public void ifAnnotationDeclaration(Consumer<com.github.javaparser.ast.body.AnnotationDeclaration>) ,public void ifAnnotationMemberDeclaration(Consumer<com.github.javaparser.ast.body.AnnotationMemberDeclaration>) ,public void ifCallableDeclaration(Consumer<CallableDeclaration#RAW>) ,public void ifClassOrInterfaceDeclaration(Consumer<com.github.javaparser.ast.body.ClassOrInterfaceDeclaration>) ,public void ifCompactConstructorDeclaration(Consumer<com.github.javaparser.ast.body.CompactConstructorDeclaration>) ,public void ifConstructorDeclaration(Consumer<com.github.javaparser.ast.body.ConstructorDeclaration>) ,public void ifEnumConstantDeclaration(Consumer<com.github.javaparser.ast.body.EnumConstantDeclaration>) ,public void ifEnumDeclaration(Consumer<com.github.javaparser.ast.body.EnumDeclaration>) ,public void ifFieldDeclaration(Consumer<com.github.javaparser.ast.body.FieldDeclaration>) ,public void ifInitializerDeclaration(Consumer<com.github.javaparser.ast.body.InitializerDeclaration>) ,public void ifMethodDeclaration(Consumer<com.github.javaparser.ast.body.MethodDeclaration>) ,public void ifRecordDeclaration(Consumer<com.github.javaparser.ast.body.RecordDeclaration>) ,public void ifTypeDeclaration(Consumer<TypeDeclaration#RAW>) ,public boolean isAnnotationDeclaration() ,public boolean isAnnotationMemberDeclaration() ,public boolean isCallableDeclaration() ,public boolean isClassOrInterfaceDeclaration() ,public boolean isCompactConstructorDeclaration() ,public boolean isConstructorDeclaration() ,public boolean isEnumConstantDeclaration() ,public boolean isEnumDeclaration() ,public boolean isFieldDeclaration() ,public boolean isInitializerDeclaration() ,public boolean isMethodDeclaration() ,public boolean isRecordDeclaration() ,public boolean isTypeDeclaration() ,public boolean remove(com.github.javaparser.ast.Node) ,public boolean replace(com.github.javaparser.ast.Node, com.github.javaparser.ast.Node) ,public com.github.javaparser.ast.body.EnumConstantDeclaration setAnnotations(NodeList<com.github.javaparser.ast.expr.AnnotationExpr>) ,public Optional<com.github.javaparser.ast.body.AnnotationDeclaration> toAnnotationDeclaration() ,public Optional<com.github.javaparser.ast.body.AnnotationMemberDeclaration> toAnnotationMemberDeclaration() ,public Optional<CallableDeclaration#RAW> toCallableDeclaration() ,public Optional<com.github.javaparser.ast.body.ClassOrInterfaceDeclaration> toClassOrInterfaceDeclaration() ,public Optional<com.github.javaparser.ast.body.CompactConstructorDeclaration> toCompactConstructorDeclaration() ,public Optional<com.github.javaparser.ast.body.ConstructorDeclaration> toConstructorDeclaration() ,public Optional<com.github.javaparser.ast.body.EnumConstantDeclaration> toEnumConstantDeclaration() ,public Optional<com.github.javaparser.ast.body.EnumDeclaration> toEnumDeclaration() ,public Optional<com.github.javaparser.ast.body.FieldDeclaration> toFieldDeclaration() ,public Optional<com.github.javaparser.ast.body.InitializerDeclaration> toInitializerDeclaration() ,public Optional<com.github.javaparser.ast.body.MethodDeclaration> toMethodDeclaration() ,public Optional<com.github.javaparser.ast.body.RecordDeclaration> toRecordDeclaration() ,public Optional<TypeDeclaration#RAW> toTypeDeclaration() <variables>private NodeList<com.github.javaparser.ast.expr.AnnotationExpr> annotations