1 /*
2  * Copyright (C) 2007-2010 Júlio 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 
22 package com.github.javaparser.resolution.declarations;
23 
24 /**
25  * Declaration of a parameter.
26  *
27  * @author Federico Tomassetti
28  */
29 public interface ResolvedParameterDeclaration extends ResolvedValueDeclaration {
30 
31     @Override
isParameter()32     default boolean isParameter() {
33         return true;
34     }
35 
36     /**
37      * Necessary because parameters obtained through reflection could not have a name.
38      */
hasName()39     default boolean hasName() {
40         return true;
41     }
42 
43     @Override
asParameter()44     default ResolvedParameterDeclaration asParameter() {
45         return this;
46     }
47 
48     /**
49      * Is this parameter declared as variadic?
50      */
isVariadic()51     boolean isVariadic();
52 
53     /**
54      * Describe the type of the parameter. In practice add three dots to the type name
55      * if the parameter is variadic.
56      */
describeType()57     default String describeType() {
58         if (isVariadic()) {
59             return getType().asArrayType().getComponentType().describe() + "...";
60         } else {
61             return getType().describe();
62         }
63     }
64 }
65