1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.templating;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.i18n.Messages;
38 import info.magnolia.cms.i18n.MessagesManager;
39 import info.magnolia.cms.security.AccessManager;
40 import info.magnolia.cms.security.Permission;
41 import info.magnolia.cms.util.DeprecationUtil;
42 import info.magnolia.context.MgnlContext;
43
44 import java.util.HashMap;
45 import java.util.Map;
46
47
48
49
50
51
52
53 public class Template extends AbstractRenderable {
54 private Content content;
55
56 private boolean visible = true;
57
58 private Map<String, Template> subTemplates = new HashMap<String, Template>();
59
60
61
62
63 public Template() {
64
65 }
66
67
68
69
70
71
72 public String getPath() {
73 DeprecationUtil.isDeprecated("The 'path' property is deprecated: use the templatePath property instead. (current value: " + getTemplatePath() + ")");
74 return getTemplatePath();
75 }
76
77
78 public String getI18NTitle() {
79 Messages msgs = MessagesManager.getMessages(getI18nBasename());
80
81 return msgs.getWithDefault(getTitle(), getTitle());
82 }
83
84 public String getParameter(String key) {
85 return (String) getParameters().get(key);
86 }
87
88
89
90
91
92 public boolean isVisible() {
93 return this.visible;
94 }
95
96 public Template getSubTemplate(String extension) {
97 return this.subTemplates.get(extension);
98 }
99
100 public void addSubTemplate(String extension, Template subTemplate) {
101 this.subTemplates.put(extension, subTemplate);
102 }
103
104 public Map<String, Template> getSubTemplates() {
105 return this.subTemplates;
106 }
107
108 public void setSubTemplates(Map<String, Template> subTemplates) {
109 this.subTemplates = subTemplates;
110 }
111
112
113
114
115 public void setPath(String path) {
116
117 DeprecationUtil.isDeprecated("The 'path' property is deprecated: use the templatePath property instead. (setting to value: " + path + ")");
118 setTemplatePath(path);
119 }
120
121 public void setVisible(boolean visible) {
122 this.visible = visible;
123 }
124
125 public boolean isAvailable(Content node) {
126
127 AccessManager am = MgnlContext.getAccessManager(getContent().getHierarchyManager().getName());
128 return am.isGranted(getContent().getHandle(), Permission.READ);
129 }
130
131 public Content getContent() {
132 return this.content;
133 }
134
135
136 public void setContent(Content content) {
137 this.content = content;
138 }
139
140 }