A massive organize imports and formatting of the sources using default Eclipse code...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / env / IBinaryType.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 import net.sourceforge.phpdt.core.compiler.CharOperation;
14
15 public interface IBinaryType extends IGenericType {
16
17         char[][] NoInterface = CharOperation.NO_CHAR_CHAR;
18
19         IBinaryNestedType[] NoNestedType = new IBinaryNestedType[0];
20
21         IBinaryField[] NoField = new IBinaryField[0];
22
23         IBinaryMethod[] NoMethod = new IBinaryMethod[0];
24
25         /**
26          * Answer the resolved name of the enclosing type in the class file format
27          * as specified in section 4.2 of the Java 2 VM spec or null if the receiver
28          * is a top level type.
29          * 
30          * For example, java.lang.String is java/lang/String.
31          */
32
33         char[] getEnclosingTypeName();
34
35         /**
36          * Answer the receiver's fields or null if the array is empty.
37          */
38
39         IBinaryField[] getFields();
40
41         /**
42          * Answer the resolved names of the receiver's interfaces in the class file
43          * format as specified in section 4.2 of the Java 2 VM spec or null if the
44          * array is empty.
45          * 
46          * For example, java.lang.String is java/lang/String.
47          */
48
49         char[][] getInterfaceNames();
50
51         /**
52          * Answer the receiver's nested types or null if the array is empty.
53          * 
54          * This nested type info is extracted from the inner class attributes. Ask
55          * the name environment to find a member type using its compound name.
56          */
57
58         // NOTE: The compiler examines the nested type info & ignores the local
59         // types
60         // so the local types do not have to be included.
61         IBinaryNestedType[] getMemberTypes();
62
63         /**
64          * Answer the receiver's methods or null if the array is empty.
65          */
66
67         IBinaryMethod[] getMethods();
68
69         /**
70          * Answer the resolved name of the type in the class file format as
71          * specified in section 4.2 of the Java 2 VM spec.
72          * 
73          * For example, java.lang.String is java/lang/String.
74          */
75
76         char[] getName();
77
78         /**
79          * Answer the resolved name of the receiver's superclass in the class file
80          * format as specified in section 4.2 of the Java 2 VM spec or null if it
81          * does not have one.
82          * 
83          * For example, java.lang.String is java/lang/String.
84          */
85
86         char[] getSuperclassName();
87
88         /**
89          * Answer true if the receiver is an anonymous class. false otherwise
90          */
91         boolean isAnonymous();
92
93         /**
94          * Answer true if the receiver is a local class. false otherwise
95          */
96         boolean isLocal();
97
98         /**
99          * Answer true if the receiver is a member class. false otherwise
100          */
101         boolean isMember();
102
103         /**
104          * Answer the source file attribute, or null if none.
105          * 
106          * For example, "String.java"
107          */
108
109         char[] sourceFileName();
110
111 }