org.eclipse.jdt.internal.core
Class ResolvedBinaryMethod

java.lang.Object
  extended by org.eclipse.core.runtime.PlatformObject
      extended by org.eclipse.jdt.internal.core.JavaElement
          extended by org.eclipse.jdt.internal.core.SourceRefElement
              extended by org.eclipse.jdt.internal.core.Member
                  extended by org.eclipse.jdt.internal.core.NamedMember
                      extended by org.eclipse.jdt.internal.core.BinaryMember
                          extended by org.eclipse.jdt.internal.core.ResolvedBinaryMethod
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable, IAnnotatable, IJavaElement, IMember, IMethod, IParent, ISourceManipulation, ISourceReference

public class ResolvedBinaryMethod
extends BinaryMember

Handle representing a binary method that is resolved. The uniqueKey contains the genericSignature of the resolved method. Use BindingKey to decode it.


Field Summary
 
Fields inherited from class org.eclipse.jdt.internal.core.SourceRefElement
occurrenceCount
 
Fields inherited from class org.eclipse.jdt.internal.core.JavaElement
JEM_ANNOTATION, JEM_CLASSFILE, JEM_COMPILATIONUNIT, JEM_COUNT, JEM_ESCAPE, JEM_FIELD, JEM_IMPORTDECLARATION, JEM_INITIALIZER, JEM_JAVAPROJECT, JEM_LOCALVARIABLE, JEM_METHOD, JEM_PACKAGEDECLARATION, JEM_PACKAGEFRAGMENT, JEM_PACKAGEFRAGMENTROOT, JEM_TYPE, JEM_TYPE_PARAMETER
 
Fields inherited from interface org.eclipse.jdt.core.IJavaElement
ANNOTATION, CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_PROJECT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE, TYPE_PARAMETER
 
Constructor Summary
ResolvedBinaryMethod(JavaElement parent, java.lang.String name, java.lang.String[] parameterTypes, java.lang.String uniqueKey)
           
 
Method Summary
 boolean equals(java.lang.Object o)
          Returns true if this handle represents the same Java element as the given handle.
 IAnnotation[] getAnnotations()
          Returns the annotations for this element.
 java.lang.String getAttachedJavadoc(org.eclipse.core.runtime.IProgressMonitor monitor)
          Returns the Javadoc as an html source if this element has an attached javadoc, null otherwise.
 IMemberValuePair getDefaultValue()
          Returns a member value pair representing the default value of this method if any, or null if this method's parent is not an annotation type, or else if this method does not have a default value.
 int getElementType()
          Returns this element's kind encoded as an integer.
 java.lang.String[] getExceptionTypes()
          Returns the type signatures of the exceptions this method throws, in the order declared in the source.
 int getFlags()
          Returns the modifier flags for this member.
 java.lang.String getKey()
          Returns the binding key for this method.
 java.lang.String getKey(boolean forceOpen)
           
 int getNumberOfParameters()
          Returns the number of parameters of this method.
 java.lang.String[] getParameterNames()
          Returns the names of parameters in this method.
 java.lang.String[] getParameterTypes()
          Returns the type signatures for the parameters of this method.
 java.lang.String[] getRawParameterNames()
          Returns the names of parameters in this method.
 java.lang.String getReturnType()
          Returns the type signature of the return value of this method.
 java.lang.String getSignature()
          Returns the signature of this method.
 ITypeParameter getTypeParameter(java.lang.String typeParameterName)
          Returns the type parameter declared in this method with the given name.
 ITypeParameter[] getTypeParameters()
          Returns the formal type parameters for this method.
 java.lang.String[] getTypeParameterSignatures()
          Deprecated.  
 int hashCode()
          Returns the hash code for this Java element.
 boolean isConstructor()
          Returns whether this method is a constructor.
 boolean isMainMethod()
          Returns whether this method is a main method.
 boolean isResolved()
          Returns whether this method represents a resolved method.
 boolean isSimilar(IMethod method)
          Returns whether this method is similar to the given method.
 java.lang.String readableName()
           
 JavaElement resolved(Binding binding)
           
 JavaElement unresolved()
           
 
