JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/ast/stmt/AssertStmt.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.observer.ObservableProperty;
27import com.github.javaparser.ast.visitor.GenericVisitor;
28import com.github.javaparser.ast.visitor.VoidVisitor;
29import java.util.Optional;
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.AssertStmtMetaModel;
34import com.github.javaparser.metamodel.JavaParserMetaModel;
35import com.github.javaparser.TokenRange;
36import com.github.javaparser.metamodel.OptionalProperty;
37import java.util.function.Consumer;
38import com.github.javaparser.ast.Generated;
39
40/**
41 * A usage of the keyword "assert"
42 * <br>In {@code assert dead : "Wasn't expecting to be dead here";} the check is "dead" and the message is the string.
43 * @author Julio Vilmar Gesser
44 */
45public class AssertStmt extends Statement {
46
47    private Expression check;
48
49    @OptionalProperty
50    private Expression message;
51
52    public AssertStmt() {
53        this(null, new BooleanLiteralExpr(), null);
54    }
55
56    public AssertStmt(final Expression check) {
57        this(nullchecknull);
58    }
59
60    @AllFieldsConstructor
61    public AssertStmt(final Expression checkfinal Expression message) {
62        this(nullcheckmessage);
63    }
64
65    /**
66     * This constructor is used by the parser and is considered private.
67     */
68    @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
69    public AssertStmt(TokenRange tokenRangeExpression checkExpression message) {
70        super(tokenRange);
71        setCheck(check);
72        setMessage(message);
73        customInitialization();
74    }
75
76    @Override
77    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
78    public <RAR accept(final GenericVisitor<RAvfinal A arg) {
79        return v.visit(this, arg);
80    }
81
82    @Override
83    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
84    public <Avoid accept(final VoidVisitor<Avfinal A arg) {
85        v.visit(this, arg);
86    }
87
88    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
89    public Expression getCheck() {
90        return check;
91    }
92
93    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
94    public Optional<ExpressiongetMessage() {
95        return Optional.ofNullable(message);
96    }
97
98    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
99    public AssertStmt setCheck(final Expression check) {
100        assertNotNull(check);
101        if (check == this.check) {
102            return (AssertStmt) this;
103        }
104        notifyPropertyChange(ObservableProperty.CHECK, this.checkcheck);
105        if (this.check != null)
106            this.check.setParentNode(null);
107        this.check = check;
108        setAsParentNodeOf(check);
109        return this;
110    }
111
112    /**
113     * Sets the message
114     *
115     * @param message the message, can be null
116     * @return this, the AssertStmt
117     */
118    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
119    public AssertStmt setMessage(final Expression message) {
120        if (message == this.message) {
121            return (AssertStmt) this;
122        }
123        notifyPropertyChange(ObservableProperty.MESSAGE, this.messagemessage);
124        if (this.message != null)
125            this.message.setParentNode(null);
126        this.message = message;
127        setAsParentNodeOf(message);
128        return this;
129    }
130
131    @Override
132    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
133    public boolean remove(Node node) {
134        if (node == null)
135            return false;
136        if (message != null) {
137            if (node == message) {
138                removeMessage();
139                return true;
140            }
141        }
142        return super.remove(node);
143    }
144
145    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
146    public AssertStmt removeMessage() {
147        return setMessage((Expressionnull);
148    }
149
150    @Override
151    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
152    public AssertStmt clone() {
153        return (AssertStmtaccept(new CloneVisitor(), null);
154    }
155
156    @Override
157    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
158    public AssertStmtMetaModel getMetaModel() {
159        return JavaParserMetaModel.assertStmtMetaModel;
160    }
161
162    @Override
163    @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
164    public boolean replace(Node nodeNode replacementNode) {
165        if (node == null)
166            return false;
167        if (node == check) {
168            setCheck((ExpressionreplacementNode);
169            return true;
170        }
171        if (message != null) {
172            if (node == message) {
173                setMessage((ExpressionreplacementNode);
174                return true;
175            }
176        }
177        return super.replace(nodereplacementNode);
178    }
179
180    @Override
181    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
182    public boolean isAssertStmt() {
183        return true;
184    }
185
186    @Override
187    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
188    public AssertStmt asAssertStmt() {
189        return this;
190    }
191
192    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
193    public void ifAssertStmt(Consumer<AssertStmtaction) {
194        action.accept(this);
195    }
196
197    @Override
198    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
199    public Optional<AssertStmttoAssertStmt() {
200        return Optional.of(this);
201    }
202}
203
MembersX
AssertStmt:ifAssertStmt
AssertStmt:setMessage
AssertStmt:removeMessage
AssertStmt:getMetaModel
AssertStmt:accept
AssertStmt:getCheck
AssertStmt:remove
AssertStmt:asAssertStmt
AssertStmt:getMessage
AssertStmt:setCheck
AssertStmt:message
AssertStmt:AssertStmt
AssertStmt:clone
AssertStmt:isAssertStmt
AssertStmt:toAssertStmt
AssertStmt:check
AssertStmt:replace
Members
X