fdf69850fe8ac9718a55616764689b5415739716
[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.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import eu.svjatoslav.commons.network.Locale;
9 import eu.svjatoslav.commons.string.WildCardMatcher;
10
11 public class NavigationItem {
12
13         private final String link;
14         private final String matchingWildcard;
15         private final Map<Locale, String> titles = new HashMap<Locale, String>();
16         ArrayList<NavigationItem> subElements = new ArrayList<NavigationItem>();
17
18         public NavigationItem(final String link) {
19                 this.link = link;
20                 matchingWildcard = link;
21         }
22
23         public NavigationItem(final String link, final String wildcard) {
24                 this.link = link;
25                 matchingWildcard = wildcard;
26         }
27
28         public void addSubNavigation(final NavigationItem item) {
29                 subElements.add(item);
30         }
31
32         public NavigationItem addTitle(final Locale locale, final String title) {
33                 titles.put(locale, title);
34                 return this;
35         }
36
37         public NavigationItem addTitle(final String title) {
38                 titles.put(Locale.ENG, title);
39                 return this;
40         }
41
42         public String getLink() {
43                 return link;
44         }
45
46         public List<NavigationItem> getSubElements() {
47                 return subElements;
48         }
49
50         public String getTitle() {
51                 return titles.get(Locale.ENG);
52         }
53
54         public String getTitle(final Locale locale) {
55                 return titles.get(locale);
56         }
57
58         public boolean matchesUrl(final String url) {
59
60                 return WildCardMatcher.match(url, matchingWildcard);
61
62         }
63
64 }