X-Git-Url: http://git.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 ee57a1f..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,20 +10,19 @@ *******************************************************************************/ package net.sourceforge.phpdt.core; - - /** * 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. @@ -31,406 +30,480 @@ package net.sourceforge.phpdt.core; */ 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:

- * - * @param contents the given contents - * @param sibling the given sibling - * @param force a flag in case the same name already exists in this type - * @param monitor the given progress monitor - * @exception JavaModelException if the element could not be created. Reasons include: + * 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: *

+ *

+ * + * @param contents + * the given contents + * @param sibling + * the given sibling + * @param force + * a flag in case the same name already exists in this type + * @param monitor + * the given progress monitor + * @exception JavaModelException + * if the element could not be created. Reasons include: + * * @return a field in this type with the given contents */ -// IField createField(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor) -// throws JavaModelException; - + // IField createField(String contents, IJavaElement sibling, boolean force, + // IProgressMonitor monitor) + // throws JavaModelException; /** - * Creates and returns a static initializer in this type with the - * given contents. + * Creates and returns a static initializer in this type with the given + * contents. *

* 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: - * + * 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: + * * @return a static initializer in this type with the given contents */ -// IInitializer createInitializer(String contents, IJavaElement sibling, IProgressMonitor monitor) -// throws JavaModelException; - + // IInitializer createInitializer(String contents, IJavaElement sibling, + // IProgressMonitor monitor) + // throws JavaModelException; /** - * Creates and returns a method or constructor in this type with the - * given contents. + * Creates and returns a method or constructor 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 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:

- * - * @param contents the given contents - * @param sibling the given sibling - * @param force a flag in case the same name already exists in this type - * @param monitor the given progress monitor - * @exception JavaModelException if the element could not be created. Reasons include: + * 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: *

+ *

+ * + * @param contents + * the given contents + * @param sibling + * the given sibling + * @param force + * a flag in case the same name already exists in this type + * @param monitor + * the given progress monitor + * @exception JavaModelException + * if the element could not be created. Reasons include: + * * @return a method or constructor in this type with the given contents */ -// IMethod createMethod(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor) -// throws JavaModelException; - + // IMethod createMethod(String contents, IJavaElement sibling, boolean + // force, IProgressMonitor monitor) + // throws JavaModelException; /** - * Creates and returns a type in this type with the - * given contents. + * Creates and returns a type in this type with the given contents. *

- * 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:

- * - * @param contents the given contents - * @param sibling the given sibling - * @param force a flag in case the same name already exists in this type - * @param monitor the given progress monitor - * @exception JavaModelException if the element could not be created. Reasons include: + * 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: *

+ *

+ * + * @param contents + * the given contents + * @param sibling + * the given sibling + * @param force + * a flag in case the same name already exists in this type + * @param monitor + * the given progress monitor + * @exception JavaModelException + * if the element could not be created. Reasons include: + * * @return a type in this type with the given contents */ -// IType createType(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor) -// throws JavaModelException; - - /** - * Finds the methods in this type that correspond to - * the given method. - * A method m1 corresponds to another method m2 if: + // IType createType(String contents, IJavaElement sibling, boolean force, + // IProgressMonitor monitor) + // throws JavaModelException; + /** + * Finds the methods in this type that correspond to the given method. A + * method m1 corresponds to another method m2 if: * - * @param method the given method - * @return the found method or 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: * * * This is a handle-only method. - * - * @param enclosingTypeSeparator the given enclosing type separator - * @return the fully qualified name of this type, including qualification for any containing types and packages + * + * @param enclosingTypeSeparator + * the given enclosing type separator + * @return the fully qualified name of this type, including qualification + * for any containing types and packages * @see IType#getTypeQualifiedName(char) * @since 2.0 */ String getFullyQualifiedName(char enclosingTypeSeparator); - - /** - * Returns the initializer with the specified position relative to - * the order they are defined in the source. - * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0). - * This is a handle-only method. The initializer may or may not be present. - * - * @param occurrenceCount the specified position - * @return the initializer with the specified position relative to the order they are defined in the source - */ -// IInitializer getInitializer(int occurrenceCount); - - /** - * Returns the initializers declared by this type. - * For binary types this is an empty collection. - * If this is a source type, the results are listed in the order - * in which they appear in the source. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + + /** + * Returns the initializer with the specified position relative to the order + * they are defined in the source. Numbering starts at 1 (thus the first + * occurrence is occurrence 1, not occurrence 0). This is a handle-only + * method. The initializer may or may not be present. + * + * @param occurrenceCount + * the specified position + * @return the initializer with the specified position relative to the order + * they are defined in the source + */ + // IInitializer getInitializer(int occurrenceCount); + /** + * Returns the initializers declared by this type. For binary types this is + * an empty collection. If this is a source type, the results are listed in + * the order in which they appear in the source. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return the initializers declared by this type */ -// IInitializer[] getInitializers() throws JavaModelException; - + // IInitializer[] getInitializers() throws JavaModelException; /** - * 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. + * 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: * - * + * * This is a handle-only method. * - * @param enclosingTypeSeparator the specified enclosing type separator + * @param enclosingTypeSeparator + * the specified enclosing type separator * @return the type-qualified name of this type * @since 2.0 */ String getTypeQualifiedName(char enclosingTypeSeparator); - + /** - * Returns the immediate member types declared by this type. - * The results are listed in the order in which they appear in the source or class file. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * Returns the immediate member types declared by this type. The results are + * listed in the order in which they appear in the source or class file. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return the immediate member types declared by this type */ IType[] getTypes() throws JavaModelException; - + /** * Returns whether this type represents an anonymous type. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return true if this type represents an anonymous type, false otherwise * @since 2.0 */ @@ -438,27 +511,30 @@ public interface IType extends IMember, IParent { /** * Returns whether this type represents a class. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return true if this type represents a class, false otherwise */ boolean isClass() throws JavaModelException; - + /** * Returns whether this type represents an interface. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return true if this type represents an interface, false otherwise */ boolean isInterface() throws JavaModelException; - + /** * Returns whether this type represents a local type. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return true if this type represents a local type, false otherwise * @since 2.0 */ @@ -466,16 +542,17 @@ public interface IType extends IMember, IParent { /** * Returns whether this type represents a member type. - * - * @exception JavaModelException if this element does not exist or if an - * exception occurs while accessing its corresponding resource. + * + * @exception JavaModelException + * if this element does not exist or if an exception occurs + * while accessing its corresponding resource. * @return true if this type represents a member type, false otherwise * @since 2.0 */ boolean isMember() throws JavaModelException; /** - * Loads a previously saved ITypeHierarchy from an input stream. A type hierarchy can - * be stored using ITypeHierachy#store(OutputStream). + * Loads a previously saved ITypeHierarchy from an input stream. A type + * hierarchy can be stored using ITypeHierachy#store(OutputStream). * * Only hierarchies originally created by the following methods can be load: *