JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/ast/modules/ModuleUsesDirective.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.modules;
22
23import com.github.javaparser.TokenRange;
24import com.github.javaparser.ast.AllFieldsConstructor;
25import com.github.javaparser.ast.Node;
26import com.github.javaparser.ast.expr.Name;
27import com.github.javaparser.ast.nodeTypes.NodeWithName;
28import com.github.javaparser.ast.observer.ObservableProperty;
29import com.github.javaparser.ast.visitor.CloneVisitor;
30import com.github.javaparser.ast.visitor.GenericVisitor;
31import com.github.javaparser.ast.visitor.VoidVisitor;
32import java.util.Optional;
33import java.util.function.Consumer;
34import static com.github.javaparser.utils.Utils.assertNotNull;
35import com.github.javaparser.metamodel.ModuleUsesDirectiveMetaModel;
36import com.github.javaparser.metamodel.JavaParserMetaModel;
37import com.github.javaparser.ast.Generated;
38
39/**
40 * A uses directive in module-info.java. {@code uses V.W;}
41 */
42public class ModuleUsesDirective extends ModuleDirective implements NodeWithName<ModuleUsesDirective> {
43
44    private Name name;
45
46    public ModuleUsesDirective() {
47        this(null, new Name());
48    }
49
50    @AllFieldsConstructor
51    public ModuleUsesDirective(Name name) {
52        this(nullname);
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 ModuleUsesDirective(TokenRange tokenRangeName name) {
60        super(tokenRange);
61        setName(name);
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    @Override
78    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
79    public boolean remove(Node node) {
80        if (node == null)
81            return false;
82        return super.remove(node);
83    }
84
85    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
86    public ModuleUsesDirective setType(final Name name) {
87        assertNotNull(name);
88        if (name == this.name) {
89            return (ModuleUsesDirective) this;
90        }
91        notifyPropertyChange(ObservableProperty.TYPE, this.namename);
92        if (this.name != null)
93            this.name.setParentNode(null);
94        this.name = name;
95        setAsParentNodeOf(name);
96        return this;
97    }
98
99    @Override
100    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
101    public ModuleUsesDirective clone() {
102        return (ModuleUsesDirectiveaccept(new CloneVisitor(), null);
103    }
104
105    @Override
106    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
107    public boolean isModuleUsesStmt() {
108        return true;
109    }
110
111    @Override
112    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
113    public ModuleUsesDirective asModuleUsesStmt() {
114        return this;
115    }
116
117    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
118    public void ifModuleUsesStmt(Consumer<ModuleUsesDirectiveaction) {
119        action.accept(this);
120    }
121
122    @Override
123    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
124    public Optional<ModuleUsesDirectivetoModuleUsesStmt() {
125        return Optional.of(this);
126    }
127
128    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
129    public Name getName() {
130        return name;
131    }
132
133    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
134    public ModuleUsesDirective setName(final Name name) {
135        assertNotNull(name);
136        if (name == this.name) {
137            return (ModuleUsesDirective) this;
138        }
139        notifyPropertyChange(ObservableProperty.NAME, this.namename);
140        if (this.name != null)
141            this.name.setParentNode(null);
142        this.name = name;
143        setAsParentNodeOf(name);
144        return this;
145    }
146
147    @Override
148    @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
149    public boolean replace(Node nodeNode replacementNode) {
150        if (node == null)
151            return false;
152        if (node == name) {
153            setName((NamereplacementNode);
154            return true;
155        }
156        return super.replace(nodereplacementNode);
157    }
158
159    @Override
160    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
161    public boolean isModuleUsesDirective() {
162        return true;
163    }
164
165    @Override
166    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
167    public ModuleUsesDirective asModuleUsesDirective() {
168        return this;
169    }
170
171    @Override
172    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
173    public Optional<ModuleUsesDirectivetoModuleUsesDirective() {
174        return Optional.of(this);
175    }
176
177    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
178    public void ifModuleUsesDirective(Consumer<ModuleUsesDirectiveaction) {
179        action.accept(this);
180    }
181
182    @Override
183    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
184    public ModuleUsesDirectiveMetaModel getMetaModel() {
185        return JavaParserMetaModel.moduleUsesDirectiveMetaModel;
186    }
187}
188
MembersX
ModuleUsesDirective:ModuleUsesDirective
ModuleUsesDirective:setType
ModuleUsesDirective:name
ModuleUsesDirective:clone
ModuleUsesDirective:isModuleUsesDirective
ModuleUsesDirective:asModuleUsesDirective
ModuleUsesDirective:getName
ModuleUsesDirective:accept
ModuleUsesDirective:ifModuleUsesDirective
ModuleUsesDirective:remove
ModuleUsesDirective:getMetaModel
ModuleUsesDirective:toModuleUsesDirective
ModuleUsesDirective:replace
ModuleUsesDirective:ifModuleUsesStmt
ModuleUsesDirective:toModuleUsesStmt
ModuleUsesDirective:asModuleUsesStmt
ModuleUsesDirective:isModuleUsesStmt
ModuleUsesDirective:setName
Members
X