blob: 69d3db6328a9cc94de49c52b4d01c9148f8cd8c4 [file] [log] [blame]
package brooklyn.entity;
import java.io.Serializable;
import java.util.List;
import javax.management.MBeanOperationInfo;
/**
* An operation of some kind, carried out by an {@link Entity}.
*
* Modeled on concepts in the JMX {@link MBeanOperationInfo} class.
* <p>
*/
public interface Effector<T> extends Serializable {
/**
* human-friendly name of the effector (although frequently this uses java method naming convention)
*/
String getName();
Class<T> getReturnType();
/**
* canonical name of return type (in case return type does not resolve after serialization)
*/
String getReturnTypeName();
/**
* parameters expected by method, including name and type, optional description and default value
*/
List<ParameterType<?>> getParameters();
/**
* optional description for the effector
*/
String getDescription();
}