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
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler.env;
13 import net.sourceforge.phpdt.core.compiler.CharOperation;
15 public interface IBinaryType extends IGenericType {
17 char[][] NoInterface = CharOperation.NO_CHAR_CHAR;
19 IBinaryNestedType[] NoNestedType = new IBinaryNestedType[0];
21 IBinaryField[] NoField = new IBinaryField[0];
23 IBinaryMethod[] NoMethod = new IBinaryMethod[0];
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.
30 * For example, java.lang.String is java/lang/String.
33 char[] getEnclosingTypeName();
36 * Answer the receiver's fields or null if the array is empty.
39 IBinaryField[] getFields();
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
46 * For example, java.lang.String is java/lang/String.
49 char[][] getInterfaceNames();
52 * Answer the receiver's nested types or null if the array is empty.
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.
58 // NOTE: The compiler examines the nested type info & ignores the local
60 // so the local types do not have to be included.
61 IBinaryNestedType[] getMemberTypes();
64 * Answer the receiver's methods or null if the array is empty.
67 IBinaryMethod[] getMethods();
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.
73 * For example, java.lang.String is java/lang/String.
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
83 * For example, java.lang.String is java/lang/String.
86 char[] getSuperclassName();
89 * Answer true if the receiver is an anonymous class. false otherwise
91 boolean isAnonymous();
94 * Answer true if the receiver is a local class. false otherwise
99 * Answer true if the receiver is a member class. false otherwise
104 * Answer the source file attribute, or null if none.
106 * For example, "String.java"
109 char[] sourceFileName();