Class SourceMethod
- All Implemented Interfaces:
IAnnotatable
,IJavaElement
,IMember
,IMethod
,IParent
,ISourceManipulation
,ISourceReference
,org.eclipse.core.runtime.IAdaptable
- Direct Known Subclasses:
LambdaMethod
,ResolvedSourceMethod
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected String[]
The parameter type signatures of the method - stored locally to perform equality test.Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.NamedMember
name
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaElement
JEM_ANNOTATION, JEM_CLASSFILE, JEM_COMPILATIONUNIT, JEM_COUNT, JEM_DELIMITER_ESCAPE, JEM_ESCAPE, JEM_FIELD, JEM_IMPORTDECLARATION, JEM_INITIALIZER, JEM_JAVAPROJECT, JEM_LAMBDA_EXPRESSION, JEM_LAMBDA_METHOD, JEM_LOCALVARIABLE, JEM_METHOD, JEM_MODULAR_CLASSFILE, JEM_MODULE, JEM_PACKAGEDECLARATION, JEM_PACKAGEFRAGMENT, JEM_PACKAGEFRAGMENTROOT, JEM_STRING, JEM_TYPE, JEM_TYPE_PARAMETER, NO_ELEMENTS, NO_INFO, NO_STRINGS
Fields inherited from interface org.aspectj.org.eclipse.jdt.core.IJavaElement
ANNOTATION, CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_MODULE, JAVA_PROJECT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE, TYPE_PARAMETER
-
Constructor Summary
ModifierConstructorDescriptionprotected
SourceMethod
(JavaElement parent, String name, String[] parameterTypes) protected
SourceMethod
(JavaElement parent, String name, String[] parameterTypes, int occurrenceCount) -
Method Summary
Modifier and TypeMethodDescriptionprotected int
protected void
This element is being closed.boolean
Returns true if this handle represents the same Java element as the given handle.Returns amember value pair
representing the default value of this method if any, ornull
if this method's parent is not an annotation type, or else if this method does not have a default value.int
Returns this element's kind encoded as an integer.String[]
Returns the type signatures of the exceptions this method throws, in the order declared in the source.protected void
protected char
Returns thechar
that marks the start of this handles contribution to a memento.getKey()
Returns the binding key for this method only if the given method isresolved
.int
Returns the number of parameters of this method.String[]
Returns the names of parameters in this method.Returns the parameters of this method.String[]
Returns the type signatures for the parameters of this method.getPrimaryElement
(boolean checkOwner) String[]
Returns the names of parameters in this method.Returns the type signature of the return value of this method.Returns the signature of this method.getTypeParameter
(String typeParameterName) Returns the type parameter declared in this method with the given name.Returns the formal type parameters for this method.String[]
Deprecated.boolean
Returns whether this method is a constructor.boolean
Returns whether this method represents a lambda expression.boolean
Returns whether this method is a main method.boolean
Returns whether this method is a main method candidate.boolean
Returns whether this method represents a resolved method.boolean
Returns whether this method is similar to the given method.protected void
toStringInfo
(int tab, StringBuilder buffer, Object info, boolean showResolvedInfo) Debugging purposesprotected void
toStringName
(StringBuilder buffer) Debugging purposesprotected void
toStringName
(StringBuilder buffer, int flags) Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.NamedMember
getElementName, getFullyQualifiedName, getFullyQualifiedParameterizedName, getKey, getKey, getKey, getKey, getOccurrenceCountSignature, getPackageFragment, getTypeQualifiedName, resolveType, resolveType
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.Member
areSimilarMethods, convertConstant, findMethods, getCategories, getClassFile, getDeclaringType, getFlags, getHandleFromMemento, getJavadocRange, getNameRange, getOuterMostLocalContext, getType, getTypeRoot, isBinary, isMainMethod, isMainMethodCandidate, isReadOnly
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.SourceRefElement
copy, createElementInfo, delete, findNode, generateInfos, getAnnotation, getAnnotations, getCompilationUnit, getCorrespondingResource, getHandleUpdatingCountFromMemento, getOccurrenceCount, getOpenableParent, getPath, getSource, getSourceRange, getUnderlyingResource, hasChildren, incOccurrenceCount, isStructureKnown, move, rename, resource, setOccurrenceCount
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaElement
appendEscapedDelimiter, close, escapeMementoName, exists, getAncestor, getAttachedJavadoc, getChildren, getChildrenOfType, getElementInfo, getElementInfo, getHandleFromMemento, getHandleIdentifier, getHandleMemento, getJavadocBaseLocation, getJavaModel, getJavaProject, getLibraryJavadocLocation, getOpenable, getParent, getPrimaryElement, getResource, getSchedulingRule, getSourceElementAt, getSourceMapper, getURLContents, hashCode, isAncestorOf, newDoesNotExistStatus, newJavaModelException, newNotPresentException, openWhenClosed, resetHashCode, tabString, toDebugString, toString, toString, toStringAncestors, toStringChildren, toStringInfo, toStringWithAncestors, toStringWithAncestors, unresolved, validateAndCache
Methods inherited from class org.eclipse.core.runtime.PlatformObject
getAdapter
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IAnnotatable
getAnnotation, getAnnotations
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IMember
getCategories, getClassFile, getCompilationUnit, getDeclaringType, getFlags, getJavadocRange, getOccurrenceCount, getType, getTypeRoot, isBinary
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IMethod
getElementName
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IParent
getChildren, hasChildren
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.ISourceManipulation
copy, delete, move, rename
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.ISourceReference
exists, getNameRange, getSource, getSourceRange
-
Field Details
-
parameterTypes
The parameter type signatures of the method - stored locally to perform equality test.null
indicates no parameters.
-
-
Constructor Details
-
SourceMethod
-
SourceMethod
protected SourceMethod(JavaElement parent, String name, String[] parameterTypes, int occurrenceCount)
-
-
Method Details
-
closing
Description copied from class:SourceRefElement
This element is being closed. Do any necessary cleanup.- Overrides:
closing
in classSourceRefElement
- Throws:
JavaModelException
-
equals
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 classSourceRefElement
- See Also:
-
calculateHashCode
protected int calculateHashCode()- Overrides:
calculateHashCode
in classSourceRefElement
-
getDefaultValue
Description copied from interface:IMethod
Returns amember value pair
representing the default value of this method if any, ornull
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 returnnull
. Please see this method for more details.- Specified by:
getDefaultValue
in interfaceIMethod
- 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.
-
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 interfaceIJavaElement
- Returns:
- the kind of element; one of the constants declared in
IJavaElement
- See Also:
-
getExceptionTypes
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 interfaceIMethod
- 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:
-
getHandleMemento
- Overrides:
getHandleMemento
in classSourceRefElement
- See Also:
-
getHandleMementoDelimiter
protected char getHandleMementoDelimiter()Description copied from class:JavaElement
Returns thechar
that marks the start of this handles contribution to a memento.- Overrides:
getHandleMementoDelimiter
in classMember
- See Also:
-
getKey
Description copied from interface:IMethod
Returns the binding key for this method only if the given method isresolved
. A binding key is a key that uniquely identifies this method. It allows access to:- generic info for parameterized methods
- the actual return type for references to
Object.getClass()
- the actual parameter types and return type for references to signature polymorphic methods from class MethodHandle
If the given method is not resolved, the returned key is simply the java element's key.
-
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 interfaceIMethod
- Returns:
- the number of parameters of this method
- See Also:
-
getParameterNames
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 interfaceIMethod
- 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.- See Also:
-
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 interfaceIMethod
- Returns:
- the type signatures for the parameters of this method, an empty array if this method has no parameters
- See Also:
-
getTypeParameter
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 interfaceIMethod
- Parameters:
typeParameterName
- the given simple name- Returns:
- the type parameter declared in this method with the given name
-
getTypeParameters
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 interfaceIMethod
- Overrides:
getTypeParameters
in classNamedMember
- 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.
-
getParameters
Description copied from interface:IMethod
Returns the parameters of this method.An empty array is returned, if the method has no parameters.
For binary types, associated source is used to retrieve the
name range
,source range
and theflags
.These local variables can be used to retrieve the
parameter annotations
.- Specified by:
getParameters
in interfaceIMethod
- Returns:
- the parameters of this method
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.
-
getTypeParameterSignatures
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 interfaceIMethod
- 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:
-
getPrimaryElement
- Overrides:
getPrimaryElement
in classJavaElement
-
getRawParameterNames
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 interfaceIMethod
- 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
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 interfaceIMethod
- 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:
-
getSignature
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 interfaceIMethod
- 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:
-
isConstructor
Description copied from interface:IMethod
Returns whether this method is a constructor.- Specified by:
isConstructor
in interfaceIMethod
- 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.- See Also:
-
isMainMethod
Description copied from interface:IMethod
Returns whether this method is a main method. It is a main method if:- its name is equal to
"main"
- its return type is
void
- it is
static
andpublic
- it defines one parameter whose type's simple name is
String[]
- Specified by:
isMainMethod
in interfaceIMethod
- 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.- See Also:
- its name is equal to
-
isMainMethodCandidate
Description copied from interface:IMethod
Returns whether this method is a main method candidate. It is a main method if:- its name is equal to
"main"
- its return type is
void
- it is
static
andpublic
- it defines one parameter whose type's simple name is
String[]
- its name is equal to
"main"
- its return type is
void
- it is non-
private
- it defines one parameter whose type's simple name is
String[]
or no parameter at all
- Specified by:
isMainMethodCandidate
in interfaceIMethod
- 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.
- its name is equal to
-
isLambdaMethod
public boolean isLambdaMethod()Description copied from interface:IMethod
Returns whether this method represents a lambda expression.- Specified by:
isLambdaMethod
in interfaceIMethod
- Returns:
- true if this method represents a lambda expression, false otherwise.
- See Also:
-
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 interfaceIMethod
- Returns:
- whether this method represents a resolved method.
-
isSimilar
Description copied from interface:IMethod
Returns whether this method is similar to the given method. Two methods are similar if:- their element names are equal
- they have the same number of parameters
- the simple names of their parameter types are equal
-
readableName
- Overrides:
readableName
in classMember
-
resolved
- Overrides:
resolved
in classJavaElement
-
toStringInfo
Description copied from class:JavaElement
Debugging purposes- Overrides:
toStringInfo
in classJavaElement
- Parameters:
showResolvedInfo
- TODO
-
toStringName
Description copied from class:JavaElement
Debugging purposes- Overrides:
toStringName
in classSourceRefElement
-
toStringName
-