    001    // Copyright 2010 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    /**
    018     * An event handler method may return an instance of this class to trigger the rendering
    019     * of a particular page without causing a redirect to that page.
    020     *
    021     * @since 5.2.0
    022     *
    023     */
    024    public final class StreamPageContent
    025    {
    026        private final Class<?> pageClass;
    027        private final Object[] pageActivationContext;
    028
    029        /**
    030         *
    031         * @param pageClass class of the page to render
    032         */
    033        public StreamPageContent(final Class<?> pageClass)
    034        {
    035            this(pageClass, (Object[]) null);
    036        }
    037
    038        /**
    039         *
    040         * @param pageClass class of the page to render
    041         * @param pageActivationContext activation context of the page
    042         */
    043        public StreamPageContent(final Class<?> pageClass, final Object... pageActivationContext)
    044        {
    045            super();
    046            this.pageClass = pageClass;
    047            this.pageActivationContext = pageActivationContext;
    048        }
    049
    050        /**
    051         * Returns the class of the page to render.
    052         */
    053        public Class<?> getPageClass()
    054        {
    055            return this.pageClass;
    056        }
    057
    058        /**
    059         * Returns the activation context of the page.
    060         */
    061        public Object[] getPageActivationContext()
    062        {
    063            return this.pageActivationContext;
    064        }
    065    }