blob: 12f7c18387cff30577d4b4ae5a13e5444812e008 [file] [log] [blame]
/**********************************************************************
* This file is part of "Object Teams Development Tooling"-Software
*
* Copyright 2004, 2006 Fraunhofer Gesellschaft, Munich, Germany,
* for its Fraunhofer Institute for Computer Architecture and Software
* Technology (FIRST), Berlin, Germany and Technical University Berlin,
* Germany.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
* $Id: ICallinMapping.java 23416 2010-02-03 19:59:31Z stephan $
*
* Please visit http://www.eclipse.org/objectteams for updates and contact.
*
* Contributors:
* Fraunhofer FIRST - Initial API and implementation
* Technical University Berlin - Initial API and implementation
**********************************************************************/
package org.eclipse.objectteams.otdt.core;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.JavaModelException;
/**
* Specialized form of a IMethodMapping which provides information about
* its kind and direct links to (possible) multiple base methods.
*
* @author jwloka
* @version $Id: ICallinMapping.java 23416 2010-02-03 19:59:31Z stephan $
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface ICallinMapping extends IMethodMapping
{
public static final int KIND_BEFORE = 1;
public static final int KIND_AFTER = 2;
public static final int KIND_REPLACE = 3;
/**
* Returns the kind of callin e.g. replace
* @return possible return values are: ICallinMapping.KIND_BEFORE
* ICallinMapping.KIND_AFTER
* ICallinMapping.KIND_REPLACE
*/
public int getCallinKind();
/**
* Returns whether at least one of the bound base method is captured including
* overrides with covariant return types (marked as "RT+ bm()")
*/
public boolean hasCovariantReturn();
/**
* Dynamically resolves associated base methods from the JavaModel
* @return all JavaModel base method elements, at least there should
* be one entry
*/
public IMethod[] getBoundBaseMethods() throws JavaModelException;
/**
* Retrieve a handles for the base methods.
*
* @return handles representing the base method specs
*/
public IMethodSpec[] getBaseMethodHandles();
/**
* Returns whether this callin mapping has a 'callin label'. If false,
* getName() will return a generated label.
*/
public boolean hasName();
/**
* Returns the label for this callin mapping. If hasName() returns false,
* a generated label is returned.
*/
public String getName();
}