1   package net.sourceforge.blogentis.plugins.base;
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 net.sourceforge.blogentis.plugins.IExtension;
26  import net.sourceforge.blogentis.turbine.BlogRunData;
27  
28  /***
29   * This extension wil be invoked for each HTTP request. At the time of
30   * invocation the BlogRunData will have been initialized and the properties will
31   * have been read.
32   * <ul>
33   * <li>doBuildBeforeAction will be called everytime.</li>
34   * <li>doBuildAfterAction will be called after the action completes
35   * successfully. If the request has be redirected by the action, this and the
36   * other steps will be skipped, and invoked for the actual page.</li>
37   * <li>doPostBuild will have been called after the page completes successfully.
38   * </li>
39   * </ul>
40   * 
41   * @author abas
42   */
43  public interface IPageExtension
44          extends IExtension {
45      /***
46       * Called before the action is executed.
47       * 
48       * @param data
49       *            the BlogRunData of the request.
50       */
51      public void doBeforeAction(BlogRunData data);
52  
53      /***
54       * Will be called after the action and before the Screen will be executed.
55       * Skipped if the action marked a redirect.
56       * 
57       * @param data
58       *            the BlogRunData of the request.
59       */
60      public void doAfterAction(BlogRunData data);
61  
62      /***
63       * Called after the screen has been executed and before cleanup. skipped if
64       * the action has sent a redirect.
65       * 
66       * @param data
67       *            the BlogRunData of the request.
68       */
69      public void doPostBuild(BlogRunData data);
70  }