aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java')
-rw-r--r--javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java138
1 files changed, 138 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java
new file mode 100644
index 000000000..bfec9c936
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/TypeParameter.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser.
+ * Copyright (C) 2011, 2013-2016 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.ast.type;
+
+import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.expr.AnnotationExpr;
+import com.github.javaparser.ast.nodeTypes.NodeWithName;
+import com.github.javaparser.ast.visitor.GenericVisitor;
+import com.github.javaparser.ast.visitor.VoidVisitor;
+
+import java.util.List;
+
+import static com.github.javaparser.utils.Utils.ensureNotNull;
+
+/**
+ * <p>
+ * This class represents the declaration of a generics argument.
+ * </p>
+ * The TypeParameter is constructed following the syntax:<br>
+ * <pre>
+ * {@code
+ * TypeParameter ::= <IDENTIFIER> ( "extends" }{@link ClassOrInterfaceType}{@code ( "&" }{@link ClassOrInterfaceType}{@code )* )?
+ * }
+ * </pre>
+ * @author Julio Vilmar Gesser
+ */
+public final class TypeParameter extends ReferenceType<TypeParameter> implements NodeWithName<TypeParameter> {
+
+ private String name;
+
+ private List<AnnotationExpr> annotations;
+
+ private List<ClassOrInterfaceType> typeBound;
+
+ public TypeParameter() {
+ }
+
+ public TypeParameter(final String name, final List<ClassOrInterfaceType> typeBound) {
+ setName(name);
+ setTypeBound(typeBound);
+ }
+
+ public TypeParameter(Range range, final String name, final List<ClassOrInterfaceType> typeBound) {
+ super(range);
+ setName(name);
+ setTypeBound(typeBound);
+ }
+
+ public TypeParameter(Range range, String name, List<ClassOrInterfaceType> typeBound, List<AnnotationExpr> annotations) {
+ this(range, name, typeBound);
+ setTypeBound(typeBound);
+ setAnnotations(annotations);
+ }
+
+ @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) {
+ return v.visit(this, arg);
+ }
+
+ @Override public <A> void accept(final VoidVisitor<A> v, final A arg) {
+ v.visit(this, arg);
+ }
+
+ /**
+ * Return the name of the paramenter.
+ *
+ * @return the name of the paramenter
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Return the list of {@link ClassOrInterfaceType} that this parameter
+ * extends. Return <code>null</code> null if there are no type.
+ *
+ * @return list of types that this paramente extends or <code>null</code>
+ */
+ public List<ClassOrInterfaceType> getTypeBound() {
+ typeBound = ensureNotNull(typeBound);
+ return typeBound;
+ }
+
+ /**
+ * Sets the name of this type parameter.
+ *
+ * @param name
+ * the name to set
+ */
+ @Override
+ public TypeParameter setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Sets the list o types.
+ *
+ * @param typeBound
+ * the typeBound to set
+ */
+ public TypeParameter setTypeBound(final List<ClassOrInterfaceType> typeBound) {
+ this.typeBound = typeBound;
+ setAsParentNodeOf(typeBound);
+ return this;
+ }
+
+ public List<AnnotationExpr> getAnnotations() {
+ annotations = ensureNotNull(annotations);
+ return annotations;
+ }
+
+ public TypeParameter setAnnotations(List<AnnotationExpr> annotations) {
+ this.annotations = annotations;
+ setAsParentNodeOf(this.annotations);
+ return this;
+ }
+}