/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Zend Technologies
*******************************************************************************/
package org2.eclipse.php.internal.core.ast.nodes;
/**
* 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.
*
* <p>
* This interface is not intended to be implemented by clients.
* </p>
*
* @see ITypeBinding#getDeclaredMethods()
* @since 2.0
*/
public interface IMethodBinding extends IFunctionBinding {
/**
* Returns whether this binding is for a constructor or a method.
*
* @return <code>true</code> if this is the binding for a constructor,
* and <code>false</code> if this is the binding for a method
*/
public boolean isConstructor();
/**
* Returns the type binding representing the class or interface
* that declares this method or constructor.
*
* @return the binding of the class or interface that declares this method
* or constructor
*/
public ITypeBinding getDeclaringClass();
/**
* Returns whether this method overrides the given method,
* as specified in section 8.4.8.1 of <em>The Java Language
* Specification, Third Edition</em> (JLS3).
*
* @param method the method that is possibly overriden
* @return <code>true</code> if this method overrides the given method,
* and <code>false</code> otherwise
* @since 3.1
*/
public boolean overrides(IMethodBinding method);
}