Home | History | Annotate | Download | only in modules
      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