org.eclipse.wst.jsdt.core
Interface IFunction

All Superinterfaces:
IJavaScriptElement, ILookupScope, IMember, IParent, ISourceManipulation, ISourceReference

public interface IFunction
extends IMember

Represents a function or a method (or constructor) declared in a type.

This interface is not intended to be implemented by clients.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.


Field Summary
 
Fields inherited from interface org.eclipse.wst.jsdt.core.IJavaScriptElement
CLASS_FILE, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVASCRIPT_MODEL, JAVASCRIPT_PROJECT, JAVASCRIPT_UNIT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE, TYPE_PARAMETER
 
Method Summary
 java.lang.String getElementName()
          Returns the simple name of this function or method.
 java.lang.String[] getExceptionTypes()
          Returns the type signatures of the exceptions this method throws, in the order declared in the source.
 IFunction getFunction(java.lang.String selector, java.lang.String[] parameterTypeSignatures)
           
 java.lang.String getKey()
          Returns the binding key for this method.
 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 name)
          Returns the type parameter declared in this method with the given name.
 ITypeParameter[] getTypeParameters()
          Returns the formal type parameters for this method.
 boolean isConstructor()
          Returns whether this method is a constructor.
 boolean isMainMethod()
           
 boolean isResolved()
          Returns whether this method represents a resolved method.
 boolean isSimilar(IFunction method)
          Returns whether this method is similar to the given method.
 
Methods inherited from interface org.eclipse.wst.jsdt.core.IMember
getCategories, getClassFile, getCompilationUnit, getDeclaringType, getFlags, getJavaScriptUnit, getJSdocRange, getNameRange, getOccurrenceCount, getType, getTypeRoot, isBinary
 
Methods inherited from interface org.eclipse.wst.jsdt.core.IJavaScriptElement
exists, getAncestor, getAttachedJavadoc, getCommonSuperType, getCorrespondingResource, getDisplayName, getElementType, getHandleIdentifier, getHostPath, getJavaScriptModel, getJavaScriptProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown, isVirtual
 
Methods inherited from interface org.eclipse.wst.jsdt.core.ILookupScope
newNameLookup, newNameLookup, newSearchableNameEnvironment, newSearchableNameEnvironment
 
Methods inherited from interface org.eclipse.wst.jsdt.core.ISourceReference
exists, getSource, getSourceRange
 
Methods inherited from interface org.eclipse.wst.jsdt.core.ISourceManipulation
copy, delete, move, rename
 
Methods inherited from interface org.eclipse.wst.jsdt.core.IParent
getChildren, hasChildren
 

Method Detail

getElementName

java.lang.String getElementName()
Returns the simple name of this function or method. For a constructor, this returns the simple name of the declaring type. Note: This holds whether the constructor appears in a source or binary type This is a handle-only method.

Specified by:
getElementName in interface IJavaScriptElement
Returns:
the simple name of this method

getExceptionTypes

java.lang.String[] getExceptionTypes()
                                     throws JavaScriptModelException
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.

Note: This Method only applies to ECMAScript 4 which is not yet supported

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:
JavaScriptModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
Signature

getTypeParameters

ITypeParameter[] getTypeParameters()
                                   throws JavaScriptModelException
Returns the formal type parameters for this method. Returns an empty array if this method has no formal type parameters.

Note: This Method only applies to ECMAScript 4 which is not yet supported

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

getNumberOfParameters

int getNumberOfParameters()
Returns the number of parameters of this method. This is a handle-only method.

Returns:
the number of parameters of this method

getKey

java.lang.String getKey()
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.

Returns:
the binding key for this method
See Also:
IBinding.getKey(), BindingKey

getParameterNames

java.lang.String[] getParameterNames()
                                     throws JavaScriptModelException
Returns the names of parameters in this method. Returns an empty array if this method has no parameters.

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

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

getParameterTypes

java.lang.String[] getParameterTypes()
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.

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.

Returns:
the type signatures for the parameters of this method, an empty array if this method has no parameters
See Also:
Signature

getRawParameterNames

java.lang.String[] getRawParameterNames()
                                        throws JavaScriptModelException
Returns the names of parameters in this method. Returns an empty array if this method has no parameters.

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

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

getReturnType

java.lang.String getReturnType()
                               throws JavaScriptModelException
Returns the type signature of the return value of this method. For constructors, this returns the signature for void.

Until EMCAScript 4 is supported, types are inferred by analying the code, and are not necessarily accurate.

For example, a source method declared as function getName(){return "abc"} 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.

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

getSignature

java.lang.String getSignature()
                              throws JavaScriptModelException
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.

Returns:
the signature of this method
Throws:
JavaScriptModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
Signature

getTypeParameter

ITypeParameter getTypeParameter(java.lang.String name)
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.

Note: This Method only applies to ECMAScript 4 which is not yet supported

Parameters:
name - the given simple name
Returns:
the type parameter declared in this method with the given name

isConstructor

boolean isConstructor()
                      throws JavaScriptModelException
Returns whether this method is a constructor.

Returns:
true if this method is a constructor, false otherwise
Throws:
JavaScriptModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

isMainMethod

boolean isMainMethod()
                     throws JavaScriptModelException
Throws:
JavaScriptModelException

isResolved

boolean isResolved()
Returns whether this method represents a resolved method. If a method is resoved, its key contains resolved information.

Returns:
whether this method represents a resolved method.

isSimilar

boolean isSimilar(IFunction method)
Returns whether this method is similar to the given method. Two methods are similar if: This is a handle-only method.

Parameters:
method - the given method
Returns:
true if this method is similar to the given method.
See Also:
Signature.getSimpleName(char[])

getFunction

IFunction getFunction(java.lang.String selector,
                      java.lang.String[] parameterTypeSignatures)