# Interface NotifiableBinding

All Superinterfaces:
  `Binding`

public interface NotifiableBinding extends Binding
Internal contract every generated `Binding` implementation provides so `Binders#notifyChanged(Object)` can route a model mutation to the bindings that observe it. Application code never references this directly -- the `Binding` interface remains the public handle returned from `Binders.bind`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `matches(Object model)`
  True when this binding's source object IS `model` (identity, not equality).
  `String`
  `modelTypeName()`
  `model.getClass().getName()` -- the registry key `Binders.notifyChanged` uses to find the bindings that care about this model class.

  ### Methods inherited from interface Binding

  `commit, disconnect, getValidator, refresh`

- ## Method Details

  - ### modelTypeName

    String modelTypeName()
    `model.getClass().getName()` -- the registry key `Binders.notifyChanged` uses to find the bindings that care about this model class. Stored at bind time so it survives obfuscation: the value is whatever `getName()` returned at bind, which is guaranteed to match `notifyChanged`'s lookup within a single execution.

  - ### matches

    boolean matches(Object model)
    True when this binding's source object IS `model` (identity, not equality). The notification fan-out uses identity so multiple independent instances of the same `@Bindable` class don't refresh each other.