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.nodeTypes.NodeWithType; 6 import com.github.javaparser.ast.observer.ObservableProperty; 7 import com.github.javaparser.ast.type.Type; 8 import com.github.javaparser.ast.visitor.CloneVisitor; 9 import com.github.javaparser.ast.visitor.GenericVisitor; 10 import com.github.javaparser.ast.visitor.VoidVisitor; 11 import com.github.javaparser.metamodel.JavaParserMetaModel; 12 import com.github.javaparser.metamodel.ModuleUsesStmtMetaModel; 13 import static com.github.javaparser.utils.Utils.assertNotNull; 14 import javax.annotation.Generated; 15 import com.github.javaparser.TokenRange; 16 import java.util.function.Consumer; 17 import java.util.Optional; 18 19 public final class ModuleUsesStmt extends ModuleStmt implements NodeWithType<ModuleUsesStmt, Type> { 20 21 private Type type; 22 23 public ModuleUsesStmt() { 24 this(null); 25 } 26 27 @AllFieldsConstructor 28 public ModuleUsesStmt(Type type) { 29 this(null, type); 30 } 31 32 /** 33 * This constructor is used by the parser and is considered private. 34 */ 35 @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") 36 public ModuleUsesStmt(TokenRange tokenRange, Type type) { 37 super(tokenRange); 38 setType(type); 39 customInitialization(); 40 } 41 42 @Override 43 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 44 public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { 45 return v.visit(this, arg); 46 } 47 48 @Override 49 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 50 public <A> void accept(final VoidVisitor<A> v, final A arg) { 51 v.visit(this, arg); 52 } 53 54 @Override 55 @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") 56 public boolean remove(Node node) { 57 if (node == null) 58 return false; 59 return super.remove(node); 60 } 61 62 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") 63 public Type getType() { 64 return type; 65 } 66 67 @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") 68 public ModuleUsesStmt setType(final Type type) { 69 assertNotNull(type); 70 if (type == this.type) { 71 return (ModuleUsesStmt) this; 72 } 73 notifyPropertyChange(ObservableProperty.TYPE, this.type, type); 74 if (this.type != null) 75 this.type.setParentNode(null); 76 this.type = type; 77 setAsParentNodeOf(type); 78 return this; 79 } 80 81 @Override 82 @Generated("com.github.javaparser.generator.core.node.CloneGenerator") 83 public ModuleUsesStmt clone() { 84 return (ModuleUsesStmt) accept(new CloneVisitor(), null); 85 } 86 87 @Override 88 @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator") 89 public ModuleUsesStmtMetaModel getMetaModel() { 90 return JavaParserMetaModel.moduleUsesStmtMetaModel; 91 } 92 93 @Override 94 @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator") 95 public boolean replace(Node node, Node replacementNode) { 96 if (node == null) 97 return false; 98 if (node == type) { 99 setType((Type) replacementNode); 100 return true; 101 } 102 return super.replace(node, replacementNode); 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 ModuleUsesStmt asModuleUsesStmt() { 114 return this; 115 } 116 117 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 118 public void ifModuleUsesStmt(Consumer<ModuleUsesStmt> action) { 119 action.accept(this); 120 } 121 122 @Override 123 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 124 public Optional<ModuleUsesStmt> toModuleUsesStmt() { 125 return Optional.of(this); 126 } 127 } 128