1 package net.sourceforge.blogentis.plugins.impl;
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 java.util.ArrayList;
26 import java.util.Iterator;
27 import java.util.List;
28
29 import net.sourceforge.blogentis.om.Blog;
30 import net.sourceforge.blogentis.plugins.AbstractBlogExtensionPoint;
31 import net.sourceforge.blogentis.plugins.IPlugin;
32 import net.sourceforge.blogentis.plugins.base.ILinkTo;
33 import net.sourceforge.blogentis.plugins.base.INavigationExtension;
34 import net.sourceforge.blogentis.plugins.base.INavigationExtensionPoint;
35 import net.sourceforge.blogentis.turbine.BlogRunData;
36
37 /***
38 * The implementation of the INavigationExtensionPoint.
39 *
40 * @author abas
41 */
42 public class NavigationExtensionPointImpl
43 extends AbstractBlogExtensionPoint
44 implements INavigationExtensionPoint {
45
46 public NavigationExtensionPointImpl(IPlugin plugin, Blog blog) {
47 super(plugin, blog);
48 }
49
50 public String getName() {
51 return "Navigation Extension Point";
52 }
53
54 public Class getExtensionClass() {
55 return INavigationExtension.class;
56 }
57
58 public List buildNavigationList(BlogRunData data, String navName) {
59 List l = new ArrayList(10);
60 for(Iterator i = extensions.iterator(); i.hasNext();) {
61 INavigationExtension ine = (INavigationExtension)i.next();
62 ine.addNavigations(data, navName, l);
63 }
64 List r = new ArrayList(l.size());
65 for(Iterator i = l.iterator(); i.hasNext();) {
66 ILinkTo link = (ILinkTo)i.next();
67 if (link.isAuthorized(data))
68 r.add(link);
69 }
70 return r;
71 }
72 }