JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/ast/modules/ModuleOpensDirective.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.ast.AllFieldsConstructor;
24import com.github.javaparser.ast.Node;
25import com.github.javaparser.ast.NodeList;
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 static com.github.javaparser.utils.Utils.assertNotNull;
33import com.github.javaparser.TokenRange;
34import java.util.function.Consumer;
35import java.util.Optional;
36import com.github.javaparser.metamodel.ModuleOpensDirectiveMetaModel;
37import com.github.javaparser.metamodel.JavaParserMetaModel;
38import com.github.javaparser.ast.Generated;
39
40/**
41 * An opens directive in module-info.java. {@code opens R.S to T1.U1, T2.U2;}
42 */
43public class ModuleOpensDirective extends ModuleDirective implements NodeWithName<ModuleOpensDirective> {
44
45    private Name name;
46
47    private NodeList<NamemoduleNames;
48
49    public ModuleOpensDirective() {
50        this(null, new Name(), new NodeList<>());
51    }
52
53    @AllFieldsConstructor
54    public ModuleOpensDirective(Name nameNodeList<NamemoduleNames) {
55        this(nullnamemoduleNames);
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 ModuleOpensDirective(TokenRange tokenRangeName nameNodeList<NamemoduleNames) {
63        super(tokenRange);
64        setName(name);
65        setModuleNames(moduleNames);
66        customInitialization();
67    }
68
69    @Override
70    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
71    public <RAR accept(final GenericVisitor<RAvfinal A arg) {
72        return v.visit(this, arg);
73    }
74
75    @Override
76    @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
77    public <Avoid accept(final VoidVisitor<Avfinal A arg) {
78        v.visit(this, arg);
79    }
80
81    @Override
82    @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
83    public boolean remove(Node node) {
84        if (node == null)
85            return false;
86        for (int i = 0i < moduleNames.size(); i++) {
87            if (moduleNames.get(i) == node) {
88                moduleNames.remove(i);
89                return true;
90            }
91        }
92        return super.remove(node);
93    }
94
95    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
96    public Name getName() {
97        return name;
98    }
99
100    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
101    public ModuleOpensDirective setName(final Name name) {
102        assertNotNull(name);
103        if (name == this.name) {
104            return (ModuleOpensDirective) this;
105        }
106        notifyPropertyChange(ObservableProperty.NAME, this.namename);
107        if (this.name != null)
108            this.name.setParentNode(null);
109        this.name = name;
110        setAsParentNodeOf(name);
111        return this;
112    }
113
114    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
115    public NodeList<NamegetModuleNames() {
116        return moduleNames;
117    }
118
119    @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
120    public ModuleOpensDirective setModuleNames(final NodeList<NamemoduleNames) {
121        assertNotNull(moduleNames);
122        if (moduleNames == this.moduleNames) {
123            return (ModuleOpensDirective) this;
124        }
125        notifyPropertyChange(ObservableProperty.MODULE_NAMES, this.moduleNamesmoduleNames);
126        if (this.moduleNames != null)
127            this.moduleNames.setParentNode(null);
128        this.moduleNames = moduleNames;
129        setAsParentNodeOf(moduleNames);
130        return this;
131    }
132
133    @Override
134    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
135    public ModuleOpensDirective clone() {
136        return (ModuleOpensDirectiveaccept(new CloneVisitor(), null);
137    }
138
139    @Override
140    @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
141    public boolean replace(Node nodeNode replacementNode) {
142        if (node == null)
143            return false;
144        for (int i = 0i < moduleNames.size(); i++) {
145            if (moduleNames.get(i) == node) {
146                moduleNames.set(i, (NamereplacementNode);
147                return true;
148            }
149        }
150        if (node == name) {
151            setName((NamereplacementNode);
152            return true;
153        }
154        return super.replace(nodereplacementNode);
155    }
156
157    @Override
158    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
159    public boolean isModuleOpensStmt() {
160        return true;
161    }
162
163    @Override
164    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
165    public ModuleOpensDirective asModuleOpensStmt() {
166        return this;
167    }
168
169    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
170    public void ifModuleOpensStmt(Consumer<ModuleOpensDirectiveaction) {
171        action.accept(this);
172    }
173
174    @Override
175    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
176    public Optional<ModuleOpensDirectivetoModuleOpensStmt() {
177        return Optional.of(this);
178    }
179
180    @Override
181    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
182    public boolean isModuleOpensDirective() {
183        return true;
184    }
185
186    @Override
187    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
188    public ModuleOpensDirective asModuleOpensDirective() {
189        return this;
190    }
191
192    @Override
193    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
194    public Optional<ModuleOpensDirectivetoModuleOpensDirective() {
195        return Optional.of(this);
196    }
197
198    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
199    public void ifModuleOpensDirective(Consumer<ModuleOpensDirectiveaction) {
200        action.accept(this);
201    }
202
203    @Override
204    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
205    public ModuleOpensDirectiveMetaModel getMetaModel() {
206        return JavaParserMetaModel.moduleOpensDirectiveMetaModel;
207    }
208}
209
MembersX
ModuleOpensDirective:asModuleOpensDirective
ModuleOpensDirective:ifModuleOpensDirective
ModuleOpensDirective:getModuleNames
ModuleOpensDirective:toModuleOpensDirective
ModuleOpensDirective:clone
ModuleOpensDirective:accept
ModuleOpensDirective:getName
ModuleOpensDirective:setName
ModuleOpensDirective:ifModuleOpensStmt
ModuleOpensDirective:getMetaModel
ModuleOpensDirective:moduleNames
ModuleOpensDirective:remove
ModuleOpensDirective:isModuleOpensStmt
ModuleOpensDirective:replace
ModuleOpensDirective:setModuleNames
ModuleOpensDirective:name
ModuleOpensDirective:ModuleOpensDirective
ModuleOpensDirective:asModuleOpensStmt
ModuleOpensDirective:isModuleOpensDirective
ModuleOpensDirective:toModuleOpensStmt
Members
X