Package org.apache.struts2.ognl

# Class OgnlValueStackFactory

java.lang.Object
org.apache.struts2.ognl.OgnlValueStackFactory

All Implemented Interfaces:
  `ValueStackFactory`

public class OgnlValueStackFactory extends Object implements ValueStackFactory
Creates an Ognl value stack

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected RootAccessor`
  `compoundRootAccessor`
  `protected Container`
  `container`
  `protected TextProvider`
  `textProvider`
  `protected XWorkConverter`
  `xworkConverter`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OgnlValueStackFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ValueStack`
  `createValueStack()`
  Get a new instance of `ValueStack`
  `ValueStack`
  `createValueStack(ValueStack stack)`
  Get a new instance of `ValueStack`
  `protected ValueStack`
  `createValueStack(ValueStack stack, boolean useTextProvider)`
  `protected void`
  `registerAdditionalMethodAccessors()`
  Note that the default `MethodAccessor` for handling `Object` methods is registered in `setMethodAccessor(ognl.MethodAccessor)` and can be configured using the extension point `StrutsConstants.STRUTS_METHOD_ACCESSOR`.
  `protected void`
  `registerNullHandlers()`
  `protected void`
  `registerPropertyAccessors()`
  `protected void`
  `setCompoundRootAccessor(RootAccessor compoundRootAccessor)`
  `protected void`
  `setContainer(Container container)`
  `PropertyAccessor`'s, `MethodAccessor`'s and `NullHandler`'s are registered on a per-class basis by defining a bean adhering to the corresponding interface with a name corresponding to the class it is intended to handle.
  `protected void`
  `setMethodAccessor(ognl.MethodAccessor methodAccessor)`
  `protected void`
  `setTextProvider(TextProvider textProvider)`
  `protected void`
  `setXWorkConverter(XWorkConverter converter)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### xworkConverter

    protected XWorkConverter xworkConverter

  - ### compoundRootAccessor

    protected RootAccessor compoundRootAccessor

  - ### textProvider

    protected TextProvider textProvider

  - ### container

    protected Container container

- ## Constructor Details

  - ### OgnlValueStackFactory

    public OgnlValueStackFactory()

- ## Method Details

  - ### setXWorkConverter

    protected void setXWorkConverter(XWorkConverter converter)

  - ### setCompoundRootAccessor

    protected void setCompoundRootAccessor(RootAccessor compoundRootAccessor)

  - ### setMethodAccessor

    protected void setMethodAccessor(ognl.MethodAccessor methodAccessor)

  - ### setTextProvider

    protected void setTextProvider(TextProvider textProvider)

  - ### createValueStack

    public ValueStack createValueStack()
    Description copied from interface: `ValueStackFactory`
    Get a new instance of `ValueStack`
    Specified by:
      `createValueStack` in interface `ValueStackFactory`
    Returns:
      a new `ValueStack`.

  - ### createValueStack

    public ValueStack createValueStack(ValueStack stack)
    Description copied from interface: `ValueStackFactory`
    Get a new instance of `ValueStack`
    Specified by:
      `createValueStack` in interface `ValueStackFactory`
    Parameters:
      `stack` - an existing stack to include.
    Returns:
      a new `ValueStack`.

  - ### createValueStack

    protected ValueStack createValueStack(ValueStack stack, boolean useTextProvider)

  - ### setContainer

    protected void setContainer(Container container) throws ClassNotFoundException
    `PropertyAccessor`'s, `MethodAccessor`'s and `NullHandler`'s are registered on a per-class basis by defining a bean adhering to the corresponding interface with a name corresponding to the class it is intended to handle.

    The only exception is the `MethodAccessor` for the `Object` type which has its own extension point.

    Throws:
      `ClassNotFoundException`
    See Also:
      - `setMethodAccessor(MethodAccessor)`
      - `registerAdditionalMethodAccessors()`

  - ### registerAdditionalMethodAccessors

    protected void registerAdditionalMethodAccessors()
    Note that the default `MethodAccessor` for handling `Object` methods is registered in `setMethodAccessor(ognl.MethodAccessor)` and can be configured using the extension point `StrutsConstants.STRUTS_METHOD_ACCESSOR`.

  - ### registerNullHandlers

    protected void registerNullHandlers() throws ClassNotFoundException
    Throws:
      `ClassNotFoundException`

  - ### registerPropertyAccessors

    protected void registerPropertyAccessors() throws ClassNotFoundException
    Throws:
      `ClassNotFoundException`