improved PHP parser
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / core / IMember.java
index 8494bd8..8365ab6 100644 (file)
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package net.sourceforge.phpdt.core;
 
+import net.sourceforge.phpdt.core.IType;
+
 /**
  * Common protocol for Java elements that can be members of types.
  * This set consists of <code>IType</code>, <code>IMethod</code>, 
@@ -18,7 +20,7 @@ package net.sourceforge.phpdt.core;
  * 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).
@@ -45,7 +47,7 @@ ICompilationUnit getCompilationUnit();
  * @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>.
@@ -73,7 +75,21 @@ int getFlags() throws JavaModelException;
  * (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.