blob: 353370e9e4a5dacc5e64ad064c109625cf00988c [file] [log] [blame]
/**********************************************************************
* This file is part of "Object Teams Development Tooling"-Software
*
* Copyright 2009 Germany and Technical University Berlin, Germany.
*
* 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
* $Id: IAspectRequestNegotiator.java 23468 2010-02-04 22:34:27Z stephan $
*
* Please visit http://www.eclipse.org/objectteams for updates and contact.
*
* Contributors:
* Technical University Berlin - Initial API and implementation
**********************************************************************/
package org.eclipse.objectteams.otequinox;
import org.eclipse.objectteams.otequinox.hook.AspectPermission;
/**
* Interface for extenders wishing to participate in negotiation about aspect binding requests
* including forced exports.
*
* @author stephan
* @since 1.2.6
*/
public interface IAspectRequestNegotiator {
/**
* Check whether a request for forced exports should be granted.
* @param aspectBundleSymbolicName the aspect issuing the request
* @param baseBundleSymbolicName the affected base bundle
* @param basePackage the affected base package
* @param previousNegotiation the result of negotations up-to this point
* @return a structure holding the answer, must not be null.
*/
AspectBindingRequestAnswer checkForcedExport(String aspectBundleSymbolicName, String baseBundleSymbolicName, String basePackage, AspectPermission previousNegotiation);
/**
* Check whether a request for an aspect binding should be granted.
* @param aspectBundleSymbolicName the aspect issuing the request
* @param baseBundleSymbolicName the affected base bundle
* @param teamClass an affecting team class involved in this aspect binding
* @param previousNegotiation the result of negotations up-to this point
* @return a structure holding the answer, must not be null.
*/
AspectBindingRequestAnswer checkAspectBinding(String aspectBundleSymbolicName, String baseBundleSymbolicName, String teamClass, AspectPermission previousNegotiation);
}