blob: 61440b1a7f9e87d0fd03665bc1fb73c67d7f2803 [file] [log] [blame]
Danny van Bruggen88d5ca02017-02-21 23:02:33 +01001package com.github.javaparser.ast.modules;
2
Danny van Bruggen88d5ca02017-02-21 23:02:33 +01003import com.github.javaparser.ast.AllFieldsConstructor;
4import com.github.javaparser.ast.Node;
5import com.github.javaparser.ast.NodeList;
6import com.github.javaparser.ast.expr.Name;
7import com.github.javaparser.ast.nodeTypes.NodeWithName;
8import com.github.javaparser.ast.observer.ObservableProperty;
9import com.github.javaparser.ast.visitor.CloneVisitor;
10import com.github.javaparser.ast.visitor.GenericVisitor;
11import com.github.javaparser.ast.visitor.VoidVisitor;
12import com.github.javaparser.metamodel.JavaParserMetaModel;
13import com.github.javaparser.metamodel.ModuleExportsStmtMetaModel;
14import java.util.Arrays;
15import java.util.List;
16import static com.github.javaparser.utils.Utils.assertNotNull;
Danny van Bruggen4e845ed2017-04-23 00:14:48 +020017import javax.annotation.Generated;
Danny van Bruggen4f564982017-05-18 22:36:35 +020018import com.github.javaparser.TokenRange;
Danny van Bruggen54abb202017-09-21 20:59:14 +020019import java.util.function.Consumer;
Danny van Bruggenec67c242017-12-08 22:33:51 +010020import java.util.Optional;
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010021
Danny van Bruggen7742bc72017-08-15 22:51:02 +020022public final class ModuleExportsStmt extends ModuleStmt implements NodeWithName<ModuleExportsStmt> {
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010023
24 private Name name;
25
26 private NodeList<Name> moduleNames;
27
28 public ModuleExportsStmt() {
29 this(null, new Name(), new NodeList<>());
30 }
31
32 @AllFieldsConstructor
33 public ModuleExportsStmt(Name name, NodeList<Name> moduleNames) {
34 this(null, name, moduleNames);
35 }
36
Danny van Bruggen07d556b2017-10-20 18:19:33 +020037 /**
38 * This constructor is used by the parser and is considered private.
39 */
Danny van Bruggen4e845ed2017-04-23 00:14:48 +020040 @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
Danny van Bruggen4f564982017-05-18 22:36:35 +020041 public ModuleExportsStmt(TokenRange tokenRange, Name name, NodeList<Name> moduleNames) {
42 super(tokenRange);
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010043 setName(name);
44 setModuleNames(moduleNames);
Danny van Bruggen4e845ed2017-04-23 00:14:48 +020045 customInitialization();
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010046 }
47
48 @Override
Danny van Bruggen179d3402017-10-17 20:55:14 +020049 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
50 public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010051 return v.visit(this, arg);
52 }
53
54 @Override
Danny van Bruggen179d3402017-10-17 20:55:14 +020055 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator")
56 public <A> void accept(final VoidVisitor<A> v, final A arg) {
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010057 v.visit(this, arg);
58 }
59
60 @Override
Danny van Bruggen3d837802017-04-23 03:02:06 +020061 @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010062 public boolean remove(Node node) {
63 if (node == null)
64 return false;
65 for (int i = 0; i < moduleNames.size(); i++) {
66 if (moduleNames.get(i) == node) {
67 moduleNames.remove(i);
68 return true;
69 }
70 }
71 return super.remove(node);
72 }
73
Danny van Bruggen21d256c2017-04-23 02:46:13 +020074 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010075 public Name getName() {
76 return name;
77 }
78
Danny van Bruggene4610d52017-04-23 02:41:07 +020079 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010080 public ModuleExportsStmt setName(final Name name) {
81 assertNotNull(name);
Federico Tomassettiaa1fa252017-03-29 17:52:52 +020082 if (name == this.name) {
83 return (ModuleExportsStmt) this;
84 }
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010085 notifyPropertyChange(ObservableProperty.NAME, this.name, name);
86 if (this.name != null)
87 this.name.setParentNode(null);
88 this.name = name;
89 setAsParentNodeOf(name);
90 return this;
91 }
92
Danny van Bruggen21d256c2017-04-23 02:46:13 +020093 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010094 public NodeList<Name> getModuleNames() {
95 return moduleNames;
96 }
97
Danny van Bruggene4610d52017-04-23 02:41:07 +020098 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +010099 public ModuleExportsStmt setModuleNames(final NodeList<Name> moduleNames) {
100 assertNotNull(moduleNames);
Federico Tomassettiaa1fa252017-03-29 17:52:52 +0200101 if (moduleNames == this.moduleNames) {
102 return (ModuleExportsStmt) this;
103 }
Danny van Bruggen88d5ca02017-02-21 23:02:33 +0100104 notifyPropertyChange(ObservableProperty.MODULE_NAMES, this.moduleNames, moduleNames);
105 if (this.moduleNames != null)
106 this.moduleNames.setParentNode(null);
107 this.moduleNames = moduleNames;
108 setAsParentNodeOf(moduleNames);
109 return this;
110 }
111
112 @Override
Danny van Bruggen2769f242017-04-23 00:40:44 +0200113 @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +0100114 public ModuleExportsStmt clone() {
115 return (ModuleExportsStmt) accept(new CloneVisitor(), null);
116 }
117
118 @Override
Danny van Bruggen826d9692017-04-23 00:42:40 +0200119 @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
Danny van Bruggen88d5ca02017-02-21 23:02:33 +0100120 public ModuleExportsStmtMetaModel getMetaModel() {
121 return JavaParserMetaModel.moduleExportsStmtMetaModel;
122 }
Danny van Bruggen81280be2017-06-25 21:44:20 +0200123
124 @Override
125 @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
126 public boolean replace(Node node, Node replacementNode) {
127 if (node == null)
128 return false;
129 for (int i = 0; i < moduleNames.size(); i++) {
130 if (moduleNames.get(i) == node) {
131 moduleNames.set(i, (Name) replacementNode);
132 return true;
133 }
134 }
Danny van Bruggen141963f2017-07-25 22:07:31 +0200135 if (node == name) {
136 setName((Name) replacementNode);
137 return true;
138 }
Danny van Bruggen81280be2017-06-25 21:44:20 +0200139 return super.replace(node, replacementNode);
140 }
Danny van Bruggenad9d33b2017-09-20 22:14:59 +0200141
142 @Override
143 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
144 public boolean isModuleExportsStmt() {
145 return true;
146 }
Danny van Bruggend7c0e702017-09-21 20:44:40 +0200147
148 @Override
149 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
150 public ModuleExportsStmt asModuleExportsStmt() {
151 return this;
152 }
Danny van Bruggen54abb202017-09-21 20:59:14 +0200153
154 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
155 public void ifModuleExportsStmt(Consumer<ModuleExportsStmt> action) {
156 action.accept(this);
157 }
Danny van Bruggenec67c242017-12-08 22:33:51 +0100158
159 @Override
Danny van Bruggena3a93db2017-12-12 21:26:08 +0100160 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
Danny van Bruggenec67c242017-12-08 22:33:51 +0100161 public Optional<ModuleExportsStmt> toModuleExportsStmt() {
162 return Optional.of(this);
163 }
Danny van Bruggen88d5ca02017-02-21 23:02:33 +0100164}