blob: 3cdfa52e427076e19830b1a160d358e4671329dd [file] [log] [blame]
// Copyright 2006, 2007, 2008, 2009, 2011 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package org.apache.tapestry5.services;
import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.internal.structure.PageResetListener;
import org.apache.tapestry5.plastic.MethodDescription;
import org.apache.tapestry5.plastic.PlasticUtils;
import org.apache.tapestry5.runtime.Component;
import org.apache.tapestry5.runtime.ComponentEvent;
import org.apache.tapestry5.runtime.Event;
import org.apache.tapestry5.runtime.PageLifecycleListener;
import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
import java.lang.reflect.Modifier;
/**
* Constants used by implementations {@link ComponentClassTransformWorker2}.
* <p/>
* Note: render phase methods on transformed components will not be invoked <em>unless</em>
* {@linkplain org.apache.tapestry5.model.MutableComponentModel#addRenderPhase(Class) the component model is updated to
* identify the use of the corresponding render phase}. This represents an optimization introduced in Tapestry 5.1.
*/
public final class TransformConstants
{
// Shared parameters of a whole bunch of lifecycle methods, representing the different
// component render states.
private static final String[] RENDER_PHASE_METHOD_PARAMETERS =
{MarkupWriter.class.getName(), Event.class.getName()};
/**
* Description for
* {@link org.apache.tapestry5.runtime.Component#dispatchComponentEvent(org.apache.tapestry5.runtime.ComponentEvent)}
* .
*
* @see org.apache.tapestry5.annotations.OnEvent
* @since 5.3
*/
public static final MethodDescription DISPATCH_COMPONENT_EVENT_DESCRIPTION = PlasticUtils.getMethodDescription(
Component.class, "dispatchComponentEvent", ComponentEvent.class);
/**
* Description for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidLoad()}.
*
* @since 5.3
*/
public static final MethodDescription CONTAINING_PAGE_DID_LOAD_DESCRIPTION = PlasticUtils.getMethodDescription(
PageLifecycleListener.class, "containingPageDidLoad");
/**
* Description for {@link org.apache.tapestry5.internal.structure.PageResetListener#containingPageDidReset()}. Note that the {@link PageResetListener}
* interface is not automatically implemented by components. ]
*
* @see org.apache.tapestry5.annotations.PageReset
* @see org.apache.tapestry5.internal.transform.PageResetAnnotationWorker
* @since 5.3
*/
public static final MethodDescription CONTAINING_PAGE_DID_RESET_DESCRIPTION = PlasticUtils.getMethodDescription(PageResetListener.class, "containingPageDidReset");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#postRenderCleanup()}.
*
* @since 5.3
*/
public static final MethodDescription POST_RENDER_CLEANUP_DESCRIPTION = PlasticUtils.getMethodDescription(Component.class, "postRenderCleanup");
/**
* Description for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidDetach()}.
*
* @since 5.3
*/
public static final MethodDescription CONTAINING_PAGE_DID_DETACH_DESCRIPTION = PlasticUtils.getMethodDescription(PageLifecycleListener.class, "containingPageDidDetach");
/**
* Description for {@link org.apache.tapestry5.runtime.PageLifecycleListener#containingPageDidAttach()}.
*
* @since 5.3
*/
public static final MethodDescription CONTAINING_PAGE_DID_ATTACH_DESCRIPTION = PlasticUtils.getMethodDescription(PageLifecycleListener.class, "containingPageDidAttach");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#setupRender(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.SetupRender
* @since 5.3
*/
public static final MethodDescription SETUP_RENDER_DESCRIPTION = renderPhaseDescription("setupRender");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#beginRender(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.BeginRender
* @since 5.3
*/
public static final MethodDescription BEGIN_RENDER_DESCRIPTION = renderPhaseDescription("beginRender");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#beforeRenderTemplate(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.BeforeRenderTemplate
* @since 5.3
*/
public static final MethodDescription BEFORE_RENDER_TEMPLATE_DESCRIPTION = renderPhaseDescription("beforeRenderTemplate");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#afterRenderTemplate(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.BeforeRenderTemplate
* @since 5.3
*/
public static final MethodDescription AFTER_RENDER_TEMPLATE_DESCRIPTION = renderPhaseDescription("afterRenderTemplate");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#beforeRenderBody(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.BeforeRenderBody
* @since 5.3
*/
public static final MethodDescription BEFORE_RENDER_BODY_DESCRIPTION = renderPhaseDescription("beforeRenderBody");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#afterRenderBody(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.AfterRenderBody
* @since 5.3
*/
public static final MethodDescription AFTER_RENDER_BODY_DESCRIPTION = renderPhaseDescription("afterRenderBody");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#afterRender(MarkupWriter, Event)}
*
* @see org.apache.tapestry5.annotations.AfterRender
* @since 5.3
*/
public static final MethodDescription AFTER_RENDER_DESCRIPTION = renderPhaseDescription("afterRender");
/**
* Description for {@link org.apache.tapestry5.runtime.Component#cleanupRender(MarkupWriter, Event)}.
*
* @see org.apache.tapestry5.annotations.CleanupRender
* @since 5.3
*/
public static final MethodDescription CLEANUP_RENDER_DESCRIPTION = renderPhaseDescription("cleanupRender");
private static MethodDescription renderPhaseDescription(String name)
{
return new MethodDescription(Modifier.PUBLIC, "void", name, RENDER_PHASE_METHOD_PARAMETERS, null, null);
}
}