Package org.zkoss.bind.sys.tracker

## Interface Tracker

- All Known Implementing Classes:
    `TrackerImpl`, `TrackerImplEx`

      public interface Tracker

  Bind tracker to maintain a binding dependency graph. e.g. @{a.b.c, save-onchange:d.e.f} then it forms a dependency from d.e.f to a.b.c for save.
  Since:
    6.0.0
  Author:
    henrichen

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addDependsOn​(Component srcComp, java.lang.String[] srcSeries, Binding srcBinding, Component dependsOnComp, java.lang.String[] dependsOnSeries)` | Add a depends-on tracking between the source property name series and depends-on property name series.
    `void` | `addTracking​(Component comp, java.lang.String[] series, Binding binding)` | Add a tracking that associate a binding to a dot series under the specified `Component`
    `java.util.Set<LoadBinding>` | `getDirectLoadBindings​(java.lang.Object base, java.lang.String propName)` | Returns all direct bindings that associated with the specified property.
    `java.util.Set<LoadBinding>` | `getKidBaseLoadBindings​(java.lang.Object base, java.lang.String propName)` | Returns all bindings that associated with the kid bases of specified property.
    `java.util.Set<LoadBinding>` | `getLoadBindings​(java.lang.Object base, java.lang.String propName)` | Returns all bindings that associated with the specified property.
    `void` | `removeTrackings​(java.util.Set<Component> comps)` | Remove all tracking associated with the specified `Component` set.
    `void` | `removeTrackings​(Component comp)` | Remove all tracking associated with the specified `Component`.
    `void` | `tieValue​(java.lang.Object comp, java.lang.Object base, java.lang.Object script, java.lang.Object propName, java.lang.Object value, java.lang.Object basePath)` | Tie a property to its corresponding value under the specified `Component`.

- - ### Method Detail

    - #### addTracking

          void addTracking​(Component comp,
                           java.lang.String[] series,
                           Binding binding)

      Add a tracking that associate a binding to a dot series under the specified `Component`
      Parameters:
        `comp` - the component with the associated binding
        `series` - the dot series as an array of property name
        `binding` - the associated binding

    - #### addDependsOn

          void addDependsOn​(Component srcComp,
                            java.lang.String[] srcSeries,
                            Binding srcBinding,
                            Component dependsOnComp,
                            java.lang.String[] dependsOnSeries)

      Add a depends-on tracking between the source property name series and depends-on property name series.
      Parameters:
        `srcComp` - the source component with the associated binding
        `srcSeries` - the dot series as an array of source property name.
        `srcBinding` - the associated binding
        `dependsOnSeries` - the dot series as an array of dependsOn property name.

    - #### removeTrackings

          void removeTrackings​(Component comp)

      Remove all tracking associated with the specified `Component`.
      Parameters:
        `comp` - the associated component

    - #### removeTrackings

          void removeTrackings​(java.util.Set<Component> comps)

      Remove all tracking associated with the specified `Component` set.
      Parameters:
        `comps` - the associated component set
      Since:
        7.0.2

    - #### tieValue

          void tieValue​(java.lang.Object comp,
                        java.lang.Object base,
                        java.lang.Object script,
                        java.lang.Object propName,
                        java.lang.Object value,
                        java.lang.Object basePath)

      Tie a property to its corresponding value under the specified `Component`.
      Parameters:
        `comp` - the associated component
        `base` - the base object of the property
        `script` - the field script
        `propName` - the resolved property name from the field script
        `value` - the value of the property
        `basePath` - the basePath script prior to the `script` field script (Since 8.0)

    - #### getLoadBindings

          java.util.Set<LoadBinding> getLoadBindings​(java.lang.Object base,
                                                     java.lang.String propName)

      Returns all bindings that associated with the specified property.
      Parameters:
        `base` - base object
        `propName` - property name
      Returns:
        all LoadBindings that associated with the specified property.

    - #### getDirectLoadBindings

          java.util.Set<LoadBinding> getDirectLoadBindings​(java.lang.Object base,
                                                           java.lang.String propName)

      Returns all direct bindings that associated with the specified property.
      Parameters:
        `base` - base object
        `propName` - property name
      Returns:
        all direct LoadBindings that associated with the specified property.
      Since:
        10.2.0

    - #### getKidBaseLoadBindings

          java.util.Set<LoadBinding> getKidBaseLoadBindings​(java.lang.Object base,
                                                            java.lang.String propName)

      Returns all bindings that associated with the kid bases of specified property.
      Parameters:
        `base` - base object
        `propName` - property name
      Returns:
        all bindings that associated with the kid bases of specified property.
      Since:
        10.2.0