X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IType.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IType.java index 264c13c..ddb4160 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IType.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IType.java @@ -10,24 +10,19 @@ *******************************************************************************/ package net.sourceforge.phpdt.core; -import org.eclipse.core.runtime.IProgressMonitor; -import net.sourceforge.phpdt.core.ITypeHierarchy; -import net.sourceforge.phpdt.core.JavaModelException; -import net.sourceforge.phpdt.core.WorkingCopyOwner; - - /** * Represents either a source type in a compilation unit (either a top-level * type or a member type) or a binary type in a class file. *
- * If a binary type cannot be parsed, its structure remains unknown.
- * Use IJavaElement.isStructureKnown
to determine whether this
- * is the case.
+ * If a binary type cannot be parsed, its structure remains unknown. Use
+ * IJavaElement.isStructureKnown
to determine whether this is the
+ * case.
*
- * The children are of type IMember
, which includes IField
,
- * IMethod
, IInitializer
and IType
.
- * The children are listed in the order in which they appear in the source or class file.
+ * The children are of type IMember
, which includes
+ * IField
, IMethod
, IInitializer
+ * and IType
. The children are listed in the order in which they
+ * appear in the source or class file.
*
* This interface is not intended to be implemented by clients. @@ -35,406 +30,480 @@ import net.sourceforge.phpdt.core.WorkingCopyOwner; */ public interface IType extends IMember, IParent { /** - * Do code completion inside a code snippet in the context of the current type. - * - * If the type can access to his source code and the insertion position is valid, - * then completion is performed against source. Otherwise the completion is performed - * against type structure and given locals variables. - * - * @param snippet the code snippet - * @param insertion the position with in source where the snippet - * is inserted. This position must not be in comments. - * A possible value is -1, if the position is not known. - * @param position the position with in snippet where the user - * is performing code assist. - * @param localVariableTypesNames an array (possibly empty) of fully qualified - * type names of local variables visible at the current scope - * @param localVariableNames an array (possibly empty) of local variable names - * that are visible at the current scope - * @param localVariableModifiers an array (possible empty) of modifiers for - * local variables - * @param isStatic whether the current scope is in a static context - * @param requestor the completion requestor + * Do code completion inside a code snippet in the context of the current + * type. + * + * If the type can access to his source code and the insertion position is + * valid, then completion is performed against source. Otherwise the + * completion is performed against type structure and given locals + * variables. + * + * @param snippet + * the code snippet + * @param insertion + * the position with in source where the snippet is inserted. + * This position must not be in comments. A possible value is -1, + * if the position is not known. + * @param position + * the position with in snippet where the user is performing code + * assist. + * @param localVariableTypesNames + * an array (possibly empty) of fully qualified type names of + * local variables visible at the current scope + * @param localVariableNames + * an array (possibly empty) of local variable names that are + * visible at the current scope + * @param localVariableModifiers + * an array (possible empty) of modifiers for local variables + * @param isStatic + * whether the current scope is in a static context + * @param requestor + * the completion requestor * @since 2.0 */ -// void codeComplete( -// char[] snippet, -// int insertion, -// int position, -// char[][] localVariableTypeNames, -// char[][] localVariableNames, -// int[] localVariableModifiers, -// boolean isStatic, -// ICompletionRequestor requestor) -// throws JavaModelException; - - /** - * Creates and returns a field in this type with the - * given contents. + // void codeComplete( + // char[] snippet, + // int insertion, + // int position, + // char[][] localVariableTypeNames, + // char[][] localVariableNames, + // int[] localVariableModifiers, + // boolean isStatic, + // ICompletionRequestor requestor) + // throws JavaModelException; + /** + * Creates and returns a field in this type with the given contents. *
* Optionally, the new element can be positioned before the specified - * sibling. If no sibling is specified, the element will be inserted - * as the last field declaration in this type.
- * - *It is possible that a field with the same name already exists in this type.
- * The value of the force
parameter effects the resolution of
- * such a conflict:
true
- in this case the field is created with the new contentsfalse
- in this case a JavaModelException
is thrown
+ * It is possible that a field with the same name already exists in this
+ * type. The value of the force
parameter effects the
+ * resolution of such a conflict:
*
CoreException
occurred while updating an underlying resource
- * true
- in this case the field is created with the new
+ * contentsfalse
- in this case a
+ * JavaModelException
is thrownCoreException
occurred while
+ * updating an underlying resource
+ * * Optionally, the new element can be positioned before the specified * sibling. If no sibling is specified, the new initializer is positioned * after the last existing initializer declaration, or as the first member - * in the type if there are no initializers.
- * - * @param contents the given contents - * @param sibling the given sibling - * @param monitor the given progress monitor - * @exception JavaModelException if the element could not be created. Reasons include: - *CoreException
occurred while updating an underlying resource
- * CoreException
occurred while
+ * updating an underlying resource
+ * * Optionally, the new element can be positioned before the specified - * sibling. If no sibling is specified, the element will be appended - * to this type. - * - *
It is possible that a method with the same signature already exists in this type.
- * The value of the force
parameter effects the resolution of
- * such a conflict:
true
- in this case the method is created with the new contentsfalse
- in this case a JavaModelException
is thrown
+ * It is possible that a method with the same signature already exists in
+ * this type. The value of the force
parameter effects the
+ * resolution of such a conflict:
*
CoreException
occurred while updating an underlying resource
- * true
- in this case the method is created with the
+ * new contentsfalse
- in this case a
+ * JavaModelException
is thrownCoreException
occurred while
+ * updating an underlying resource
+ * - * Optionally, the new type can be positioned before the specified - * sibling. If no sibling is specified, the type will be appended - * to this type. - * - *
It is possible that a type with the same name already exists in this type.
- * The value of the force
parameter effects the resolution of
- * such a conflict:
true
- in this case the type is created with the new contentsfalse
- in this case a JavaModelException
is thrown
+ * It is possible that a type with the same name already exists in this
+ * type. The value of the force
parameter effects the
+ * resolution of such a conflict:
*
CoreException
occurred while updating an underlying resource
- * true
- in this case the type is created with the new
+ * contentsfalse
- in this case a
+ * JavaModelException
is thrownCoreException
occurred while
+ * updating an underlying resource
+ * null
if no such methods can be found.
*
- * @since 2.0
+ * @param method
+ * the given method
+ * @return the found method or null
if no such methods can be
+ * found.
+ *
+ * @since 2.0
*/
IMethod[] findMethods(IMethod method);
-
+
/**
- * Returns the simple name of this type, unqualified by package or enclosing type.
- * This is a handle-only method.
+ * Returns the simple name of this type, unqualified by package or enclosing
+ * type. This is a handle-only method.
*
* @return the simple name of this type
*/
String getElementName();
-
+
/**
- * Returns the field with the specified name
- * in this type (for example, "bar"
).
- * This is a handle-only method. The field may or may not exist.
+ * Returns the field with the specified name in this type (for example,
+ * "bar"
). This is a handle-only method. The field may or
+ * may not exist.
*
- * @param name the given name
+ * @param name
+ * the given name
* @return the field with the specified name in this type
*/
IField getField(String name);
-
- /**
- * Returns the fields declared by this type.
- * If this is a source type, the results are listed in the order
- * in which they appear in the source, otherwise, the results are
- * in no particular order. For binary types, this includes synthetic fields.
- *
- * @exception JavaModelException if this element does not exist or if an
- * exception occurs while accessing its corresponding resource.
+
+ /**
+ * Returns the fields declared by this type. If this is a source type, the
+ * results are listed in the order in which they appear in the source,
+ * otherwise, the results are in no particular order. For binary types, this
+ * includes synthetic fields.
+ *
+ * @exception JavaModelException
+ * if this element does not exist or if an exception occurs
+ * while accessing its corresponding resource.
* @return the fields declared by this type
*/
IField[] getFields() throws JavaModelException;
-
+
/**
- * Returns the fully qualified name of this type,
- * including qualification for any containing types and packages.
- * This is the name of the package, followed by '.'
,
- * followed by the type-qualified name.
+ * Returns the fully qualified name of this type, including qualification
+ * for any containing types and packages. This is the name of the package,
+ * followed by '.'
, followed by the type-qualified name.
* This is a handle-only method.
- *
+ *
* @see IType#getTypeQualifiedName()
* @return the fully qualified name of this type
*/
String getFullyQualifiedName();
-
+
/**
- * Returns the fully qualified name of this type,
- * including qualification for any containing types and packages.
- * This is the name of the package, followed by '.'
,
- * followed by the type-qualified name using the enclosingTypeSeparator
.
+ * Returns the fully qualified name of this type, including qualification
+ * for any containing types and packages. This is the name of the package,
+ * followed by '.'
, followed by the type-qualified name
+ * using the enclosingTypeSeparator
.
*
* For example:
* "foo", {"I", "QString;"}
). To get the
- * handle for a constructor, the name specified must be the simple
- * name of the enclosing type.
- * This is a handle-only method. The method may or may not be present.
+ * Returns the method with the specified name and parameter types in this
+ * type (for example, "foo", {"I", "QString;"}
). To get the
+ * handle for a constructor, the name specified must be the simple name of
+ * the enclosing type. This is a handle-only method. The method may or may
+ * not be present.
*
- * @param name the given name
- * @param parameterTypeSignatures the given parameter types
- * @return the method with the specified name and parameter types in this type
+ * @param name
+ * the given name
+ * @param parameterTypeSignatures
+ * the given parameter types
+ * @return the method with the specified name and parameter types in this
+ * type
*/
IMethod getMethod(String name, String[] parameterTypeSignatures);
-
- /**
- * Returns the methods and constructors declared by this type.
- * For binary types, this may include the special <clinit>
; method
- * and synthetic methods.
- * If this is a source type, the results are listed in the order
- * in which they appear in the source, otherwise, the results are
- * in no particular order.
- *
- * @exception JavaModelException if this element does not exist or if an
- * exception occurs while accessing its corresponding resource.
+
+ /**
+ * Returns the methods and constructors declared by this type. For binary
+ * types, this may include the special <clinit>
; method
+ * and synthetic methods. If this is a source type, the results are listed
+ * in the order in which they appear in the source, otherwise, the results
+ * are in no particular order.
+ *
+ * @exception JavaModelException
+ * if this element does not exist or if an exception occurs
+ * while accessing its corresponding resource.
* @return the methods and constructors declared by this type
*/
IMethod[] getMethods() throws JavaModelException;
-
+
/**
- * Returns the package fragment in which this element is defined.
- * This is a handle-only method.
+ * Returns the package fragment in which this element is defined. This is a
+ * handle-only method.
*
* @return the package fragment in which this element is defined
*/
IPackageFragment getPackageFragment();
-
- /**
- * Returns the name of this type's superclass, or null
- * for source types that do not specify a superclass.
- * For interfaces, the superclass name is always "java.lang.Object"
.
- * For source types, the name as declared is returned, for binary types,
- * the resolved, qualified name is returned.
- *
- * @exception JavaModelException if this element does not exist or if an
- * exception occurs while accessing its corresponding resource.
- * @return the name of this type's superclass, or null
for source types that do not specify a superclass
+
+ /**
+ * Returns the name of this type's superclass, or null
for
+ * source types that do not specify a superclass. For interfaces, the
+ * superclass name is always "java.lang.Object"
. For source
+ * types, the name as declared is returned, for binary types, the resolved,
+ * qualified name is returned.
+ *
+ * @exception JavaModelException
+ * if this element does not exist or if an exception occurs
+ * while accessing its corresponding resource.
+ * @return the name of this type's superclass, or null
for
+ * source types that do not specify a superclass
*/
String getSuperclassName() throws JavaModelException;
-
- /**
- * Returns the names of interfaces that this type implements or extends,
- * in the order in which they are listed in the source.
- * For classes, this gives the interfaces that this class implements.
- * For interfaces, this gives the interfaces that this interface extends.
- * An empty collection is returned if this type does not implement or
- * extend any interfaces. For source types, simple names are returned,
- * for binary types, qualified names are returned.
- *
- * @exception JavaModelException if this element does not exist or if an
- * exception occurs while accessing its corresponding resource.
- * @return the names of interfaces that this type implements or extends, in the order in which they are listed in the source,
- * an empty collection if none
+
+ /**
+ * Returns the names of interfaces that this type implements or extends, in
+ * the order in which they are listed in the source. For classes, this gives
+ * the interfaces that this class implements. For interfaces, this gives the
+ * interfaces that this interface extends. An empty collection is returned
+ * if this type does not implement or extend any interfaces. For source
+ * types, simple names are returned, for binary types, qualified names are
+ * returned.
+ *
+ * @exception JavaModelException
+ * if this element does not exist or if an exception occurs
+ * while accessing its corresponding resource.
+ * @return the names of interfaces that this type implements or extends, in
+ * the order in which they are listed in the source, an empty
+ * collection if none
*/
String[] getSuperInterfaceNames() throws JavaModelException;
-
+
/**
* Returns the member type declared in this type with the given simple name.
* This is a handle-only method. The type may or may not exist.
*
- * @param the given simple name
+ * @param the
+ * given simple name
* @return the member type declared in this type with the given simple name
*/
IType getType(String name);
-
- /**
- * Returns the type-qualified name of this type,
- * including qualification for any enclosing types,
- * but not including package qualification.
- * For source types, this consists of the simple names of
- * any enclosing types, separated by "$"
, followed by the simple name of this type.
- * For binary types, this is the name of the class file without the ".class" suffix.
- * This is a handle-only method.
+
+ /**
+ * Returns the type-qualified name of this type, including qualification for
+ * any enclosing types, but not including package qualification. For source
+ * types, this consists of the simple names of any enclosing types,
+ * separated by "$"
, followed by the simple name of this
+ * type. For binary types, this is the name of the class file without the
+ * ".class" suffix. This is a handle-only method.
*
* @return the type-qualified name of this type
*/
String getTypeQualifiedName();
-
+
/**
- * Returns the type-qualified name of this type,
- * including qualification for any enclosing types,
- * but not including package qualification.
- * This consists of the simple names of any enclosing types,
- * separated by the enclosingTypeSeparator
,
- * followed by the simple name of this type.
+ * Returns the type-qualified name of this type, including qualification for
+ * any enclosing types, but not including package qualification. This
+ * consists of the simple names of any enclosing types, separated by the
+ * enclosingTypeSeparator
, followed by the simple name of
+ * this type.
*
* For example:
* - * Note that passing an empty working copy will be as if the original compilation - * unit had been deleted. - * - * @param workingCopies the working copies that take precedence over their original compilation units - * @param monitor the given progress monitor - * @return a type hierarchy for this type containing this type and all of its supertypes - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * Note that passing an empty working copy will be as if the original + * compilation unit had been deleted. + * + * @param workingCopies + * the working copies that take precedence over their original + * compilation units + * @param monitor + * the given progress monitor + * @return a type hierarchy for this type containing this type and all of + * its supertypes + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @since 2.0 */ -// ITypeHierarchy newSupertypeHierarchy(IWorkingCopy[] workingCopies, IProgressMonitor monitor) -// throws JavaModelException; - - /** - * Creates and returns a type hierarchy for this type containing - * this type, all of its supertypes, and all its subtypes in the workspace. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. - * @param monitor the given progress monitor - * @return a type hierarchy for this type containing - * this type, all of its supertypes, and all its subtypes in the workspace - */ -// ITypeHierarchy newTypeHierarchy(IProgressMonitor monitor) throws JavaModelException; - - /** - * Creates and returns a type hierarchy for this type containing - * this type, all of its supertypes, and all its subtypes in the workspace, - * considering types in the given working copies. In other words, the list of working - * copies that will take precedence over their original compilation units in the workspace. + // ITypeHierarchy newSupertypeHierarchy(IWorkingCopy[] workingCopies, + // IProgressMonitor monitor) + // throws JavaModelException; + /** + * Creates and returns a type hierarchy for this type containing this type, + * all of its supertypes, and all its subtypes in the workspace. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. + * @param monitor + * the given progress monitor + * @return a type hierarchy for this type containing this type, all of its + * supertypes, and all its subtypes in the workspace + */ + // ITypeHierarchy newTypeHierarchy(IProgressMonitor monitor) throws + // JavaModelException; + /** + * Creates and returns a type hierarchy for this type containing this type, + * all of its supertypes, and all its subtypes in the workspace, considering + * types in the given working copies. In other words, the list of working + * copies that will take precedence over their original compilation units in + * the workspace. *
- * Note that passing an empty working copy will be as if the original compilation - * unit had been deleted. - * - * @param workingCopies the working copies that take precedence over their original compilation units - * @param monitor the given progress monitor - * @return a type hierarchy for this type containing - * this type, all of its supertypes, and all its subtypes in the workspace - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * Note that passing an empty working copy will be as if the original + * compilation unit had been deleted. + * + * @param workingCopies + * the working copies that take precedence over their original + * compilation units + * @param monitor + * the given progress monitor + * @return a type hierarchy for this type containing this type, all of its + * supertypes, and all its subtypes in the workspace + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @since 2.0 */ -// ITypeHierarchy newTypeHierarchy(IWorkingCopy[] workingCopies, IProgressMonitor monitor) throws JavaModelException; + // ITypeHierarchy newTypeHierarchy(IWorkingCopy[] workingCopies, + // IProgressMonitor monitor) throws JavaModelException; /** - * Creates and returns a type hierarchy for this type containing - * this type, all of its supertypes, and all its subtypes in the workspace, - * considering types in the working copies with the given owner. - * In other words, the owner's working copies will take - * precedence over their original compilation units in the workspace. + * Creates and returns a type hierarchy for this type containing this type, + * all of its supertypes, and all its subtypes in the workspace, considering + * types in the working copies with the given owner. In other words, the + * owner's working copies will take precedence over their original + * compilation units in the workspace. *
- * Note that if a working copy is empty, it will be as if the original compilation - * unit had been deleted. + * Note that if a working copy is empty, it will be as if the original + * compilation unit had been deleted. *
- *
- * @param owner the owner of working copies that take precedence over their original compilation units
- * @param monitor the given progress monitor
- * @return a type hierarchy for this type containing
- * this type, all of its supertypes, and all its subtypes in the workspace
- * @exception JavaModelException if this element does not exist or if an
- * exception occurs while accessing its corresponding resource.
+ *
+ * @param owner
+ * the owner of working copies that take precedence over their
+ * original compilation units
+ * @param monitor
+ * the given progress monitor
+ * @return a type hierarchy for this type containing this type, all of its
+ * supertypes, and all its subtypes in the workspace
+ * @exception JavaModelException
+ * if this element does not exist or if an exception occurs
+ * while accessing its corresponding resource.
* @since 3.0
*/
-// ITypeHierarchy newTypeHierarchy(WorkingCopyOwner owner, IProgressMonitor monitor) throws JavaModelException;
-
- /**
- * Creates and returns a type hierarchy for this type containing
- * this type, all of its supertypes, and all its subtypes
- * in the context of the given project.
- *
- * @param project the given project
- * @param monitor the given progress monitor
- * @exception JavaModelException if this element does not exist or if an
- * exception occurs while accessing its corresponding resource.
- * @return a type hierarchy for this type containing
- * this type, all of its supertypes, and all its subtypes
- * in the context of the given project
- */
-// ITypeHierarchy newTypeHierarchy(IJavaProject project, IProgressMonitor monitor) throws JavaModelException;
-
- /**
- * Resolves the given type name within the context of this type (depending on the type hierarchy
- * and its imports). Multiple answers might be found in case there are ambiguous matches.
- *
- * Each matching type name is decomposed as an array of two strings, the first denoting the package
- * name (dot-separated) and the second being the type name.
- * Returns null
if unable to find any matching type.
- *
+ // ITypeHierarchy newTypeHierarchy(WorkingCopyOwner owner, IProgressMonitor
+ // monitor) throws JavaModelException;
+ /**
+ * Creates and returns a type hierarchy for this type containing this type,
+ * all of its supertypes, and all its subtypes in the context of the given
+ * project.
+ *
+ * @param project
+ * the given project
+ * @param monitor
+ * the given progress monitor
+ * @exception JavaModelException
+ * if this element does not exist or if an exception occurs
+ * while accessing its corresponding resource.
+ * @return a type hierarchy for this type containing this type, all of its
+ * supertypes, and all its subtypes in the context of the given
+ * project
+ */
+ // ITypeHierarchy newTypeHierarchy(IJavaProject project, IProgressMonitor
+ // monitor) throws JavaModelException;
+ /**
+ * Resolves the given type name within the context of this type (depending
+ * on the type hierarchy and its imports). Multiple answers might be found
+ * in case there are ambiguous matches.
+ *
+ * Each matching type name is decomposed as an array of two strings, the
+ * first denoting the package name (dot-separated) and the second being the
+ * type name. Returns null
if unable to find any matching
+ * type.
+ *
* For example, resolution of "Object"
would typically return
* {{"java.lang", "Object"}}
.
*
- * @param typeName the given type name
- * @exception JavaModelException if code resolve could not be performed.
- * @return the resolved type names or null
if unable to find any matching type
- */
-// String[][] resolveType(String typeName) throws JavaModelException;
+ * @param typeName
+ * the given type name
+ * @exception JavaModelException
+ * if code resolve could not be performed.
+ * @return the resolved type names or null
if unable to find
+ * any matching type
+ */
+ // String[][] resolveType(String typeName) throws JavaModelException;
}