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
9 * IBM Corporation - initial API and implementation
10 ******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler.env;
13 public interface IBinaryType extends IGenericType {
15 char[][] NoInterface = new char[0][];
16 IBinaryNestedType[] NoNestedType = new IBinaryNestedType[0];
17 IBinaryField[] NoField = new IBinaryField[0];
18 IBinaryMethod[] NoMethod = new IBinaryMethod[0];
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.
24 * For example, java.lang.String is java/lang/String.
27 char[] getEnclosingTypeName();
29 * Answer the receiver's fields or null if the array is empty.
32 IBinaryField[] getFields();
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.
38 * For example, java.lang.String is java/lang/String.
41 char[][] getInterfaceNames();
43 * Answer the receiver's nested types or null if the array is empty.
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.
49 // NOTE: The compiler examines the nested type info & ignores the local types
50 // so the local types do not have to be included.
52 IBinaryNestedType[] getMemberTypes();
54 * Answer the receiver's methods or null if the array is empty.
57 IBinaryMethod[] getMethods();
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.
62 * For example, java.lang.String is java/lang/String.
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.
71 * For example, java.lang.String is java/lang/String.
74 char[] getSuperclassName();
77 * Answer true if the receiver is an anonymous class.
80 boolean isAnonymous();
83 * Answer true if the receiver is a local class.
89 * Answer true if the receiver is a member class.
95 * Answer the source file attribute, or null if none.
97 * For example, "String.java"
100 char[] sourceFileName();