JavaScript Development Tools
Release 3.2

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_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE
 
Method Summary
 String getElementName()
          Returns the simple name of this function or method.
 IFunction getFunction(String selector, String[] parameterTypeSignatures)
           
 String getKey()
          Returns the binding key for this method.
 int getNumberOfParameters()
          Returns the number of parameters of this method.
 String[] getParameterNames()
          Returns the names of parameters in this method.
 String[] getParameterTypes()
          Returns the type signatures for the parameters of this method.
 String[] getRawParameterNames()
          Returns the names of parameters in this method.
 String getReturnType()
          Returns the type signature of the return value of this method.
 String getSignature()
          Returns the signature of this method.
 boolean isConstructor()
          Returns whether this method is a constructor.
 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, 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

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

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

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

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

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

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

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

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

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.

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(String selector,
                      String[] parameterTypeSignatures)

JavaScript Development Tools
Release 3.2

Copyright (c) IBM Corp. and others 2000, 2010. All Rights Reserved.