1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.om.folder.impl;
18
19 import java.util.Collection;
20 import java.util.Locale;
21
22 import org.apache.jetspeed.om.common.GenericMetadata;
23 import org.apache.jetspeed.om.page.PageMetadataImpl;
24 import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
25
26 /***
27 * BaseMenuDefinitionMetadata
28 *
29 * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
30 * @version $Id:$
31 */
32 public abstract class BaseMenuDefinitionMetadata extends BaseMenuDefinitionElement
33 {
34 private Collection metadataFields;
35
36 private PageMetadataImpl pageMetadata;
37
38 /***
39 * newPageMetadata
40 *
41 * Construct page manager specific metadata implementation.
42 *
43 * @param fields mutable fields collection
44 * @return page metadata
45 */
46 public abstract PageMetadataImpl newPageMetadata(Collection fields);
47
48 /***
49 * getPageMetadata
50 *
51 * Get page manager specific metadata implementation.
52 *
53 * @return page metadata
54 */
55 public PageMetadataImpl getPageMetadata()
56 {
57 if (pageMetadata == null)
58 {
59 if (metadataFields == null)
60 {
61 metadataFields = DatabasePageManagerUtils.createCollection();
62 }
63 pageMetadata = newPageMetadata(metadataFields);
64 }
65 return pageMetadata;
66 }
67
68
69
70
71
72 public String getTitle()
73 {
74
75 return null;
76 }
77
78
79
80
81 public String getShortTitle()
82 {
83
84 return null;
85 }
86
87
88
89
90 public String getText()
91 {
92
93 return null;
94 }
95
96
97
98
99
100 public String getTitle(Locale locale)
101 {
102
103 String title = getPageMetadata().getText("title", locale);
104 if (title == null)
105 {
106 title = getTitle();
107 }
108 return title;
109 }
110
111
112
113
114 public String getShortTitle(Locale locale)
115 {
116
117
118 String shortTitle = getPageMetadata().getText("short-title", locale);
119 if (shortTitle == null)
120 {
121 shortTitle = getPageMetadata().getText("title", locale);
122 if (shortTitle == null)
123 {
124 shortTitle = getShortTitle();
125 if (shortTitle == null)
126 {
127 shortTitle = getTitle();
128 }
129 }
130 }
131 return shortTitle;
132 }
133
134
135
136
137 public String getText(Locale locale)
138 {
139
140 String text = getPageMetadata().getText("text", locale);
141 if (text == null)
142 {
143 text = getText();
144 }
145 return text;
146 }
147
148
149
150
151
152 public GenericMetadata getMetadata()
153 {
154 return getPageMetadata();
155 }
156 }