Methods inherited from class org.eclipse.jdt.internal.core.BinaryMember
copy, getCategories, getNameRange, getSourceRange, isBinary, isStructureKnown, move, rename, setContents
 
Methods inherited from class org.eclipse.jdt.internal.core.NamedMember
getElementName, getFullyQualifiedName, getTypeQualifiedName, resolveType, resolveType
 
Methods inherited from class org.eclipse.jdt.internal.core.Member
findMethods, getClassFile, getDeclaringType, getHandleFromMemento, getJavadocRange, getOuterMostLocalContext, getType, getTypeRoot, isReadOnly
 
Methods inherited from class org.eclipse.jdt.internal.core.SourceRefElement
delete, findNode, getAnnotation, getCompilationUnit, getCorrespondingResource, getHandleUpdatingCountFromMemento, getOccurrenceCount, getOpenableParent, getPath, getSource, getUnderlyingResource, hasChildren, resource
 
Methods inherited from class org.eclipse.jdt.internal.core.JavaElement
close, exists, getAncestor, getChildren, getChildrenOfType, getElementInfo, getElementInfo, getHandleFromMemento, getHandleIdentifier, getHandleMemento, getJavaModel, getJavaProject, getOpenable, getParent, getPrimaryElement, getPrimaryElement, getResource, getSchedulingRule, getSourceMapper, isAncestorOf, newJavaModelException, newNotPresentException, toDebugString, toString, toStringInfo, toStringWithAncestors, toStringWithAncestors
 
Methods inherited from class org.eclipse.core.runtime.PlatformObject
getAdapter
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.jdt.core.IMethod
getElementName
 
Methods inherited from interface org.eclipse.jdt.core.IMember
getCategories, getClassFile, getCompilationUnit, getDeclaringType, getJavadocRange, getNameRange, getOccurrenceCount, getType, getTypeRoot, isBinary
 
Methods inherited from interface org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getCorrespondingResource, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.jdt.core.ISourceReference
exists, getSource, getSourceRange
 
Methods inherited from interface org.eclipse.jdt.core.ISourceManipulation
copy, delete, move, rename
 
Methods inherited from interface org.eclipse.jdt.core.IParent
getChildren, hasChildren
 
Methods inherited from interface org.eclipse.jdt.core.IAnnotatable
getAnnotation
 

Constructor Detail

ResolvedBinaryMethod

public ResolvedBinaryMethod(JavaElement parent,
                            java.lang.String name,
                            java.lang.String[] parameterTypes,
                            java.lang.String uniqueKey)
Method Detail

getKey

public java.lang.String getKey()
Description copied from interface: IMethod
Returns the binding key for this method. A binding key is a key that uniquely identifies this method. It allows access to generic info for parameterized methods.

Specified by:
getKey in interface IMethod
Overrides:
getKey in class BinaryMember
Returns:
the binding key for this method
See Also:
IBinding.getKey(), BindingKey

isResolved

public boolean isResolved()
Description copied from interface: IMethod
Returns whether this method represents a resolved method. If a method is resolved, its key contains resolved information.

Specified by:
isResolved in interface IMethod
Returns:
whether this method represents a resolved method.

unresolved

public JavaElement unresolved()
Overrides:
unresolved in class JavaElement

equals

public boolean equals(java.lang.Object o)
Description copied from class: JavaElement
Returns true if this handle represents the same Java element as the given handle. By default, two handles represent the same element if they are identical or if they represent the same type of element, have equal names, parents, and occurrence counts.

If a subclass has other requirements for equality, this method must be overridden.

Overrides:
equals in class SourceRefElement
See Also:
Object.equals(java.lang.Object)

getAnnotations

public IAnnotation[] getAnnotations()
                             throws JavaModelException
Description copied from interface: IAnnotatable
Returns the annotations for this element. Returns an empty array if this method has no annotations.

Specified by:
getAnnotations in interface IAnnotatable
Overrides:
getAnnotations in class SourceRefElement
Returns:
the annotations of this element, in the order declared in the source, or an empty array if none
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getDefaultValue

public IMemberValuePair getDefaultValue()
                                 throws JavaModelException
