JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/ast/stmt/ExpressionStmt.java
1/*
2 * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser.
3 * Copyright (C) 2011, 2013-2020 The JavaParser Team.
4 *
5 * This file is part of JavaParser.
6 *
7 * JavaParser can be used either under the terms of
8 * a) the GNU Lesser General Public License as published by
9 *     the Free Software Foundation, either version 3 of the License, or
10 *     (at your option) any later version.
11 * b) the terms of the Apache License
12 *
13 * You should have received a copy of both licenses in LICENCE.LGPL and
14 * LICENCE.APACHE. Please refer to those files for details.
15 *
16 * JavaParser is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License for more details.
20 */
21package com.github.javaparser.ast.stmt;
22
23import com.github.javaparser.ast.AllFieldsConstructor;
24import com.github.javaparser.ast.expr.BooleanLiteralExpr;
25import com.github.javaparser.ast.expr.Expression;
26import com.github.javaparser.ast.nodeTypes.NodeWithExpression;
27import com.github.javaparser.ast.observer.ObservableProperty;
28import com.github.javaparser.ast.visitor.GenericVisitor;
29import com.github.javaparser.ast.visitor.VoidVisitor;
30import static com.github.javaparser.utils.Utils.assertNotNull;
31import com.github.javaparser.ast.Node;
32import com.github.javaparser.ast.visitor.CloneVisitor;
33import com.github.javaparser.metamodel.ExpressionStmtMetaModel;
34import com.github.javaparser.metamodel.JavaParserMetaModel;
35import com.github.javaparser.TokenRange;
36import java.util.function.Consumer;
37import java.util.Optional;
38import com.github.javaparser.ast.Generated;
39
40/**
41 * Used to wrap an expression so that it can take the place of a statement.
42 *
43 * @author Julio Vilmar Gesser
44 */
45public class ExpressionStmt extends Statement implements NodeWithExpression<ExpressionStmt> {
46
47    private Expression expression;
48
49    public ExpressionStmt() {
50        this(null, new BooleanLiteralExpr());
51    }
52
53    @AllFieldsConstructor
54    public ExpressionStmt(final Expression expression) {
55        this(nullexpression);
56    }
57
58    /**
59     * This constructor is used by the parser and is considered private.
60     */
61    @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
62    public ExpressionStmt(TokenRange tokenRangeExpression expression) {
63        super(tokenRange);
64        setExpression(expression);
65        customInitialization();
66    }
67
68    @Override
69    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
70    public <RAR accept(final GenericVisitor<RAvfinal A arg) {
71        return v.visit(this, arg);
72    }
73
74    @Override
75    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
76    public <Avoid accept(final VoidVisitor<Avfinal A arg) {
77        v.visit(this, arg);
78    }
79
80    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
81    public Expression getExpression() {
82        return expression;
83    }
84
85    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
86    public ExpressionStmt setExpression(final Expression expression) {
87        assertNotNull(expression);
88        if (expression == this.expression) {
89            return (ExpressionStmt) this;
90        }
91        notifyPropertyChange(ObservableProperty.EXPRESSION, this.expressionexpression);
92        if (this.expression != null)
93            this.expression.setParentNode(null);
94        this.expression = expression;
95        setAsParentNodeOf(expression);
96        return this;
97    }
98
99    @Override
100    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
101    public boolean remove(Node node) {
102        if (node == null)
103            return false;
104        return super.remove(node);
105    }
106
107    @Override
108    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
109    public ExpressionStmt clone() {
110        return (ExpressionStmtaccept(new CloneVisitor(), null);
111    }
112
113    @Override
114    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
115    public ExpressionStmtMetaModel getMetaModel() {
116        return JavaParserMetaModel.expressionStmtMetaModel;
117    }
118
119    @Override
120    @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
121    public boolean replace(Node nodeNode replacementNode) {
122        if (node == null)
123            return false;
124        if (node == expression) {
125            setExpression((ExpressionreplacementNode);
126            return true;
127        }
128        return super.replace(nodereplacementNode);
129    }
130
131    @Override
132    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
133    public boolean isExpressionStmt() {
134        return true;
135    }
136
137    @Override
138    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
139    public ExpressionStmt asExpressionStmt() {
140        return this;
141    }
142
143    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
144    public void ifExpressionStmt(Consumer<ExpressionStmtaction) {
145        action.accept(this);
146    }
147
148    @Override
149    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
150    public Optional<ExpressionStmttoExpressionStmt() {
151        return Optional.of(this);
152    }
153}
154
MembersX
ExpressionStmt:clone
ExpressionStmt:asExpressionStmt
ExpressionStmt:ifExpressionStmt
ExpressionStmt:expression
ExpressionStmt:isExpressionStmt
ExpressionStmt:remove
ExpressionStmt:replace
ExpressionStmt:setExpression
ExpressionStmt:getExpression
ExpressionStmt:accept
ExpressionStmt:toExpressionStmt
ExpressionStmt:ExpressionStmt
ExpressionStmt:getMetaModel
Members
X