JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.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.expr;
22
23import com.github.javaparser.ast.AllFieldsConstructor;
24import com.github.javaparser.ast.observer.ObservableProperty;
25import com.github.javaparser.ast.visitor.GenericVisitor;
26import com.github.javaparser.ast.visitor.VoidVisitor;
27import static com.github.javaparser.utils.Utils.assertNotNull;
28import com.github.javaparser.ast.Node;
29import com.github.javaparser.ast.visitor.CloneVisitor;
30import com.github.javaparser.metamodel.SingleMemberAnnotationExprMetaModel;
31import com.github.javaparser.metamodel.JavaParserMetaModel;
32import com.github.javaparser.TokenRange;
33import java.util.function.Consumer;
34import java.util.Optional;
35import com.github.javaparser.ast.Generated;
36
37/**
38 * An annotation that has a single value. <br>{@code @Count(15)}
39 *
40 * @author Julio Vilmar Gesser
41 */
42public class SingleMemberAnnotationExpr extends AnnotationExpr {
43
44    private Expression memberValue;
45
46    public SingleMemberAnnotationExpr() {
47        this(null, new Name(), new StringLiteralExpr());
48    }
49
50    @AllFieldsConstructor
51    public SingleMemberAnnotationExpr(final Name namefinal Expression memberValue) {
52        this(nullnamememberValue);
53    }
54
55    /**
56     * This constructor is used by the parser and is considered private.
57     */
58    @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
59    public SingleMemberAnnotationExpr(TokenRange tokenRangeName nameExpression memberValue) {
60        super(tokenRangename);
61        setMemberValue(memberValue);
62        customInitialization();
63    }
64
65    @Override
66    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
67    public <RAR accept(final GenericVisitor<RAvfinal A arg) {
68        return v.visit(this, arg);
69    }
70
71    @Override
72    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
73    public <Avoid accept(final VoidVisitor<Avfinal A arg) {
74        v.visit(this, arg);
75    }
76
77    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
78    public Expression getMemberValue() {
79        return memberValue;
80    }
81
82    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
83    public SingleMemberAnnotationExpr setMemberValue(final Expression memberValue) {
84        assertNotNull(memberValue);
85        if (memberValue == this.memberValue) {
86            return (SingleMemberAnnotationExpr) this;
87        }
88        notifyPropertyChange(ObservableProperty.MEMBER_VALUE, this.memberValuememberValue);
89        if (this.memberValue != null)
90            this.memberValue.setParentNode(null);
91        this.memberValue = memberValue;
92        setAsParentNodeOf(memberValue);
93        return this;
94    }
95
96    @Override
97    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
98    public boolean remove(Node node) {
99        if (node == null)
100            return false;
101        return super.remove(node);
102    }
103
104    @Override
105    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
106    public SingleMemberAnnotationExpr clone() {
107        return (SingleMemberAnnotationExpraccept(new CloneVisitor(), null);
108    }
109
110    @Override
111    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
112    public SingleMemberAnnotationExprMetaModel getMetaModel() {
113        return JavaParserMetaModel.singleMemberAnnotationExprMetaModel;
114    }
115
116    @Override
117    @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
118    public boolean replace(Node nodeNode replacementNode) {
119        if (node == null)
120            return false;
121        if (node == memberValue) {
122            setMemberValue((ExpressionreplacementNode);
123            return true;
124        }
125        return super.replace(nodereplacementNode);
126    }
127
128    @Override
129    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
130    public boolean isSingleMemberAnnotationExpr() {
131        return true;
132    }
133
134    @Override
135    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
136    public SingleMemberAnnotationExpr asSingleMemberAnnotationExpr() {
137        return this;
138    }
139
140    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
141    public void ifSingleMemberAnnotationExpr(Consumer<SingleMemberAnnotationExpraction) {
142        action.accept(this);
143    }
144
145    @Override
146    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
147    public Optional<SingleMemberAnnotationExprtoSingleMemberAnnotationExpr() {
148        return Optional.of(this);
149    }
150}
151
MembersX
SingleMemberAnnotationExpr:memberValue
SingleMemberAnnotationExpr:toSingleMemberAnnotationExpr
SingleMemberAnnotationExpr:SingleMemberAnnotationExpr
SingleMemberAnnotationExpr:isSingleMemberAnnotationExpr
SingleMemberAnnotationExpr:replace
SingleMemberAnnotationExpr:accept
SingleMemberAnnotationExpr:getMetaModel
SingleMemberAnnotationExpr:remove
SingleMemberAnnotationExpr:clone
SingleMemberAnnotationExpr:asSingleMemberAnnotationExpr
SingleMemberAnnotationExpr:getMemberValue
SingleMemberAnnotationExpr:ifSingleMemberAnnotationExpr
SingleMemberAnnotationExpr:setMemberValue
Members
X