blob: b0db37f65d7bc0488ef45ce0700f4edb57150d0c [file] [log] [blame]
/**********************************************************************
* This file is part of "Object Teams Runtime Environment"
*
* Copyright 2007, 2012 Berlin Institute of Technology, Germany, and others.
*
* 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
*
* Please visit http://www.eclipse.org/objectteams for updates and contact.
*
* Contributors:
* Berlin Institute of Technology - Initial API and implementation
* Oliver Frank - Initial API and Implementation
**********************************************************************/
package org.objectteams;
/**
* Super type for all bound base classes when using the "Object Teams Dynamic Runtime Environment".
* Purely internal class, not intended for client use.
*/
public interface IBoundBase2 {
/**
* Call a bound base method identified by its ID.
* @param boundMethod_id globally unique ID of a bound base method
* @param args packed arguments (incl. boxing)
* @return (possibly boxed) result of the bound base method.
*/
Object _OT$callOrig(int boundMethod_id, Object[] args);
/**
* Provides access to fields and methods of a base class
* that have package, protected or private visbility
* @param accessId Unique identifier in the class for the field or method
* @param opKind 0 for read access, 1 for write access. only used for fields
* @param args arguments for a method
* @param caller the team containing the calling role
* @return
*/
Object _OT$access(int accessId, int opKind, Object[] args, ITeam caller);
/** Method to be used by generated code, only (lifting constructor & unregisterRole()). */
void _OT$addOrRemoveRole(Object aRole, boolean adding);
}