*******************************************************************************/
package net.sourceforge.phpdt.core;
+
/**
* Common protocol for Java elements that can be members of types.
* This set consists of <code>IType</code>, <code>IMethod</code>,
* This interface is not intended to be implemented by clients.
* </p>
*/
-public interface IMember extends IJavaElement , ISourceReference, ISourceManipulation {
+public interface IMember extends IJavaElement , ISourceReference, ISourceManipulation, IParent {
/**
* Returns the class file in which this member is declared, or <code>null</code>
* if this member is not declared in a class file (for example, a source type).
* @return the type in which this member is declared, or <code>null</code>
* if this member is not declared in a type (for example, a top-level type)
*/
-//IType getDeclaringType();
+ IType getDeclaringType();
/**
* Returns the modifier flags for this member. The flags can be examined using class
* <code>Flags</code>.
* (for example, an initializer), or if this member does not have
* associated source code (for example, a binary type)
*/
-//ISourceRange getNameRange() throws JavaModelException;
+ISourceRange getNameRange() throws JavaModelException;
+/**
+ * Returns the local or anonymous type declared in this source member with the given simple name and/or
+ * with the specified position relative to the order they are defined in the source.
+ * The name is empty if it is an anonymous type.
+ * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
+ * This is a handle-only method. The type may or may not exist.
+ * Throws a <code>RuntimeException</code> if this member is not a source member.
+ *
+ * @param name the given simple name
+ * @param occurrenceCount the specified position
+ * @return the type with the given name and/or with the specified position relative to the order they are defined in the source
+ * @since 3.0
+ */
+IType getType(String name, int occurrenceCount);
/**
* Returns whether this member is from a class file.
* This is a handle-only method.