Package org.zkoss.bind.impl

## Class IndirectBinding

- java.lang.Object
- - org.zkoss.bind.impl.IndirectBinding

- All Implemented Interfaces:
    `java.io.Serializable`, `Binding`, `LoadBinding`, `ReferenceBinding`

      public abstract class IndirectBinding
      extends java.lang.Object
      implements ReferenceBinding, java.io.Serializable

  An indirect binding, a kind of reference binding, but it won't create a sub-tracking tree to get two way bindings, and it is used for children binding internally. i.e. this class is designed for some specific cases.
  Since:
    8.0.0
  Author:
    jumperchen
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IndirectBinding​(java.lang.Object data)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Map<java.lang.String,​java.lang.Object>` | `getArgs()` | Null is returned by default.
    `java.lang.Object` | `getData()` | Returns the data
    `protected abstract ListModel` | `getModel()` |
    `java.lang.String` | `getPropertyString()` | Null is returned by default.
    `java.lang.Object` | `getValue​(BindELContext ctx)` | Returns the referenced value.
    `void` | `invalidateCache()` | do nothing for this method
    `void` | `load​(BindContext ctx)` | do nothing for this method
    `void` | `setData​(java.lang.Object data)` | Sets the data
    `void` | `setValue​(BindELContext ctx, java.lang.Object value)` | Sets the value to referenced object

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

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

    - ### Methods inherited from interface org.zkoss.bind.sys.Binding

      `getBinder, getComponent`

- - ### Constructor Detail

    - #### IndirectBinding

          public IndirectBinding​(java.lang.Object data)

  - ### Method Detail

    - #### getData

          public java.lang.Object getData()

      Returns the data

    - #### getModel

          protected abstract ListModel getModel()

    - #### setData

          public void setData​(java.lang.Object data)

      Sets the data

    - #### load

          public void load​(BindContext ctx)

      do nothing for this method
      Specified by:
        `load` in interface `LoadBinding`
      Parameters:
        `ctx` - the binding runtime context

    - #### setValue

          public void setValue​(BindELContext ctx,
                               java.lang.Object value)

      Description copied from interface: `ReferenceBinding`
      Sets the value to referenced object
      Specified by:
        `setValue` in interface `ReferenceBinding`
      Parameters:
        `ctx` - the context to evaluate the reference expression.

    - #### getValue

          public java.lang.Object getValue​(BindELContext ctx)

      Description copied from interface: `ReferenceBinding`
      Returns the referenced value.
      Specified by:
        `getValue` in interface `ReferenceBinding`
      Parameters:
        `ctx` - the context to evaluate the reference expression.
      Returns:
        the referenced value.

    - #### getArgs

          public java.util.Map<java.lang.String,​java.lang.Object> getArgs()

      Null is returned by default. (never be used)
      Specified by:
        `getArgs` in interface `Binding`
      Returns:
        an argument `<tags, object>` pairs map(read only).

    - #### getPropertyString

          public java.lang.String getPropertyString()

      Null is returned by default. (never be used)
      Specified by:
        `getPropertyString` in interface `ReferenceBinding`
      Returns:
        the reference expression script of this binding.

    - #### invalidateCache

          public void invalidateCache()

      do nothing for this method
      Specified by:
        `invalidateCache` in interface `ReferenceBinding`