1 package com.github.javaparser.ast.modules; 2 3 import com.github.javaparser.ast.AllFieldsConstructor; 4 import com.github.javaparser.ast.Node; 5 import com.github.javaparser.ast.NodeList; 6 import com.github.javaparser.ast.expr.Name; 7 import com.github.javaparser.ast.nodeTypes.NodeWithName; 8 import com.github.javaparser.ast.observer.ObservableProperty; 9 import com.github.javaparser.ast.visitor.CloneVisitor; 10 import com.github.javaparser.ast.visitor.GenericVisitor; 11 import com.github.javaparser.ast.visitor.VoidVisitor; 12 import com.github.javaparser.metamodel.JavaParserMetaModel; 13 import com.github.javaparser.metamodel.ModuleExportsStmtMetaModel; 14 import java.util.Arrays; 15 import java.util.List; 16 import static com.github.javaparser.utils.Utils.assertNotNull; 17 import javax.annotation.Generated; 18 import com.github.javaparser.TokenRange; 19 import java.util.function.Consumer; 20 import java.util.Optional; 21 22 public final class ModuleExportsStmt extends ModuleStmt implements NodeWithName<ModuleExportsStmt> { 23 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 37 /** 38 * This constructor is used by the parser and is considered private. 39 */ 40 @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") 41 public ModuleExportsStmt(TokenRange tokenRange, Name name, NodeList<Name> moduleNames) { 42 super(tokenRange); 43 setName(name); 44 setModuleNames(moduleNames); 45 customInitialization(); 46 } 47 48 @Override 49 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 50 public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { 51 return v.visit(this, arg); 52 } 53 54 @Override 55 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 56 public <A> void accept(final VoidVisitor<A> v, final A arg) { 57 v.visit(this, arg); 58 } 59 60 @Override 61 @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") 62 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 74 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") 75 public Name getName() { 76 return name; 77 } 78 79 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") 80 public ModuleExportsStmt setName(final Name name) { 81 assertNotNull(name); 82 if (name == this.name) { 83 return (ModuleExportsStmt) this; 84 } 85 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 93 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") 94 public NodeList<Name> getModuleNames() { 95 return moduleNames; 96 } 97 98 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") 99 public ModuleExportsStmt setModuleNames(final NodeList<Name> moduleNames) { 100 assertNotNull(moduleNames); 101 if (moduleNames == this.moduleNames) { 102 return (ModuleExportsStmt) this; 103 } 104 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 113 @Generated("com.github.javaparser.generator.core.node.CloneGenerator") 114 public ModuleExportsStmt clone() { 115 return (ModuleExportsStmt) accept(new CloneVisitor(), null); 116 } 117 118 @Override 119 @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator") 120 public ModuleExportsStmtMetaModel getMetaModel() { 121 return JavaParserMetaModel.moduleExportsStmtMetaModel; 122 } 123 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 } 135 if (node == name) { 136 setName((Name) replacementNode); 137 return true; 138 } 139 return super.replace(node, replacementNode); 140 } 141 142 @Override 143 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 144 public boolean isModuleExportsStmt() { 145 return true; 146 } 147 148 @Override 149 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 150 public ModuleExportsStmt asModuleExportsStmt() { 151 return this; 152 } 153 154 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 155 public void ifModuleExportsStmt(Consumer<ModuleExportsStmt> action) { 156 action.accept(this); 157 } 158 159 @Override 160 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 161 public Optional<ModuleExportsStmt> toModuleExportsStmt() { 162 return Optional.of(this); 163 } 164 } 165