001    package com.khubla.pragmatach.framework.api;
002    
003    import java.util.Map;
004    
005    /**
006     * @author tome
007     */
008    public interface Plugin {
009       /**
010        * if this plugin exposes an I8NProvider, return it here, otherwise return null
011        */
012       I8NProvider getI8NProvider();
013    
014       /**
015        * name of the plugin
016        */
017       String getName();
018    
019       /**
020        * get template variables
021        */
022       Map<String, Object> getTemplateVariables();
023    
024       /**
025        * this sets the PluginContext, so that the plugin can access framework-provided services, such as the ResourceLoader
026        */
027       void setPluginContext(PluginContext pluginContext);
028    
029       /**
030        * startup
031        */
032       void startup() throws PragmatachException;
033    }