aQute.bnd.service.Actionable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bndlib Show documentation
Show all versions of bndlib Show documentation
The bndlib project is a general library to be used with OSGi bundles. It contains
lots of cool functionality that calculates dependencies, etc.
package aQute.bnd.service;
import java.util.*;
/**
* An interface to allow bnd to provide commands on elements. This interface can
* provide information about the implementer but it can also provide information
* about its elements. These elements are identified by a target. A
* target is one or more objects that uniquely identify a child in the
* container. The exact protocol for the target is left to the implementers,
* this interface is just a conduit between the bnd world (no Eclipse etc) and
* the GUI world, using only bnd and java interfaces.
*/
public interface Actionable {
/**
* Return a map with command names (potentially localized) and a Runnable.
* The caller can execute the caller at will.
*
* @param target
* the target object, null if commands for the encompassing
* entity is sought (e.g. the repo itself).
* @return A Map with the actions or null if no actions are available.
* @throws Exception
*/
Map actions(Object... target) throws Exception;
/**
* Return a tooltip for the given target or the encompassing entity if null
* is passed.
*
* @param target
* the target, any number of parameters to identify
* @return the tooltip or null
* @throws Exception
*/
String tooltip(Object... target) throws Exception;
/**
* Provide a title for an element.
*
* @param target
* the target, any number of parameters to identify
* @return the text for this element
* @throws Exception
*/
String title(Object... target) throws Exception;
}