• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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     @Override
asParameter()37     default ResolvedParameterDeclaration asParameter() {
38         return this;
39     }
40 
41     /**
42      * Is this parameter declared as variadic?
43      */
isVariadic()44     boolean isVariadic();
45 
46     /**
47      * Describe the type of the parameter. In practice add three dots to the type name
48      * is the parameter is variadic.
49      */
describeType()50     default String describeType() {
51         if (isVariadic()) {
52             return getType().asArrayType().getComponentType().describe() + "...";
53         } else {
54             return getType().describe();
55         }
56     }
57 }
58