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.blossom.render;
35
36 import java.util.Locale;
37 import java.util.Map;
38 import java.util.Stack;
39
40 import info.magnolia.rendering.context.RenderingContext;
41
42
43
44
45
46
47
48 public class RenderContext {
49
50 private static ThreadLocal<Stack<RenderContext>> stack = new ThreadLocal<Stack<RenderContext>>();
51
52 public static RenderContext push() {
53 RenderContext context = new RenderContext();
54 Stack<RenderContext> s = stack.get();
55 if (s == null) {
56 s = new Stack<RenderContext>();
57 stack.set(s);
58 }
59 s.push(context);
60 return context;
61 }
62
63 public static void pop() {
64 Stack<RenderContext> s = stack.get();
65 if (s != null) {
66 s.pop();
67 }
68 }
69
70 public static RenderContext get() {
71 Stack<RenderContext> s = stack.get();
72 if (s == null || s.isEmpty()) {
73 throw new IllegalStateException();
74 }
75 return s.peek();
76 }
77
78 private RenderingContext renderingContext;
79 private Map<String, Object> contextObjects;
80 private Map model;
81 private Locale locale;
82 private String templateScript;
83
84 public RenderingContext getRenderingContext() {
85 return renderingContext;
86 }
87
88 public void setRenderingContext(RenderingContext renderingContext) {
89 this.renderingContext = renderingContext;
90 }
91
92 public Map<String, Object> getContextObjects() {
93 return contextObjects;
94 }
95
96 public void setContextObjects(Map<String, Object> contextObjects) {
97 this.contextObjects = contextObjects;
98 }
99
100 public Map getModel() {
101 return model;
102 }
103
104 public void setModel(Map model) {
105 this.model = model;
106 }
107
108 public Locale getLocale() {
109 return locale;
110 }
111
112 public void setLocale(Locale locale) {
113 this.locale = locale;
114 }
115
116 public String getTemplateScript() {
117 return templateScript;
118 }
119
120 public void setTemplateScript(String templateScript) {
121 this.templateScript = templateScript;
122 }
123 }