package ibis.ipl; import java.io.PrintStream; import java.util.Map; /** * A <code>Manageable</code> class is able to read and set * implementation-dependant management properties. */ public interface Manageable { /** * Returns the management properties. * * @return the management properties. */ public Map<String, String> managementProperties(); /** * Sets the specified management properties. * * @param properties * the management properties to set. * @exception NoSuchPropertyException * is thrown if one or more of the specified property keys * are not recognized. */ public void setManagementProperties(Map<String, String> properties) throws NoSuchPropertyException; /** * Returns the value of the specified management property. * * @param key * the key for the requested property. * @return the value associated with the property, or <code>null</code>. * @exception NoSuchPropertyException * is thrown if the specified property key is not recognized. */ public String getManagementProperty(String key) throws NoSuchPropertyException; /** * Sets a specified management property to a specified value. * * @param key * the key for the property. * @param value * the value associated with the property. * @exception NoSuchPropertyException * is thrown if the specified property key is not recognized. */ public void setManagementProperty(String key, String value) throws NoSuchPropertyException; /** * Prints the management properties to the specified output stream * * @param stream * the stream used to print the management properties. */ public void printManagementProperties(PrintStream stream); }