18ec241a22ee29e90eb73872202b7b1c15a0e287
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / env / IBinaryType.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others.
3  * All rights reserved. This program and the accompanying materials 
4  * are made available under the terms of the Common Public License v0.5 
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v05.html
7  * 
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  ******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler.env;
12
13 public interface IBinaryType extends IGenericType {
14
15         char[][] NoInterface = new char[0][];
16         IBinaryNestedType[] NoNestedType = new IBinaryNestedType[0];
17         IBinaryField[] NoField = new IBinaryField[0];
18         IBinaryMethod[] NoMethod = new IBinaryMethod[0];
19 /**
20  * Answer the resolved name of the enclosing type in the
21  * class file format as specified in section 4.2 of the Java 2 VM spec
22  * or null if the receiver is a top level type.
23  *
24  * For example, java.lang.String is java/lang/String.
25  */
26
27 char[] getEnclosingTypeName();
28 /**
29  * Answer the receiver's fields or null if the array is empty.
30  */
31
32 IBinaryField[] getFields();
33 /**
34  * Answer the resolved names of the receiver's interfaces in the
35  * class file format as specified in section 4.2 of the Java 2 VM spec
36  * or null if the array is empty.
37  *
38  * For example, java.lang.String is java/lang/String.
39  */
40
41 char[][] getInterfaceNames();
42 /**
43  * Answer the receiver's nested types or null if the array is empty.
44  *
45  * This nested type info is extracted from the inner class attributes.
46  * Ask the name environment to find a member type using its compound name.
47  */
48
49 // NOTE: The compiler examines the nested type info & ignores the local types
50 // so the local types do not have to be included.
51
52 IBinaryNestedType[] getMemberTypes();
53 /**
54  * Answer the receiver's methods or null if the array is empty.
55  */
56
57 IBinaryMethod[] getMethods();
58 /**
59  * Answer the resolved name of the type in the
60  * class file format as specified in section 4.2 of the Java 2 VM spec.
61  *
62  * For example, java.lang.String is java/lang/String.
63  */
64
65 char[] getName();
66 /**
67  * Answer the resolved name of the receiver's superclass in the
68  * class file format as specified in section 4.2 of the Java 2 VM spec
69  * or null if it does not have one.
70  *
71  * For example, java.lang.String is java/lang/String.
72  */
73
74 char[] getSuperclassName();
75
76 /**
77  * Answer true if the receiver is an anonymous class.
78  * false otherwise
79  */
80 boolean isAnonymous();
81
82 /**
83  * Answer true if the receiver is a local class.
84  * false otherwise
85  */
86 boolean isLocal();
87
88 /**
89  * Answer true if the receiver is a member class.
90  * false otherwise
91  */
92 boolean isMember(); 
93
94 /**
95  * Answer the source file attribute, or null if none.
96  *
97  * For example, "String.java"
98  */
99
100 char[] sourceFileName();
101
102 }