reusable logic for web site navigation
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / network / navigation / NavigationItem.java
1 package eu.svjatoslav.commons.network.navigation;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import eu.svjatoslav.commons.string.WildCardMatcher;
7
8 public class NavigationItem {
9
10         private final String title;
11         private final String link;
12         private final String matchingWildcard;
13
14         ArrayList<NavigationItem> subElements = new ArrayList<NavigationItem>();
15
16         public NavigationItem(final String title, final String link) {
17                 this.title = title;
18                 this.link = link;
19                 matchingWildcard = link;
20         }
21
22         public NavigationItem(final String title, final String link,
23                         final String wildcard) {
24                 this.title = title;
25                 this.link = link;
26                 matchingWildcard = wildcard;
27         }
28
29         public void addSubNavigation(final NavigationItem item) {
30                 subElements.add(item);
31         }
32
33         public String getLink() {
34                 return link;
35         }
36
37         public List<NavigationItem> getSubElements() {
38                 return subElements;
39         }
40
41         public String getTitle() {
42                 return title;
43         }
44
45         public boolean matchesUrl(final String url) {
46
47                 return WildCardMatcher.match(url, matchingWildcard);
48
49         }
50
51 }