JavaScript Development Tools
Release 3.2

org.eclipse.wst.jsdt.core.dom
Interface IFunctionBinding

All Superinterfaces:
IBinding

public interface IFunctionBinding
extends IBinding

A method binding represents a method or constructor of a class or interface. Method bindings usually correspond directly to method or constructor declarations found in the source code. However, in certain cases of references to a generic method, the method binding may correspond to a copy of a generic method declaration with substitutions for the method's type parameters (for these, getTypeArguments returns a non-empty list, and either isParameterizedMethod or isRawMethod returns true). And in certain cases of references to a method declared in a generic type, the method binding may correspond to a copy of a method declaration with substitutions for the type's type parameters (for these, getTypeArguments returns an empty list, and both isParameterizedMethod and isRawMethod return false).

This interface is not intended to be implemented by clients.

See Also:
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.dom.IBinding
METHOD, PACKAGE, TYPE, VARIABLE
 
Method Summary
 ITypeBinding getDeclaringClass()
          Returns the type binding representing the class or interface that declares this method or constructor.
 Object getDefaultValue()
          Returns the resolved default value of an annotation type member, or null if the member has no default value, or if this is not the binding for an annotation type member.
 IFunctionBinding getMethodDeclaration()
          Returns the binding for the method declaration corresponding to this method binding.
 String getName()
          Returns the name of the method declared in this binding.
 ITypeBinding[] getParameterTypes()
          Returns a list of type bindings representing the formal parameter types, in declaration order, of this method or constructor.
 ITypeBinding getReturnType()
          Returns the binding for the return type of this method.
 boolean isConstructor()
          Returns whether this binding is for a constructor or a method.
 boolean isDefaultConstructor()
          Returns whether this binding is known to be a compiler-generated default constructor.
 boolean isSubsignature(IFunctionBinding otherMethod)
          Returns whether this method's signature is a subsignature of the given method.
 boolean isVarargs()
          Returns whether this is a variable arity method.
 boolean overrides(IFunctionBinding method)
          Returns whether this method overrides the given method.
 
Methods inherited from interface org.eclipse.wst.jsdt.core.dom.IBinding
equals, getJavaElement, getKey, getKind, getModifiers, isDeprecated, isEqualTo, isRecovered, toString
 

Method Detail

isConstructor

boolean isConstructor()
Returns whether this binding is for a constructor or a method.

Returns:
true if this is the binding for a constructor, and false if this is the binding for a method

isDefaultConstructor

boolean isDefaultConstructor()
Returns whether this binding is known to be a compiler-generated default constructor.

This method returns false for:

Returns:
true if this is known to be the binding for a compiler-generated default constructor, and false otherwise

getName

String getName()
Returns the name of the method declared in this binding. The method name is always a simple identifier. The name of a constructor is always the same as the declared name of its declaring class.

Specified by:
getName in interface IBinding
Returns:
the name of this method, or the declared name of this constructor's declaring class

getDeclaringClass

ITypeBinding getDeclaringClass()
Returns the type binding representing the class or interface that declares this method or constructor.

Returns:
the binding of the class or interface that declares this method or constructor

getDefaultValue

Object getDefaultValue()
Returns the resolved default value of an annotation type member, or null if the member has no default value, or if this is not the binding for an annotation type member.

Resolved values are represented as follows (same as for IMemberValuePairBinding#getValue()):

Returns:
the default value of this annotation type member, or null if none or not applicable

getParameterTypes

ITypeBinding[] getParameterTypes()
Returns a list of type bindings representing the formal parameter types, in declaration order, of this method or constructor. Returns an array of length 0 if this method or constructor does not takes any parameters.

Note that the binding for the last parameter type of a vararg method declaration like void fun(Foo... args) is always for an array type (i.e., Foo[]) reflecting the the way varargs get compiled. However, the type binding obtained directly from the SingleVariableDeclaration for the vararg parameter is always for the type as written; i.e., the type binding for Foo.

Note: The result does not include synthetic parameters introduced by inner class emulation.

Returns:
a (possibly empty) list of type bindings for the formal parameters of this method or constructor

getReturnType

ITypeBinding getReturnType()
Returns the binding for the return type of this method. Returns the special primitive void return type for constructors.

Returns:
the binding for the return type of this method, or the void return type for constructors

getMethodDeclaration

IFunctionBinding getMethodDeclaration()
Returns the binding for the method declaration corresponding to this method binding. For parameterized methods (#isParameterizedMethod()) and raw methods (#isRawMethod()), this method returns the binding for the corresponding generic method. For other method bindings, this returns the same binding.

Note: The one notable exception is the method Object.getClass(), which is declared to return Class<? extends Object>, but when invoked its return type becomes Class<? extends R>, where R is the compile type of the receiver of the method invocation.

Returns:
the method binding

isSubsignature

boolean isSubsignature(IFunctionBinding otherMethod)
Returns whether this method's signature is a subsignature of the given method.

Returns:
true if this method's signature is a subsignature of the given method

isVarargs

boolean isVarargs()
Returns whether this is a variable arity method.

Note: Variable arity ("varargs") methods were added in JLS3.

Returns:
true if this is a variable arity method, and false otherwise

overrides

boolean overrides(IFunctionBinding method)
Returns whether this method overrides the given method.

Parameters:
method - the method that is possibly overridden
Returns:
true if this method overrides the given method, and false otherwise

JavaScript Development Tools
Release 3.2

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