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.turbine.BlogRunData;
26 import net.sourceforge.blogentis.utils.AbsoluteLinkURL;
27
28 /***
29 * This interface defines a linked item in the blogs UI. Only the target link
30 * and the description are relevant, the caller will know what to do with them.
31 *
32 * @author abas
33 */
34 public interface ILinkTo {
35 /***
36 * Get this links label. TODO: provide i18n support?
37 *
38 * @return the label for this link.
39 */
40 public String getLabel();
41
42 /***
43 * Get the linked page that this link should lead to.
44 *
45 * @param data
46 * the RunData of the request.
47 * @param link
48 * an (possibly modified) link.
49 * @return
50 */
51 public AbsoluteLinkURL getLink(BlogRunData data, AbsoluteLinkURL link);
52
53 /***
54 * Check if this link's target is the same as the current request.
55 *
56 * @param data
57 * The current request
58 * @return true if the current request shows the current page.
59 */
60 public boolean isCurrentPage(BlogRunData data);
61
62 /***
63 * Check if this links target is accessible with the current requests
64 * credentials.
65 *
66 * @param data
67 * The current request
68 * @return true if the target page is viewable with the current credentials.
69 */
70 public boolean isAuthorized(BlogRunData data);
71 }