Fix nasty bug #706. See trac.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / env / IBinaryMethod.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2003 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials 
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  * 
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler.env;
12
13 // clinit methods (synthetics too?) can be returned from
14 // IBinaryType>>getMethods()
15 // BUT do not have to be... the compiler will ignore them when building the
16 // binding.
17 // The synthetic argument of a member type's constructor (ie. the first arg of a
18 // non-static
19 // member type) is also ignored by the compiler, BUT in this case it must be
20 // included
21 // in the constructor's signature.
22
23 public interface IBinaryMethod extends IGenericMethod {
24
25         /**
26          * Answer the resolved names of the exception types in the class file format
27          * as specified in section 4.2 of the Java 2 VM spec or null if the array is
28          * empty.
29          * 
30          * For example, java.lang.String is java/lang/String.
31          */
32         char[][] getExceptionTypeNames();
33
34         /**
35          * Answer the receiver's method descriptor which describes the parameter &
36          * return types as specified in section 4.3.3 of the Java 2 VM spec.
37          * 
38          * For example: - int foo(String) is (Ljava/lang/String;)I - Object[]
39          * foo(int) is (I)[Ljava/lang/Object;
40          */
41         char[] getMethodDescriptor();
42
43         /**
44          * Answer whether the receiver represents a class initializer method.
45          */
46         boolean isClinit();
47 }