All Known Implementing Classes:
AbstractBinding, AbstractPollingBinding, BrokenBinding, ExpressionBinding, ExpressionStructureBinding, HttpBinding, PropertyBinding, QueryBinding

public interface Binding
A binding is associated with a target property and shares the lifecycle of the component (or shorter, in the designer-scope sessions). When created, a binding is given a consumer callback BindingFactory.create(BindingContext, BindingConfig) which it should call anytime it generates a value. The callback may be invoked on or off-queue.
  • Field Details

  • Method Details

    • resolveReferences

      default Collection<PropertyReference> resolveReferences()
    • startup

      void startup()
      Start up the binding. Will be called on-queue
    • shutdown

      void shutdown()
      Shut down the binding. Will be called on-queue
    • isBidirectional

      default boolean isBidirectional()
      Returns:
      true if this binding wants to be bidirectional. Note that if any transforms are present, then the binding will not operate in a bidirectional way.
    • shouldCoalesce

      default boolean shouldCoalesce()
      Returns:
      true if this binding wants to be bidirectional. Note that if any transforms are present, then the binding will not operate in a bidirectional way.
    • onTargetUpdated

      default void onTargetUpdated(PropertyTreeChangeEvent propertyChangeEvent)
      This will be called when the target property changes from a source other than the binding, if the binding returns true from isBidirectional() and there are no transforms present.
    • onUserRefresh

      void onUserRefresh()
      Called to prompt the binding to produce a value as soon as possible. This _not_ the normal way that bindings work. Bindings are expected to produce a value un-prompted after startup, and then again whenever they feel is appropriate. This is there to allow the user to call component.refreshBinding(property) and prompt a non-polling binding to run.