001 // Copyright 2006, 2007, 2008, 2009, 2011 The Apache Software Foundation
002 //
003 // Licensed under the Apache License, Version 2.0 (the "License");
004 // you may not use this file except in compliance with the License.
005 // You may obtain a copy of the License at
006 //
007 // http://www.apache.org/licenses/LICENSE-2.0
008 //
009 // Unless required by applicable law or agreed to in writing, software
010 // distributed under the License is distributed on an "AS IS" BASIS,
011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 // See the License for the specific language governing permissions and
013 // limitations under the License.
014
015 package org.apache.tapestry5.services;
016
017 import org.apache.tapestry5.MarkupWriter;
018 import org.apache.tapestry5.internal.structure.PageResetListener;
019 import org.apache.tapestry5.plastic.MethodDescription;
020 import org.apache.tapestry5.plastic.PlasticUtils;
021 import org.apache.tapestry5.runtime.Component;
022 import org.apache.tapestry5.runtime.ComponentEvent;
023 import org.apache.tapestry5.runtime.Event;
024 import org.apache.tapestry5.runtime.PageLifecycleListener;
025 import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
026
027 import java.lang.reflect.Modifier;
028
029 /**
030 * Constants used by implementations of {@link org.apache.tapestry5.services.ComponentClassTransformWorker} and
031 * {@link ComponentClassTransformWorker2}.
032 * <p/>
033 * Note: methods on transformed components will not be invoked <em>unless</em>
034 * {@linkplain org.apache.tapestry5.model.MutableComponentModel#addRenderPhase(Class) the component model is updated to
035 * identify the use of the corresponding render phase}.
036 */
037 public final class TransformConstants
038 {
039 // Shared parameters of a whole bunch of lifecycle methods, representing the different
040 // component render states.
041 private static final String[] RENDER_PHASE_METHOD_PARAMETERS =
042 {MarkupWriter.class.getName(), Event.class.getName()};
043
044 /**
045 * Signature for
046 * {@link org.apache.tapestry5.runtime.Component#dispatchComponentEvent(org.apache.tapestry5.runtime.ComponentEvent)}
047 * .
048 *
049 * @see org.apache.tapestry5.annotations.OnEvent
050 * @deprecated Deprecated in Tapestry 5.3, use {@link #DISPATCH_COMPONENT_EVENT_DESCRIPTION}.
051 */
052 public static final TransformMethodSignature DISPATCH_COMPONENT_EVENT = new TransformMethodSignature(
053 Modifier.PUBLIC, "boolean", "dispatchComponentEvent", new String[]
054 {ComponentEvent.class.getName()}, null);
055
056 /**
057 * Description for
058 * {@link org.apache.tapestry5.runtime.Component#dispatchComponentEvent(org.apache.tapestry5.runtime.ComponentEvent)}
059 * .
060 *
061 * @see org.apache.tapestry5.annotations.OnEvent
062 * @since 5.3
063 */
064 public static final MethodDescription DISPATCH_COMPONENT_EVENT_DESCRIPTION = PlasticUtils.getMethodDescription(
065 Component.class, "dispatchComponentEvent", ComponentEvent.class);
066
067 /**
068 * Signature for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidLoad()}.
069 *
070 * @deprecated Deprecated in 5.3, use {@link #CONTAINING_PAGE_DID_LOAD_DESCRIPTION}.
071 */
072 public static final TransformMethodSignature CONTAINING_PAGE_DID_LOAD_SIGNATURE = new TransformMethodSignature(
073 "containingPageDidLoad");
074
075 /**
076 * Description for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidLoad()}.
077 *
078 * @since 5.3
079 */
080 public static final MethodDescription CONTAINING_PAGE_DID_LOAD_DESCRIPTION = PlasticUtils.getMethodDescription(
081 PageLifecycleListener.class, "containingPageDidLoad");
082
083 /**
084 * Description for {@link org.apache.tapestry5.internal.structure.PageResetListener#containingPageDidReset()}. Note that the {@link PageResetListener}
085 * interface is not automatically implemented by components. ]
086 *
087 * @see org.apache.tapestry5.annotations.PageReset
088 * @see org.apache.tapestry5.internal.transform.PageResetAnnotationWorker
089 * @since 5.3
090 */
091 public static final MethodDescription CONTAINING_PAGE_DID_RESET_DESCRIPTION = PlasticUtils.getMethodDescription(PageResetListener.class, "containingPageDidReset");
092
093 /**
094 * Signature for {@link org.apache.tapestry5.runtime.Component#postRenderCleanup()}.
095 */
096 public static final TransformMethodSignature POST_RENDER_CLEANUP_SIGNATURE = new TransformMethodSignature(
097 "postRenderCleanup");
098
099
100 /**
101 * Description for {@link org.apache.tapestry5.runtime.Component#postRenderCleanup()}.
102 *
103 * @since 5.3
104 */
105 public static final MethodDescription POST_RENDER_CLEANUP_DESCRIPTION = PlasticUtils.getMethodDescription(Component.class, "postRenderCleanup");
106
107 /**
108 * Signature for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidDetach()}.
109 *
110 * @deprecated Deprecated in Tapestry 5.3, use {@link #CONTAINING_PAGE_DID_DETACH_DESCRIPTION}
111 */
112 public static final TransformMethodSignature CONTAINING_PAGE_DID_DETACH_SIGNATURE = new TransformMethodSignature(
113 "containingPageDidDetach");
114
115 /**
116 * Description for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidDetach()}.
117 *
118 * @since 5.3
119 * @deprecated Deprecated in 5.3, with {@link org.apache.tapestry5.annotations.PageDetached}.
120 */
121 public static final MethodDescription CONTAINING_PAGE_DID_DETACH_DESCRIPTION = PlasticUtils.getMethodDescription(PageLifecycleListener.class, "containingPageDidDetach");
122
123 /**
124 * Signature for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidAttach()}.
125 *
126 * @deprecated Deprecated in Tapestry 5.3, use {@link #CONTAINING_PAGE_DID_ATTACH_DESCRIPTION}
127 */
128 public static final TransformMethodSignature CONTAINING_PAGE_DID_ATTACH_SIGNATURE = new TransformMethodSignature(
129 "containingPageDidAttach");
130
131 /**
132 * Description for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidAttach()}.
133 *
134 * @since 5.3
135 * @deprecated Deprecated in 5.3, along with {@link org.apache.tapestry5.annotations.PageAttached}.
136 */
137 public static final MethodDescription CONTAINING_PAGE_DID_ATTACH_DESCRIPTION = PlasticUtils.getMethodDescription(PageLifecycleListener.class, "containingPageDidAttach");
138
139 /**
140 * Signature for {@link org.apache.tapestry5.runtime.PageLifecycleListener#restoreStateBeforePageAttach()}
141 *
142 * @since 5.1.0.1
143 * @deprecated Deprecated in 5.3, with no replacement.
144 */
145 public static final TransformMethodSignature RESTORE_STATE_BEFORE_PAGE_ATTACH_SIGNATURE = new TransformMethodSignature(
146 "restoreStateBeforePageAttach");
147
148 /**
149 * Signature for {@link org.apache.tapestry5.runtime.Component#setupRender(MarkupWriter, Event)}.
150 *
151 * @see org.apache.tapestry5.annotations.SetupRender
152 * @deprecated Deprecated in Tapestry 5.3, use {@link #SETUP_RENDER_DESCRIPTION}
153 */
154 public static final TransformMethodSignature SETUP_RENDER_SIGNATURE = renderPhaseSignature("setupRender");
155
156 /**
157 * Description for {@link org.apache.tapestry5.runtime.Component#setupRender(MarkupWriter, Event)}.
158 *
159 * @see org.apache.tapestry5.annotations.SetupRender
160 * @since 5.3
161 */
162 public static final MethodDescription SETUP_RENDER_DESCRIPTION = renderPhaseDescription("setupRender");
163
164 /**
165 * Signature for {@link org.apache.tapestry5.runtime.Component#beginRender(MarkupWriter, Event)}.
166 *
167 * @see org.apache.tapestry5.annotations.BeginRender
168 * @deprecated Deprecated in Tapestry 5.3, use {@link #BEGIN_RENDER_DESCRIPTION}
169 */
170 public static final TransformMethodSignature BEGIN_RENDER_SIGNATURE = renderPhaseSignature("beginRender");
171
172 /**
173 * Description for {@link org.apache.tapestry5.runtime.Component#beginRender(MarkupWriter, Event)}.
174 *
175 * @see org.apache.tapestry5.annotations.BeginRender
176 * @since 5.3
177 */
178 public static final MethodDescription BEGIN_RENDER_DESCRIPTION = renderPhaseDescription("beginRender");
179
180 /**
181 * Signature for {@link org.apache.tapestry5.runtime.Component#beforeRenderTemplate(MarkupWriter, Event)}.
182 *
183 * @see org.apache.tapestry5.annotations.BeforeRenderTemplate
184 * @deprecated Deprecated in Tapestry 5.3, use {@link #BEFORE_RENDER_TEMPLATE_DESCRIPTION}
185 */
186 public static final TransformMethodSignature BEFORE_RENDER_TEMPLATE_SIGNATURE = renderPhaseSignature("beforeRenderTemplate");
187
188 /**
189 * Description for {@link org.apache.tapestry5.runtime.Component#beforeRenderTemplate(MarkupWriter, Event)}.
190 *
191 * @see org.apache.tapestry5.annotations.BeforeRenderTemplate
192 * @since 5.3
193 */
194 public static final MethodDescription BEFORE_RENDER_TEMPLATE_DESCRIPTION = renderPhaseDescription("beforeRenderTemplate");
195
196 /**
197 * Signature for {@link org.apache.tapestry5.runtime.Component#afterRenderTemplate(MarkupWriter, Event)}.
198 *
199 * @see org.apache.tapestry5.annotations.BeforeRenderTemplate
200 * @deprecated Deprecated in Tapestry 5.3, use {@link #AFTER_RENDER_TEMPLATE_DESCRIPTION}
201 */
202 public static final TransformMethodSignature AFTER_RENDER_TEMPLATE_SIGNATURE = renderPhaseSignature("afterRenderTemplate");
203
204 /**
205 * Description for {@link org.apache.tapestry5.runtime.Component#afterRenderTemplate(MarkupWriter, Event)}.
206 *
207 * @see org.apache.tapestry5.annotations.BeforeRenderTemplate
208 * @since 5.3
209 */
210 public static final MethodDescription AFTER_RENDER_TEMPLATE_DESCRIPTION = renderPhaseDescription("afterRenderTemplate");
211
212 /**
213 * Signature for {@link org.apache.tapestry5.runtime.Component#beforeRenderBody(MarkupWriter, Event)}.
214 *
215 * @see org.apache.tapestry5.annotations.BeforeRenderBody
216 * @deprecated Deprecated in Tapestry 5.3, use {@link #BEFORE_RENDER_BODY_DESCRIPTION}
217 */
218 public static final TransformMethodSignature BEFORE_RENDER_BODY_SIGNATURE = renderPhaseSignature("beforeRenderBody");
219
220 /**
221 * Description for {@link org.apache.tapestry5.runtime.Component#beforeRenderBody(MarkupWriter, Event)}.
222 *
223 * @see org.apache.tapestry5.annotations.BeforeRenderBody
224 * @since 5.3
225 */
226 public static final MethodDescription BEFORE_RENDER_BODY_DESCRIPTION = renderPhaseDescription("beforeRenderBody");
227
228 /**
229 * Signature for {@link org.apache.tapestry5.runtime.Component#afterRenderBody(MarkupWriter, Event)}.
230 *
231 * @see org.apache.tapestry5.annotations.AfterRenderBody
232 * @deprecated Deprecated in Tapestry 5.3, use {@link #AFTER_RENDER_BODY_DESCRIPTION}
233 */
234 public static final TransformMethodSignature AFTER_RENDER_BODY_SIGNATURE = renderPhaseSignature("afterRenderBody");
235
236
237 /**
238 * Description for {@link org.apache.tapestry5.runtime.Component#afterRenderBody(MarkupWriter, Event)}.
239 *
240 * @see org.apache.tapestry5.annotations.AfterRenderBody
241 * @since 5.3
242 */
243 public static final MethodDescription AFTER_RENDER_BODY_DESCRIPTION = renderPhaseDescription("afterRenderBody");
244
245 /**
246 * Signature for {@link org.apache.tapestry5.runtime.Component#afterRender(MarkupWriter, Event)}
247 *
248 * @see org.apache.tapestry5.annotations.AfterRender
249 * @deprecated Deprecated in Tapestry 5.3, use {@link #AFTER_RENDER_DESCRIPTION}
250 */
251 public static final TransformMethodSignature AFTER_RENDER_SIGNATURE = renderPhaseSignature("afterRender");
252
253 /**
254 * Description for {@link org.apache.tapestry5.runtime.Component#afterRender(MarkupWriter, Event)}
255 *
256 * @see org.apache.tapestry5.annotations.AfterRender
257 * @since 5.3
258 */
259 public static final MethodDescription AFTER_RENDER_DESCRIPTION = renderPhaseDescription("afterRender");
260
261 /**
262 * Signature for {@link org.apache.tapestry5.runtime.Component#cleanupRender(MarkupWriter, Event)}.
263 *
264 * @see org.apache.tapestry5.annotations.CleanupRender
265 * @deprecated Deprecated in Tapestry 5.3, use {@link #CLEANUP_RENDER_DESCRIPTION}
266 */
267 public static final TransformMethodSignature CLEANUP_RENDER_SIGNATURE = renderPhaseSignature("cleanupRender");
268
269 /**
270 * Description for {@link org.apache.tapestry5.runtime.Component#cleanupRender(MarkupWriter, Event)}.
271 *
272 * @see org.apache.tapestry5.annotations.CleanupRender
273 * @since 5.3
274 */
275 public static final MethodDescription CLEANUP_RENDER_DESCRIPTION = renderPhaseDescription("cleanupRender");
276
277 private static TransformMethodSignature renderPhaseSignature(String name)
278 {
279 return new TransformMethodSignature(Modifier.PUBLIC, "void", name, RENDER_PHASE_METHOD_PARAMETERS, null);
280 }
281
282 private static MethodDescription renderPhaseDescription(String name)
283 {
284 return new MethodDescription(Modifier.PUBLIC, "void", name, RENDER_PHASE_METHOD_PARAMETERS, null, null);
285 }
286
287 }