org.apache.turbine.services.pull

## Interface PullService

- All Superinterfaces:
    Initable, Service
  All Known Implementing Classes:
    TurbinePullService

      public interface PullService
      extends Service

  The Pull Service manages the creation of application tools that are available to all templates in a Turbine application. By using the Pull Service you can avoid having to make Screens to populate a context for use in a particular template. The Pull Service creates a set of tools, as specified in the TR.props file. These tools can have global scope, request scope, authorized or session scope (i.e. stored in user temp hashmap) or persistent scope (i.e. stored in user perm hashmap) The standard way of referencing these global tools is through the toolbox handle. This handle is typically $toolbox, but can be specified in the TR.props file. So, for example, if you had a UI Manager tool which created a set of UI attributes from a properties file, and one of the properties was 'bgcolor', then you could access this UI attribute with $ui.bgcolor. The identifier that is given to the tool, in this case 'ui', can be specified as well.
  Version:
    $Id: PullService.java 1706239 2015-10-01 13:18:35Z tv $
  Author:
    Jason van Zyl, Henning P. Schmiedehausen, Peter Courcoux

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `AUTHORIZED_TOOL` Property Key for the authorized tools
    `static String` | `GLOBAL_TOOL` Property Key for the global tools
    `static String` | `PERSISTENT_TOOL` Property Key for the persistent tools
    `static String` | `REQUEST_TOOL` Property Key for the request tools
    `static String` | `SERVICE_NAME` The key under which this service is stored in TurbineServices.
    `static String` | `SESSION_TOOL` Property Key for the session tools
    `static String` | `SESSION_TOOLS_ATTRIBUTE_PREFIX` prefix for key used in the session to store session scope pull tools
    `static String` | `TOOL_RESOURCES_DIR_DEFAULT` Default value for the application tool resources.
    `static String` | `TOOL_RESOURCES_DIR_KEY` Property tag for application tool resources directory
    `static boolean` | `TOOLS_PER_REQUEST_REFRESH_DEFAULT` Default value for per request tool refreshing
    `static String` | `TOOLS_PER_REQUEST_REFRESH_KEY` Property tag for per request tool refreshing (for obvious reasons has no effect for per-request tools)

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getAbsolutePathToResourcesDirectory()` Return the absolute path of the resources directory used by application tools.
    `org.apache.velocity.context.Context` | `getGlobalContext()` Get the context containing global tools that will be use as part of the Turbine Pull Model.
    `String` | `getResourcesDirectory()` Return the resources directory.
    `void` | `populateContext(org.apache.velocity.context.Context context, PipelineData pipelineData)` Populate the given context with all request, session, authorized and persistent scope tools (it is assumed that the context already wraps the global context, and thus already contains the global tools).
    `void` | `populateContext(org.apache.velocity.context.Context context, RunData data)` Populate the given context with all request, session, authorized and persistent scope tools (it is assumed that the context already wraps the global context, and thus already contains the global tools).
    `void` | `releaseTools(org.apache.velocity.context.Context context)` Release tool instances from the given context to the object pool

    - ### Methods inherited from interface org.apache.turbine.services.Service

      `getConfiguration, getName, getProperties, setName, setServiceBroker`

    - ### Methods inherited from interface org.apache.turbine.services.Initable

      `getInit, init, init, setInitableBroker, shutdown`

- - ### Field Detail

    - #### SERVICE_NAME

          static final String SERVICE_NAME

      The key under which this service is stored in TurbineServices.
      See Also:
        Constant Field Values

    - #### GLOBAL_TOOL

          static final String GLOBAL_TOOL

      Property Key for the global tools
      See Also:
        Constant Field Values

    - #### REQUEST_TOOL

          static final String REQUEST_TOOL

      Property Key for the request tools
      See Also:
        Constant Field Values

    - #### SESSION_TOOL

          static final String SESSION_TOOL

      Property Key for the session tools
      See Also:
        Constant Field Values

    - #### AUTHORIZED_TOOL

          static final String AUTHORIZED_TOOL

      Property Key for the authorized tools
      See Also:
        Constant Field Values

    - #### PERSISTENT_TOOL

          static final String PERSISTENT_TOOL

      Property Key for the persistent tools
      See Also:
        Constant Field Values

    - #### TOOL_RESOURCES_DIR_KEY

          static final String TOOL_RESOURCES_DIR_KEY

      Property tag for application tool resources directory
      See Also:
        Constant Field Values

    - #### TOOL_RESOURCES_DIR_DEFAULT

          static final String TOOL_RESOURCES_DIR_DEFAULT

      Default value for the application tool resources. This is relative to the webapp root
      See Also:
        Constant Field Values

    - #### TOOLS_PER_REQUEST_REFRESH_KEY

          static final String TOOLS_PER_REQUEST_REFRESH_KEY

      Property tag for per request tool refreshing (for obvious reasons has no effect for per-request tools)
      See Also:
        Constant Field Values

    - #### TOOLS_PER_REQUEST_REFRESH_DEFAULT

          static final boolean TOOLS_PER_REQUEST_REFRESH_DEFAULT

      Default value for per request tool refreshing
      See Also:
        Constant Field Values

    - #### SESSION_TOOLS_ATTRIBUTE_PREFIX

          static final String SESSION_TOOLS_ATTRIBUTE_PREFIX

      prefix for key used in the session to store session scope pull tools
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getGlobalContext

          org.apache.velocity.context.Context getGlobalContext()

      Get the context containing global tools that will be use as part of the Turbine Pull Model.
      Returns:
        A Context object which contains the Global Tool instances.

    - #### populateContext

          void populateContext(org.apache.velocity.context.Context context,
                             PipelineData pipelineData)

      Populate the given context with all request, session, authorized and persistent scope tools (it is assumed that the context already wraps the global context, and thus already contains the global tools).
      Parameters:
        `context` - a Velocity Context to populate
        `pipelineData` - a RunData object for request specific data

    - #### populateContext

          void populateContext(org.apache.velocity.context.Context context,
                             RunData data)

      Populate the given context with all request, session, authorized and persistent scope tools (it is assumed that the context already wraps the global context, and thus already contains the global tools).
      Parameters:
        `context` - a Velocity Context to populate
        `data` - a RunData object for request specific data

    - #### getAbsolutePathToResourcesDirectory

          String getAbsolutePathToResourcesDirectory()

      Return the absolute path of the resources directory used by application tools.
      Returns:
        A directory path in the file system or null.

    - #### getResourcesDirectory

          String getResourcesDirectory()

      Return the resources directory. This is relative to the webapp context.
      Returns:
        A directory path to the resources directory relative to the webapp root or null.

    - #### releaseTools

          void releaseTools(org.apache.velocity.context.Context context)

      Release tool instances from the given context to the object pool
      Parameters:
        `context` - a Velocity Context to release tools from

Copyright © 2000-2015 The Apache Software Foundation. All Rights Reserved.