class SwitchStmt extends Statement implements SwitchNode {

    private Expression selector;

    private NodeList<SwitchEntry> entries;

    public SwitchStmt() {
        this(null, new NameExpr(), new NodeList<>());
    }

    @AllFieldsConstructor
    public SwitchStmt(final Expression selector, final NodeList<SwitchEntry> entries) {
        this(null, selector, entries);
    }

    /**
     * This constructor is used by the parser and is considered private.
     */
    @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
    public SwitchStmt(TokenRange tokenRange, Expression selector, NodeList<SwitchEntry> entries) {
        super(tokenRange);
        setSelector(selector);
        setEntries(entries);
        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<SwitchEntry> getEntries() {
        return entries;
    }

    public SwitchEntry getEntry(int i) {
        return getEntries().get(i);
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public Expression getSelector() {
        return selector;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public SwitchStmt setEntries(final NodeList<SwitchEntry> entries) {
        assertNotNull(entries);
        if (entries == this.entries) {
            return this;
        }
        notifyPropertyChange(ObservableProperty.ENTRIES, this.entries, entries);
        if (this.entries != null)
            this.entries.setParentNode(null);
        this.entries = entries;
        setAsParentNodeOf(entries);
        return this;
    }

    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
    public SwitchStmt setSelector(final Expression selector) {
        assertNotNull(selector);
        if (selector == this.selector) {
            return this;
        }
        notifyPropertyChange(ObservableProperty.SELECTOR, this.selector, selector);
        if (this.selector != null)
            this.selector.setParentNode(null);
        this.selector = selector;
        setAsParentNodeOf(selector);
        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 SwitchStmt clone() {
        return (SwitchStmt) accept(new CloneVisitor(), null);
    }

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

    @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 < entries.size(); i++) {
            if (entries.get(i) == node) {
                entries.set(i, (SwitchEntry) replacementNode);
                return true;
            }
        }
        if (node == selector) {
            setSelector((Expression) replacementNode);
            return true;
        }
        return super.replace(node, replacementNode);
    }

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

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

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

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

        if (node == null) {
            return false;
        }
        for (int i = 0; i < entries.size(); i++) {
            if (entries.get(i) == node) {
                entries.remove(i);
                return true;
            }
        }
        return super.remove(node);
    
<methods>public void <init>() ,public void <init>(com.github.javaparser.TokenRange) ,public com.github.javaparser.ast.stmt.AssertStmt asAssertStmt() ,public com.github.javaparser.ast.stmt.BlockStmt asBlockStmt() ,public com.github.javaparser.ast.stmt.BreakStmt asBreakStmt() ,public com.github.javaparser.ast.stmt.ContinueStmt asContinueStmt() ,public com.github.javaparser.ast.stmt.DoStmt asDoStmt() ,public com.github.javaparser.ast.stmt.EmptyStmt asEmptyStmt() ,public com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt asExplicitConstructorInvocationStmt() ,public com.github.javaparser.ast.stmt.ExpressionStmt asExpressionStmt() ,public com.github.javaparser.ast.stmt.ForEachStmt asForEachStmt() ,public com.github.javaparser.ast.stmt.ForStmt asForStmt() ,public com.github.javaparser.ast.stmt.IfStmt asIfStmt() ,public com.github.javaparser.ast.stmt.LabeledStmt asLabeledStmt() ,public com.github.javaparser.ast.stmt.LocalClassDeclarationStmt asLocalClassDeclarationStmt() ,public com.github.javaparser.ast.stmt.LocalRecordDeclarationStmt asLocalRecordDeclarationStmt() ,public com.github.javaparser.ast.stmt.ReturnStmt asReturnStmt() ,public com.github.javaparser.ast.stmt.SwitchStmt asSwitchStmt() ,public com.github.javaparser.ast.stmt.SynchronizedStmt asSynchronizedStmt() ,public com.github.javaparser.ast.stmt.ThrowStmt asThrowStmt() ,public com.github.javaparser.ast.stmt.TryStmt asTryStmt() ,public com.github.javaparser.ast.stmt.UnparsableStmt asUnparsableStmt() ,public com.github.javaparser.ast.stmt.WhileStmt asWhileStmt() ,public com.github.javaparser.ast.stmt.YieldStmt asYieldStmt() ,public com.github.javaparser.ast.stmt.Statement clone() ,public com.github.javaparser.metamodel.StatementMetaModel getMetaModel() ,public void ifAssertStmt(Consumer<com.github.javaparser.ast.stmt.AssertStmt>) ,public void ifBlockStmt(Consumer<com.github.javaparser.ast.stmt.BlockStmt>) ,public void ifBreakStmt(Consumer<com.github.javaparser.ast.stmt.BreakStmt>) ,public void ifContinueStmt(Consumer<com.github.javaparser.ast.stmt.ContinueStmt>) ,public void ifDoStmt(Consumer<com.github.javaparser.ast.stmt.DoStmt>) ,public void ifEmptyStmt(Consumer<com.github.javaparser.ast.stmt.EmptyStmt>) ,public void ifExplicitConstructorInvocationStmt(Consumer<com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt>) ,public void ifExpressionStmt(Consumer<com.github.javaparser.ast.stmt.ExpressionStmt>) ,public void ifForEachStmt(Consumer<com.github.javaparser.ast.stmt.ForEachStmt>) ,public void ifForStmt(Consumer<com.github.javaparser.ast.stmt.ForStmt>) ,public void ifIfStmt(Consumer<com.github.javaparser.ast.stmt.IfStmt>) ,public void ifLabeledStmt(Consumer<com.github.javaparser.ast.stmt.LabeledStmt>) ,public void ifLocalClassDeclarationStmt(Consumer<com.github.javaparser.ast.stmt.LocalClassDeclarationStmt>) ,public void ifLocalRecordDeclarationStmt(Consumer<com.github.javaparser.ast.stmt.LocalRecordDeclarationStmt>) ,public void ifReturnStmt(Consumer<com.github.javaparser.ast.stmt.ReturnStmt>) ,public void ifSwitchStmt(Consumer<com.github.javaparser.ast.stmt.SwitchStmt>) ,public void ifSynchronizedStmt(Consumer<com.github.javaparser.ast.stmt.SynchronizedStmt>) ,public void ifThrowStmt(Consumer<com.github.javaparser.ast.stmt.ThrowStmt>) ,public void ifTryStmt(Consumer<com.github.javaparser.ast.stmt.TryStmt>) ,public void ifUnparsableStmt(Consumer<com.github.javaparser.ast.stmt.UnparsableStmt>) ,public void ifWhileStmt(Consumer<com.github.javaparser.ast.stmt.WhileStmt>) ,public void ifYieldStmt(Consumer<com.github.javaparser.ast.stmt.YieldStmt>) ,public boolean isAssertStmt() ,public boolean isBlockStmt() ,public boolean isBreakStmt() ,public boolean isContinueStmt() ,public boolean isDoStmt() ,public boolean isEmptyStmt() ,public boolean isExplicitConstructorInvocationStmt() ,public boolean isExpressionStmt() ,public boolean isForEachStmt() ,public boolean isForStmt() ,public boolean isIfStmt() ,public boolean isLabeledStmt() ,public boolean isLocalClassDeclarationStmt() ,public boolean isLocalRecordDeclarationStmt() ,public boolean isReturnStmt() ,public boolean isSwitchStmt() ,public boolean isSynchronizedStmt() ,public boolean isThrowStmt() ,public boolean isTryStmt() ,public boolean isUnparsableStmt() ,public boolean isWhileStmt() ,public boolean isYieldStmt() ,public Optional<com.github.javaparser.ast.stmt.AssertStmt> toAssertStmt() ,public Optional<com.github.javaparser.ast.stmt.BlockStmt> toBlockStmt() ,public Optional<com.github.javaparser.ast.stmt.BreakStmt> toBreakStmt() ,public Optional<com.github.javaparser.ast.stmt.ContinueStmt> toContinueStmt() ,public Optional<com.github.javaparser.ast.stmt.DoStmt> toDoStmt() ,public Optional<com.github.javaparser.ast.stmt.EmptyStmt> toEmptyStmt() ,public Optional<com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt> toExplicitConstructorInvocationStmt() ,public Optional<com.github.javaparser.ast.stmt.ExpressionStmt> toExpressionStmt() ,public Optional<com.github.javaparser.ast.stmt.ForEachStmt> toForEachStmt() ,public Optional<com.github.javaparser.ast.stmt.ForStmt> toForStmt() ,public Optional<com.github.javaparser.ast.stmt.IfStmt> toIfStmt() ,public Optional<com.github.javaparser.ast.stmt.LabeledStmt> toLabeledStmt() ,public Optional<com.github.javaparser.ast.stmt.LocalClassDeclarationStmt> toLocalClassDeclarationStmt() ,public Optional<com.github.javaparser.ast.stmt.LocalRecordDeclarationStmt> toLocalRecordDeclarationStmt() ,public Optional<com.github.javaparser.ast.stmt.ReturnStmt> toReturnStmt() ,public Optional<com.github.javaparser.ast.stmt.SwitchStmt> toSwitchStmt() ,public Optional<com.github.javaparser.ast.stmt.SynchronizedStmt> toSynchronizedStmt() ,public Optional<com.github.javaparser.ast.stmt.ThrowStmt> toThrowStmt() ,public Optional<com.github.javaparser.ast.stmt.TryStmt> toTryStmt() ,public Optional<com.github.javaparser.ast.stmt.UnparsableStmt> toUnparsableStmt() ,public Optional<com.github.javaparser.ast.stmt.WhileStmt> toWhileStmt() ,public Optional<com.github.javaparser.ast.stmt.YieldStmt> toYieldStmt() <variables>