Description copied from interface: IMethod
Returns a member value pair representing the default value of this method if any, or null if this method's parent is not an annotation type, or else if this method does not have a default value.

Note that IMemberValuePair.getValue() might return null. Please see this method for more details.

Specified by:
getDefaultValue in interface IMethod
Returns:
a member pair value if any, or null if none
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getExceptionTypes

public java.lang.String[] getExceptionTypes()
                                     throws JavaModelException
Description copied from interface: IMethod
Returns the type signatures of the exceptions this method throws, in the order declared in the source. Returns an empty array if this method throws no exceptions.

For example, a source method declaring "throws IOException", would return the array {"QIOException;"}.

The type signatures may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See Signature for details.

Specified by:
getExceptionTypes in interface IMethod
Returns:
the type signatures of the exceptions this method throws, in the order declared in the source, an empty array if this method throws no exceptions
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
Signature

getElementType

public int getElementType()
Description copied from interface: IJavaElement
Returns this element's kind encoded as an integer. This is a handle-only method.

Specified by:
getElementType in interface IJavaElement
Returns:
the kind of element; one of the constants declared in IJavaElement
See Also:
IJavaElement

getFlags

public int getFlags()
             throws JavaModelException
Description copied from interface: IMember
Returns the modifier flags for this member. The flags can be examined using class Flags.

Note that only flags as indicated in the source are returned. Thus if an interface defines a method void myMethod(); the flags don't include the 'public' flag.

Specified by:
getFlags in interface IMember
Overrides:
getFlags in class Member
Returns:
the modifier flags for this member
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
IMember

getKey

public java.lang.String getKey(boolean forceOpen)
                        throws JavaModelException
Specified by:
getKey in class BinaryMember
Throws:
JavaModelException
See Also:
Binding.computeUniqueKey()

getNumberOfParameters

public int getNumberOfParameters()
Description copied from interface: IMethod
Returns the number of parameters of this method. This is a handle-only method.

Specified by:
getNumberOfParameters in interface IMethod
Returns:
the number of parameters of this method

getParameterNames

public java.lang.String[] getParameterNames()
                                     throws JavaModelException
Description copied from interface: IMethod
Returns the names of parameters in this method. For binary types, associated source or attached Javadoc are used to retrieve the names. If none can be retrieved, then these names are invented as "arg"+i, where i starts at 0. Returns an empty array if this method has no parameters.

For example, a method declared as public void foo(String text, int length) would return the array {"text","length"}.

Specified by:
getParameterNames in interface IMethod
Returns:
the names of parameters in this method, an empty array if this method has no parameters
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getParameterTypes

public java.lang.String[] getParameterTypes()
Description copied from interface: IMethod
Returns the type signatures for the parameters of this method. Returns an empty array if this method has no parameters. This is a handle-only method.

For example, a source method declared as public void foo(String text, int length) would return the array {"QString;","I"}.

The type signatures may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See Signature for details.

Specified by:
getParameterTypes in interface IMethod
Returns:
the type signatures for the parameters of this method, an empty array if this method has no parameters
See Also:
Signature

getTypeParameter

public ITypeParameter getTypeParameter(java.lang.String typeParameterName)
Description copied from interface: IMethod
Returns the type parameter declared in this method with the given name. This is a handle-only method. The type parameter may or may not exist.

Specified by:
getTypeParameter in interface IMethod
Parameters:
typeParameterName - the given simple name
Returns:
the type parameter declared in this method with the given name

getTypeParameters

public ITypeParameter[] getTypeParameters()
                                   throws JavaModelException
Description copied from interface: IMethod
Returns the formal type parameters for this method. Returns an empty array if this method has no formal type parameters.

Specified by:
getTypeParameters in interface IMethod
Returns:
the formal type parameters of this method, in the order declared in the source, an empty array if none
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getTypeParameterSignatures

public java.lang.String[] getTypeParameterSignatures()
                                              throws JavaModelException
Deprecated. 

Description copied from interface: IMethod
Returns the formal type parameter signatures for this method. Returns an empty array if this method has no formal type parameters.

The formal type parameter signatures may be either unresolved (for source types) or resolved (for binary types). See Signature for details.

