Package org.zkoss.bind.sys.tracker

## Interface TrackerNode

- All Known Implementing Classes:
    `TrackerNodeImpl`

      public interface TrackerNode

  Tracker Node in a binding dependency graph.
  Since:
    6.0.0
  Author:
    henrichen

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addAssociate​(TrackerNode srcnode)` | add associated TrackerNode with this node
    `void` | `addBinding​(Binding binding)` | add associated Binding with this node
    `void` | `addDependent​(java.lang.Object script, TrackerNode dependent)` | Add a dependent node of the field script.
    `java.util.Set<TrackerNode>` | `getAssociates()` | Returns all associate nodes of this node.
    `java.lang.Object` | `getBean()` | Returns associated bean of this TrackerNode.
    `java.util.Set<Binding>` | `getBindings()` | Returns all associated Bindings.
    `TrackerNode` | `getDependent​(java.lang.Object script)` | Returns the associated TrackerNode of the associated field script of this tracker node.
    `java.util.Set<TrackerNode>` | `getDependents()` | Returns all dependent nodes of this node.
    `java.util.Set<TrackerNode>` | `getDependents​(java.lang.Object script)` | Returns all associated TrackerNodes of the associated field script of this tracker node.
    `java.util.Set<TrackerNode>` | `getDirectDependents()` | Returns all direct dependent nodes of this node.
    `java.lang.Object` | `getFieldScript()` | Returns associated field script of this TrackerNode.
    `java.util.Set<LoadBinding>` | `getLoadBindings()` | Returns associated LoadBindings except ReferenceBindings.
    `java.util.Map<java.lang.Object,​?>` | `getPropNameMapping()` | get property, tracker node mapping map
    `java.util.Set<ReferenceBinding>` | `getReferenceBindings()` | Returns associated ReferenceBindings.
    `default boolean` | `isPropNameNodeMapped​(TrackerNode trackerNode)` | Internal used only
    `TrackerNode` | `removeDependent​(java.lang.Object script)` | Remove a dependent node of this node per the specified field script.
    `void` | `setBean​(java.lang.Object bean)` | Sets associated bean of this TrackerNode.
    `void` | `tieProperty​(java.lang.Object propName, TrackerNode trackerNode)` | tie property with tracker node of this node.

- - ### Method Detail

    - #### getDependents

          java.util.Set<TrackerNode> getDependents()

      Returns all dependent nodes of this node.
      Returns:
        all precedent nodes of this node.

    - #### getDependents

          java.util.Set<TrackerNode> getDependents​(java.lang.Object script)

      Returns all associated TrackerNodes of the associated field script of this tracker node.
      Parameters:
        `script` - field script to get the dependent
      Returns:
        all linked TrackerNodes
      Since:
        8.0.0

    - #### getDirectDependents

          java.util.Set<TrackerNode> getDirectDependents()

      Returns all direct dependent nodes of this node.
      Returns:
        all direct dependent nodes of this node.

    - #### getAssociates

          java.util.Set<TrackerNode> getAssociates()

      Returns all associate nodes of this node.
      Returns:
        all associate nodes of this node.

    - #### getDependent

          TrackerNode getDependent​(java.lang.Object script)

      Returns the associated TrackerNode of the associated field script of this tracker node.
      Parameters:
        `script` - field script to get the dependent
      Returns:
        the linked TrackerNode

    - #### addDependent

          void addDependent​(java.lang.Object script,
                            TrackerNode dependent)

      Add a dependent node of the field script.
      Parameters:
        `script` - the field script to link this track node to its dependent nodes.
        `dependent` - the TrackerNode to be added

    - #### removeDependent

          TrackerNode removeDependent​(java.lang.Object script)

      Remove a dependent node of this node per the specified field script.
      Parameters:
        `script` - field script that link to the to be removed dependent tracker node.
      Returns:
        the removed TrackerNode

    - #### addBinding

          void addBinding​(Binding binding)

      add associated Binding with this node
      Parameters:
        `binding` -

    - #### getBindings

          java.util.Set<Binding> getBindings()

      Returns all associated Bindings.
      Returns:
        associated Bindings.

    - #### getLoadBindings

          java.util.Set<LoadBinding> getLoadBindings()

      Returns associated LoadBindings except ReferenceBindings.
      Returns:
        associated LoadBindings except ReferenceBindings.
      Since:
        6.0.1

    - #### getReferenceBindings

          java.util.Set<ReferenceBinding> getReferenceBindings()

      Returns associated ReferenceBindings.
      Returns:
        associated ReferenceBindings.
      Since:
        6.0.1

    - #### getBean

          java.lang.Object getBean()

      Returns associated bean of this TrackerNode.
      Returns:
        associated bean of this TrackerNode.

    - #### setBean

          void setBean​(java.lang.Object bean)

      Sets associated bean of this TrackerNode.
      Parameters:
        `bean` - the associated bean.

    - #### getFieldScript

          java.lang.Object getFieldScript()

      Returns associated field script of this TrackerNode.
      Returns:
        associated field script of this TrackerNode.

    - #### addAssociate

          void addAssociate​(TrackerNode srcnode)

      add associated TrackerNode with this node
      Parameters:
        `srcnode` -
      Since:
        6.5.5

    - #### tieProperty

          void tieProperty​(java.lang.Object propName,
                           TrackerNode trackerNode)

      tie property with tracker node of this node.
      Parameters:
        `propName` -
        `trackerNode` -
      Since:
        6.5.5

    - #### getPropNameMapping

          java.util.Map<java.lang.Object,​?> getPropNameMapping()

      get property, tracker node mapping map
      Since:
        6.5.5

    - #### isPropNameNodeMapped

          default boolean isPropNameNodeMapped​(TrackerNode trackerNode)

      Internal used only
      Parameters:
        `trackerNode` -
      Returns:
        boolean is the tracker node with specific propName in bracket mapped or not
      Since:
        9.6.0