22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
27 * |
27 * |
28 */ |
28 */ |
29 package de.uapcore.lightpit; |
29 package de.uapcore.lightpit; |
30 |
30 |
31 import java.util.ArrayList; |
31 import java.util.ArrayList; |
32 import java.util.Collections; |
32 import java.util.Collections; |
33 import java.util.List; |
33 import java.util.List; |
34 |
34 |
35 /** |
35 /** |
36 * Maps a resource key for the menu label to the path name for the underlying |
36 * Maps a resource key for the menu label to the path name for the underlying |
37 * site. |
37 * site. |
38 * |
38 * <p> |
39 * Objects of this class are internally instantiated by the |
39 * Objects of this class are internally instantiated by the |
40 * {@link ModuleManager}. |
40 * {@link ModuleManager}. |
41 */ |
41 */ |
42 public class Menu extends MenuEntry { |
42 public class Menu extends MenuEntry { |
43 |
43 |
44 private final List<MenuEntry> entries = new ArrayList<>(); |
44 private final List<MenuEntry> entries = new ArrayList<>(); |
45 private final List<MenuEntry> immutableEntries = Collections.unmodifiableList(entries); |
45 private final List<MenuEntry> immutableEntries = Collections.unmodifiableList(entries); |
46 |
46 |
47 /** |
47 /** |
48 * Class name of the module for which this menu is built. |
48 * Class name of the module for which this menu is built. |
49 */ |
49 */ |
50 private String moduleClassName; |
50 private String moduleClassName; |
51 |
51 |
52 |
52 |
53 public Menu() { |
53 public Menu() { |
54 super(); |
54 super(); |
55 } |
55 } |
56 |
56 |
57 public Menu(String moduleClassName, ResourceKey resourceKey, String pathName) { |
57 public Menu(String moduleClassName, ResourceKey resourceKey, String pathName) { |
58 super(resourceKey, pathName); |
58 super(resourceKey, pathName); |
59 this.moduleClassName = moduleClassName; |
59 this.moduleClassName = moduleClassName; |
60 } |
60 } |
61 |
61 |
62 public void setModuleClassName(String moduleClassName) { |
62 public void setModuleClassName(String moduleClassName) { |
63 this.moduleClassName = moduleClassName; |
63 this.moduleClassName = moduleClassName; |
64 } |
64 } |
65 |
65 |
66 public String getModuleClassName() { |
66 public String getModuleClassName() { |
67 return moduleClassName; |
67 return moduleClassName; |
68 } |
68 } |
69 |
69 |
70 /** |
70 /** |
71 * Sets a new list of menu entries for this menu. |
71 * Sets a new list of menu entries for this menu. |
72 * |
72 * |
73 * @param entries the list of new menu entries |
73 * @param entries the list of new menu entries |
74 */ |
74 */ |
75 public void setEntries(List<MenuEntry> entries) { |
75 public void setEntries(List<MenuEntry> entries) { |
76 // in case the given list is immutable, we copy the contents |
76 // in case the given list is immutable, we copy the contents |
77 this.entries.clear(); |
77 this.entries.clear(); |
78 this.entries.addAll(entries); |
78 this.entries.addAll(entries); |
79 } |
79 } |
80 |
80 |
81 /** |
81 /** |
82 * Retrieves an immutable list of menu entries for this menu. |
82 * Retrieves an immutable list of menu entries for this menu. |
83 * |
83 * |
84 * @return the list of menu entries |
84 * @return the list of menu entries |
85 */ |
85 */ |
86 public List<MenuEntry> getEntries() { |
86 public List<MenuEntry> getEntries() { |
87 return immutableEntries; |
87 return immutableEntries; |
88 } |
88 } |
89 |
89 |
90 /** |
90 /** |
91 * Adds a new menu entry to this menu. |
91 * Adds a new menu entry to this menu. |
|
92 * |
92 * @param entry the menu entry to add |
93 * @param entry the menu entry to add |
93 */ |
94 */ |
94 public void addMenuEntry(MenuEntry entry) { |
95 public void addMenuEntry(MenuEntry entry) { |
95 entries.add(entry); |
96 entries.add(entry); |
96 } |
97 } |