Source code: com/aendvari/tethys/tag/message/MessageTagData.java
1 /*
2 * MessageTagData.java
3 *
4 * Copyright (c) 2001, 2002 Aendvari, Ltd. All Rights Reserved.
5 *
6 * See the file LICENSE for terms of use.
7 *
8 */
9
10 package com.aendvari.tethys.tag.message;
11
12 import javax.servlet.*;
13 import javax.servlet.http.*;
14 import javax.servlet.jsp.*;
15
16 import com.aendvari.tethys.context.*;
17 import com.aendvari.tethys.context.message.*;
18
19 import com.aendvari.tethys.tag.data.TagData;
20
21 /**
22 * <p>Provides access to message tag data.</p>
23 *
24 * <p>The objects in this class are created on demand to reduce unnecessary
25 * object creation.</p>
26 *
27 * @author Trevor Milne
28 *
29 */
30
31 public class MessageTagData extends TagData
32 {
33 /* Variables */
34
35
36 /** Used to obtain tag data instances. */
37 protected static MessageTagData accessor = new MessageTagData();
38
39 /** Container for message contexts. */
40 protected ContextMap messageContextMap;
41
42 /** Container for message mappings. */
43 protected ContextMap messageMappingMap;
44
45
46 /* Constants */
47
48
49 protected final static String TagDataKey = TagData.TagDataBase + "/message";
50
51
52 /* Constructors */
53
54
55 /**
56 * Constructs an empty <code>MessageTagData</code>.
57 *
58 */
59
60 public MessageTagData()
61 {
62 messageContextMap = null;
63 messageMappingMap = null;
64 }
65
66
67 /* Access */
68
69
70 /**
71 * Returns the servlet attribute key for this tag data.
72 *
73 * @return The servlet attribute location for this tag data.
74 *
75 */
76
77 protected String getDataKey()
78 {
79 return TagDataKey;
80 }
81
82 /**
83 * Returns a new instance of this tag data.
84 * This method is to be implemented by subclasses.
85 *
86 * @return The new tag data object.
87 *
88 */
89
90 protected TagData createObject()
91 {
92 return new MessageTagData();
93 }
94
95
96 /** Wraps {@link TagData#getTagData(HttpServletRequest)}. */
97 public static MessageTagData getData(HttpServletRequest request) { return (MessageTagData)accessor.getTagData(request); }
98
99 /** Wraps {@link TagData#getTagData(HttpSession)}. */
100 public static MessageTagData getData(HttpSession session) { return (MessageTagData)accessor.getTagData(session); }
101
102 /** Wraps {@link TagData#getTagData(ServletContext)}. */
103 public static MessageTagData getData(ServletContext context) { return (MessageTagData)accessor.getTagData(context); }
104
105 /** Wraps {@link TagData#getTagData(PageContext)}. */
106 public static MessageTagData getData(PageContext context) { return (MessageTagData)accessor.getTagData(context); }
107
108 /** Wraps {@link TagData#getTagData(PageContext, String)}. */
109 public static MessageTagData getData(PageContext context, String scope) { return (MessageTagData)accessor.getTagData(context, scope); }
110
111
112 /** Wraps {@link TagData#setTagData(HttpServletRequest, TagData)}. */
113 public static void setData(HttpServletRequest request, MessageTagData data) { accessor.setTagData(request, data); }
114
115 /** Wraps {@link TagData#setTagData(HttpSession, TagData)}. */
116 public static void setData(HttpSession session, MessageTagData data) { accessor.setTagData(session, data); }
117
118 /** Wraps {@link TagData#setTagData(ServletContext, TagData)}. */
119 public static void setData(ServletContext context, MessageTagData data) { accessor.setTagData(context, data); }
120
121 /** Wraps {@link TagData#setTagData(PageContext, String, TagData)}. */
122 public static void setData(PageContext context, String scope, MessageTagData data) { accessor.setTagData(context, scope, data); }
123
124
125 /* Message context map */
126
127
128 /**
129 * Returns the message context map of this tag data. A default instance will be created.
130 *
131 * @return A {@link ContextMap} instance.
132 *
133 */
134
135 public ContextMap getMessageContextMap()
136 {
137 // check if object has not been created
138 if (messageContextMap == null)
139 {
140 // create a default context
141 MessageContext base = new MessageContext("", "");
142
143 // create default instance
144 messageContextMap = new ContextMap(base);
145 }
146
147 return messageContextMap;
148 }
149
150 /**
151 * Sets the message context map of this tag data.
152 *
153 * @param setContextMap The new {@link ContextMap}.
154 *
155 */
156
157 public void setMessageContextMap(ContextMap setContextMap)
158 {
159 messageContextMap = setContextMap;
160 }
161
162
163 /* Message mapping map */
164
165
166 /**
167 * Returns the message mapping map of this tag data. A default instance will be created.
168 *
169 * @return A {@link ContextMap} instance.
170 *
171 */
172
173 public ContextMap getMessageMappingMap()
174 {
175 // check if object has not been created
176 if (messageMappingMap == null)
177 {
178 // create a default mapping
179 MessageMapping base = new MessageMapping("", "");
180
181 // create default instance
182 messageMappingMap = new ContextMap(base);
183 }
184
185 return messageMappingMap;
186 }
187
188 /**
189 * Sets the message mapping map of this tag data.
190 *
191 * @param setMessageMappingMap The new {@link ContextMap}.
192 *
193 */
194
195 public void setMessageMappingMap(ContextMap setMessageMappingMap)
196 {
197 messageMappingMap = setMessageMappingMap;
198 }
199 }
200