1 /* 2 * Copyright (C) 2007-2010 Jlio Vilmar Gesser. 3 * Copyright (C) 2011, 2013-2016 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 */ 21 package com.github.javaparser.ast.expr; 22 23 import com.github.javaparser.ast.AllFieldsConstructor; 24 import com.github.javaparser.ast.visitor.GenericVisitor; 25 import com.github.javaparser.ast.visitor.VoidVisitor; 26 import com.github.javaparser.ast.Node; 27 import com.github.javaparser.ast.visitor.CloneVisitor; 28 import com.github.javaparser.metamodel.MarkerAnnotationExprMetaModel; 29 import com.github.javaparser.metamodel.JavaParserMetaModel; 30 import static com.github.javaparser.JavaParser.parseName; 31 import javax.annotation.Generated; 32 import com.github.javaparser.TokenRange; 33 import java.util.function.Consumer; 34 import java.util.Optional; 35 36 /** 37 * An annotation that uses only the annotation type name. 38 * <br/><code>@Override</code> 39 * 40 * @author Julio Vilmar Gesser 41 */ 42 public final class MarkerAnnotationExpr extends AnnotationExpr { 43 44 public MarkerAnnotationExpr() { 45 this(null, new Name()); 46 } 47 48 public MarkerAnnotationExpr(final String name) { 49 this(null, parseName(name)); 50 } 51 52 @AllFieldsConstructor 53 public MarkerAnnotationExpr(final Name name) { 54 this(null, name); 55 } 56 57 /** 58 * This constructor is used by the parser and is considered private. 59 */ 60 @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") 61 public MarkerAnnotationExpr(TokenRange tokenRange, Name name) { 62 super(tokenRange, name); 63 customInitialization(); 64 } 65 66 @Override 67 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 68 public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { 69 return v.visit(this, arg); 70 } 71 72 @Override 73 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 74 public <A> void accept(final VoidVisitor<A> v, final A arg) { 75 v.visit(this, arg); 76 } 77 78 @Override 79 @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") 80 public boolean remove(Node node) { 81 if (node == null) 82 return false; 83 return super.remove(node); 84 } 85 86 @Override 87 @Generated("com.github.javaparser.generator.core.node.CloneGenerator") 88 public MarkerAnnotationExpr clone() { 89 return (MarkerAnnotationExpr) accept(new CloneVisitor(), null); 90 } 91 92 @Override 93 @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator") 94 public MarkerAnnotationExprMetaModel getMetaModel() { 95 return JavaParserMetaModel.markerAnnotationExprMetaModel; 96 } 97 98 @Override 99 @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator") 100 public boolean replace(Node node, Node replacementNode) { 101 if (node == null) 102 return false; 103 return super.replace(node, replacementNode); 104 } 105 106 @Override 107 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 108 public boolean isMarkerAnnotationExpr() { 109 return true; 110 } 111 112 @Override 113 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 114 public MarkerAnnotationExpr asMarkerAnnotationExpr() { 115 return this; 116 } 117 118 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 119 public void ifMarkerAnnotationExpr(Consumer<MarkerAnnotationExpr> action) { 120 action.accept(this); 121 } 122 123 @Override 124 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 125 public Optional<MarkerAnnotationExpr> toMarkerAnnotationExpr() { 126 return Optional.of(this); 127 } 128 } 129