package com.twasyl.slideshowfx.plugin; /** * Defines the base interface to create a plugin for SlideshowFX. A plugin is a piece of software * that can be used by SlideshowFX in order to add features to it. * * @author Thierry Wasylczenko * @version 1.0.0 * @since SlideshowFX 1.0 */ public interface IPlugin<T extends IPluginOptions> { /** * Get the name of the plugin. * @return The name of the plugin. */ String getName(); /** * Get the options of the plugins. Options defines the custom parameters of a plugin and each plugin can defines it's * own options. * @return The options of the plugin. */ T getOptions(); /** * Saves the new options of a plugin. * @param options New options of a plugin. * @throws NullPointerException If the specified options are {@code null}. */ void setOptions(final T options) throws NullPointerException; }