1 package net.sourceforge.blogentis.plugins;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import org.apache.turbine.services.InitializationException;
26
27 import net.sourceforge.blogentis.om.Blog;
28
29 /***
30 * Plugins and extensions should implement this.
31 *
32 * @author abas
33 */
34 public interface IPlugin {
35 /***
36 * Get the name of the plugin.
37 *
38 * @return the name of the plugin.
39 */
40 public String getName();
41
42 /***
43 * Get a medium-sized description of the plugin and what its effects are.
44 * You may use HTML in this descrpition.
45 *
46 * @return
47 */
48 public String getDescription();
49
50 /***
51 * Register any run-time data with the specified blog. Event handlers,
52 * extension points and hooks should be registered here. This method gets
53 * called when the blog is first instantiated in the VM, and when the
54 * blog-specific active plugin list is reloaded.
55 *
56 * @param blog
57 */
58 public void registerInBlog(Blog blog);
59
60 /***
61 * Register this plugin as being used in the specified blog. This will get
62 * called once when the plugin is added by the user to the blog.
63 *
64 * @param blog
65 */
66 public void doAddToBlog(Blog blog);
67
68 /***
69 * Remove all plugin-specific data from the specified blog. This will get
70 * called when the user removes this plugin from the specified blog.
71 *
72 * @param blog
73 */
74 public void doRemoveFromBlog(Blog blog);
75
76 /***
77 * Start the plugin and cause it to register to all extension points that
78 * are not blog-specific.
79 *
80 * @throws InitializationException
81 * when an exception occurs
82 */
83 public void startPlugin()
84 throws InitializationException;
85
86 /***
87 * Clean up any plugin data, as the system is shutting down. This method is
88 * named in symmetry to startPlugin().
89 */
90 public void stopPlugin();
91 }