1 /*******************************************************************************
2  * Copyright (c) 2013 Jesper Steen Moeller and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     Jesper Steen Moeller - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.jdt.core.util;
15 
16 /**
17  * Description of a method's parameters names as described in the JVM specifications.
18  *
19  * This interface may be implemented by clients.
20  *
21  * @since 3.10
22  */
23 public interface IMethodParametersAttribute extends IClassFileAttribute {
24 
25 	/**
26 	 * Answer back the number of parameters for this method as specified in
27 	 * the JVM specifications.
28 	 *
29 	 * @return the number of parameters for this method as specified in
30 	 * the JVM specifications
31 	 */
getMethodParameterLength()32 	int getMethodParameterLength();
33 
34 	/**
35 	 * Answer back the name for the i'th parameter. Answer null if no
36 	 * name is available.
37 	 *
38 	 * @return back the name for the i'th parameter. Returns null if no
39 	 * name is available.
40 	 */
getParameterName(int i)41 	char[] getParameterName(int i);
42 
43 	/**
44 	 * Answer back the access flags for the i'th parameter, a mask of
45 	 * <code>ACC_FINAL</code>, <code>ACC_SYNTHETIC</code>, and <code>ACC_MANDATED</code>.
46 	 *
47 	 * @return the access flags for the i'th parameter.
48 	 */
getAccessFlags(int i)49 	short getAccessFlags(int i);
50 
51 }
52