Specified by:
getTypeParameterSignatures in interface IMethod
Returns:
the formal type parameter signatures of this method, in the order declared in the source, an empty array if none
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
3.0
See Also:
IMethod.getTypeParameterSignatures()

getRawParameterNames

public java.lang.String[] getRawParameterNames()
                                        throws JavaModelException
Description copied from interface: IMethod
Returns the names of parameters in this method. For binary types, these names are invented as "arg"+i, where i starts at 0 (even if source is associated with the binary or if Javdoc is attached to the binary). Returns an empty array if this method has no parameters.

For example, a method declared as public void foo(String text, int length) would return the array {"text","length"}. For the same method in a binary, this would return {"arg0", "arg1"}.

Specified by:
getRawParameterNames in interface IMethod
Returns:
the names of parameters in this method, an empty array if this method has no parameters
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getReturnType

public java.lang.String getReturnType()
                               throws JavaModelException
Description copied from interface: IMethod
Returns the type signature of the return value of this method. For constructors, this returns the signature for void.

For example, a source method declared as public String getName() would return "QString;".

The type signature may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See Signature for details.

Specified by:
getReturnType in interface IMethod
Returns:
the type signature of the return value of this method, void for constructors
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
Signature

getSignature

public java.lang.String getSignature()
                              throws JavaModelException
Description copied from interface: IMethod
Returns the signature of this method. This includes the signatures for the parameter types and return type, but does not include the method name, exception types, or type parameters.

For example, a source method declared as public void foo(String text, int length) would return "(QString;I)V".

The type signatures embedded in the method signature may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See Signature for details.

Specified by:
getSignature in interface IMethod
Returns:
the signature of this method
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
Signature

hashCode

public int hashCode()
Description copied from class: JavaElement
Returns the hash code for this Java element. By default, the hash code for an element is a combination of its name and parent's hash code. Elements with other requirements must override this method.

Overrides:
hashCode in class JavaElement
See Also:
JavaElement.hashCode()

isConstructor

public boolean isConstructor()
                      throws JavaModelException
Description copied from interface: IMethod
Returns whether this method is a constructor.

Specified by:
isConstructor in interface IMethod
Returns:
true if this method is a constructor, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

isMainMethod

public boolean isMainMethod()
                     throws JavaModelException
Description copied from interface: IMethod
Returns whether this method is a main method. It is a main method if:

Specified by:
isMainMethod in interface IMethod
Returns:
true if this method is a main method, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

isSimilar

public boolean isSimilar(IMethod method)
Description copied from interface: IMethod
Returns whether this method is similar to the given method. Two methods are similar if: This is a handle-only method.

Specified by:
isSimilar in interface IMethod
Parameters:
method - the given method
Returns:
true if this method is similar to the given method.
See Also:
Signature.getSimpleName(char[])

readableName

public java.lang.String readableName()
Overrides:
readableName in class Member

resolved

public JavaElement resolved(Binding binding)
Overrides:
resolved in class JavaElement

getAttachedJavadoc

public java.lang.String getAttachedJavadoc(org.eclipse.core.runtime.IProgressMonitor monitor)
                                    throws JavaModelException
Description copied from interface: IJavaElement

Returns the Javadoc as an html source if this element has an attached javadoc, null otherwise.

This should be used only for binary elements. Source elements will always return null.

The encoding used to read the javadoc is the one defined by the content type of the file. If none is defined, then the project's encoding of this java element is used. If the project's encoding cannot be retrieved, then the platform encoding is used.

In case of the javadoc doesn't exist for this element, null is returned.

The html is extracted from the attached javadoc and provided as is. No transformation or validation is done.

Specified by:
getAttachedJavadoc in interface IJavaElement
Overrides:
getAttachedJavadoc in class JavaElement
Parameters:
monitor - the given progress monitor
Returns:
the extracted javadoc from the attached javadoc, null if none
Throws:
JavaModelException - if:
  • this element does not exist
  • retrieving the attached javadoc fails (timed-out, invalid URL, ...)
  • the format of the javadoc doesn't match expected standards (different anchors,...)
See Also:
IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME