View Javadoc

    1   /*
    2    * $Id: TagLibrary.java 502296 2007-02-01 17:33:39Z niallp $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.struts2.views;
    22
    23  import java.util.List;
    24
    25  import javax.servlet.http.HttpServletRequest;
    26  import javax.servlet.http.HttpServletResponse;
    27
    28  import com.opensymphony.xwork2.util.ValueStack;
    29
    30  /***
    31   * Provides Velocity and Freemarker implementation classes for a tag library
    32   */
    33  public interface TagLibrary {
    34
    35      /***
    36       * Gets a Java object that contains getters for the tag library's Freemarker models.
    37       * Called once per Freemarker template processing.
    38       *
    39       * @param stack The current value stack
    40       * @param req The HTTP request
    41       * @param res The HTTP response
    42       * @return The Java object containing the Freemarker model getter methods
    43       */
    44      public Object getFreemarkerModels(ValueStack stack, HttpServletRequest req, HttpServletResponse res);
    45
    46      /***
    47       * Gets a list of Velocity directive classes for the tag library.  Called once on framework
    48       * startup when initializing Velocity.
    49       *
    50       * @return A list of Velocity directive classes
    51       */
    52      public List<Class> getVelocityDirectiveClasses();
    53  }