Package org.zkoss.bind

## Class BindComposer<T extends Component>

- java.lang.Object
- - org.zkoss.bind.BindComposer<T>

- All Implemented Interfaces:
    `java.io.Serializable`, `AuService`, `ComponentActivationListener`, `Composer<T>`, `ComposerExt<T>`

      public class BindComposer<T extends Component>
      extends java.lang.Object
      implements Composer<T>, ComposerExt<T>, java.io.Serializable, AuService, ComponentActivationListener

  Base composer to apply ZK Bind.
  Since:
    6.0.0
  Author:
    henrichen
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static java.lang.String` | `BINDER_ATTR` |
    `static java.lang.String` | `BINDER_ID` |
    `protected static java.lang.String` | `ID_ANNO` |
    `protected static java.lang.String` | `INIT_ANNO` |
    `static java.lang.String` | `ON_BIND_COMMAND` |
    `static java.lang.String` | `ON_BIND_COMMAND_UPLOAD` |
    `static java.lang.String` | `ON_BIND_GLOBAL_COMMAND` |
    `protected static java.lang.String` | `QUEUE_NAME_ANNO_ATTR` |
    `protected static java.lang.String` | `QUEUE_SCOPE_ANNO_ATTR` |
    `protected static java.lang.String` | `VALIDATION_MESSAGES_ATTR` |
    `protected static java.lang.String` | `VALUE_ANNO_ATTR` |
    `protected static java.lang.String` | `VIEW_MODEL_ATTR` |
    `static java.lang.String` | `VM_ID` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BindComposer()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addConverter​(java.lang.String name, Converter converter)` |
    `void` | `addValidator​(java.lang.String name, Validator validator)` |
    `void` | `didActivate​(Component comp)` | Called when a session has just been activated (and its value has been deserialized).
    `void` | `doAfterCompose​(T comp)` | Invokes after ZK loader creates this component, initializes it and composes all its children, if any.
    `ComponentInfo` | `doBeforeCompose​(Page page, Component parent, ComponentInfo compInfo)` | Invokes before composing a component.
    `void` | `doBeforeComposeChildren​(Component comp)` | Invokes after the component is instantiated and initialized, but before composing any child.
    `boolean` | `doCatch​(java.lang.Throwable ex)` | Called when an exception occurs when composing the component.
    `void` | `doFinally()` | Called after the component has been composed completely.
    `Binder` | `getBinder()` |
    `Converter` | `getConverter​(java.lang.String name)` |
    `Validator` | `getValidator​(java.lang.String name)` |
    `java.lang.Object` | `getViewModel()` |
    `void` | `notifyChange​(java.lang.Object bean, java.lang.String property)` |
    `boolean` | `service​(AuRequest request, boolean everError)` | Handles an AU request.
    `void` | `setViewModel​(java.lang.Object viewModel)` |
    `void` | `willPassivate​(Component comp)` | Called when a session is about to be passivated (and then serialize its value).

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

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

- - ### Field Detail

    - #### VM_ID

          public static final java.lang.String VM_ID

      See Also:
        Constant Field Values

    - #### BINDER_ID

          public static final java.lang.String BINDER_ID

      See Also:
        Constant Field Values

    - #### ON_BIND_COMMAND

          public static final java.lang.String ON_BIND_COMMAND

      See Also:
        Constant Field Values

    - #### ON_BIND_GLOBAL_COMMAND

          public static final java.lang.String ON_BIND_GLOBAL_COMMAND

      See Also:
        Constant Field Values

    - #### ON_BIND_COMMAND_UPLOAD

          public static final java.lang.String ON_BIND_COMMAND_UPLOAD

      See Also:
        Constant Field Values

    - #### ID_ANNO

          protected static final java.lang.String ID_ANNO

      See Also:
        Constant Field Values

    - #### INIT_ANNO

          protected static final java.lang.String INIT_ANNO

      See Also:
        Constant Field Values

    - #### VALUE_ANNO_ATTR

          protected static final java.lang.String VALUE_ANNO_ATTR

      See Also:
        Constant Field Values

    - #### VIEW_MODEL_ATTR

          protected static final java.lang.String VIEW_MODEL_ATTR

      See Also:
        Constant Field Values

    - #### BINDER_ATTR

          protected static final java.lang.String BINDER_ATTR

      See Also:
        Constant Field Values

    - #### VALIDATION_MESSAGES_ATTR

          protected static final java.lang.String VALIDATION_MESSAGES_ATTR

      See Also:
        Constant Field Values

    - #### QUEUE_NAME_ANNO_ATTR

          protected static final java.lang.String QUEUE_NAME_ANNO_ATTR

      See Also:
        Constant Field Values

    - #### QUEUE_SCOPE_ANNO_ATTR

          protected static final java.lang.String QUEUE_SCOPE_ANNO_ATTR

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### BindComposer

          public BindComposer()

  - ### Method Detail

    - #### getBinder

          public Binder getBinder()

    - #### setViewModel

          public void setViewModel​(java.lang.Object viewModel)

    - #### getViewModel

          public java.lang.Object getViewModel()

    - #### getConverter

          public Converter getConverter​(java.lang.String name)

    - #### getValidator

          public Validator getValidator​(java.lang.String name)

    - #### addConverter

          public void addConverter​(java.lang.String name,
                                   Converter converter)

    - #### addValidator

          public void addValidator​(java.lang.String name,
                                   Validator validator)

    - #### doBeforeCompose

          public ComponentInfo doBeforeCompose​(Page page,
                                               Component parent,
                                               ComponentInfo compInfo)
                                        throws java.lang.Exception

      Description copied from interface: `ComposerExt`
      Invokes before composing a component. If you want to manipulate the specified component info, you can use `ComponentInfo.duplicate()` to make a copy and then modify it such that it won't affect the default behavior.
      Specified by:
        `doBeforeCompose` in interface `ComposerExt<T extends Component>`
      Parameters:
        `page` - the page for composing this component.
        `parent` - the parent component, or null if it is the root component.
        `compInfo` - the component info used to instantiate the component. Notice that it is null if the page is rendered as ZK JSP, since `ComponentInfo` is not available under ZK JSP.
      Returns:
        the component info used to instantiate the component. In most case, it shall return compInfo. If null is returned, the component won't be instantiated. In other words, it is ignored.
      Throws:
        `java.lang.Exception`

    - #### doBeforeComposeChildren

          public void doBeforeComposeChildren​(Component comp)
                                       throws java.lang.Exception

      Description copied from interface: `ComposerExt`
      Invokes after the component is instantiated and initialized, but before composing any child.
      Specified by:
        `doBeforeComposeChildren` in interface `ComposerExt<T extends Component>`
      Parameters:
        `comp` - the component being composed
      Throws:
        `java.lang.Exception`

    - #### doAfterCompose

          public void doAfterCompose​(T comp)
                              throws java.lang.Exception

      Description copied from interface: `Composer`
      Invokes after ZK loader creates this component, initializes it and composes all its children, if any.
      Specified by:
        `doAfterCompose` in interface `Composer<T extends Component>`
      Parameters:
        `comp` - the component has been composed
      Throws:
        `java.lang.Exception`

    - #### doCatch

          public boolean doCatch​(java.lang.Throwable ex)
                          throws java.lang.Exception

      Description copied from interface: `ComposerExt`
      Called when an exception occurs when composing the component.

      If you don't want to handle the exception, simply returns false. `boolean doCatch(Throwable ex) {return false;}`

      An exception thrown in this method is simply logged. It has no effect on the execution. If you want to ignore the exception, just return true.

      Specified by:
        `doCatch` in interface `ComposerExt<T extends Component>`
      Parameters:
        `ex` - the exception being thrown
      Returns:
        whether to ignore the exception. If false is returned, the exception will be re-thrown. Note: once a composer's doCatch returns true, the exception will be ignored and it means doCatch of the following composers won't be called.
      Throws:
        `java.lang.Exception`

    - #### doFinally

          public void doFinally()
                         throws java.lang.Exception

      Description copied from interface: `ComposerExt`
      Called after the component has been composed completely. It is the last step of the composing.

      Note: it is always called even if `ComposerExt.doCatch(java.lang.Throwable)`, `ComposerExt.doBeforeComposeChildren(T)` or `Composer.doAfterCompose(T)` is not called (due to exceptions).

      Note: it is called after the onCreate event is posted, but before the onCreate and any other events are handled.

      An exception thrown in this method is simply logged. It has no effect on the execution.

      Specified by:
        `doFinally` in interface `ComposerExt<T extends Component>`
      Throws:
        `java.lang.Exception`

    - #### notifyChange

          public void notifyChange​(java.lang.Object bean,
                                   java.lang.String property)

    - #### didActivate

          public void didActivate​(Component comp)

      Description copied from interface: `ComponentActivationListener`
      Called when a session has just been activated (and its value has been deserialized).
      Specified by:
        `didActivate` in interface `ComponentActivationListener`

    - #### willPassivate

          public void willPassivate​(Component comp)

      Description copied from interface: `ComponentActivationListener`
      Called when a session is about to be passivated (and then serialize its value).
      Specified by:
        `willPassivate` in interface `ComponentActivationListener`

    - #### service

          public boolean service​(AuRequest request,
                                 boolean everError)

      Description copied from interface: `AuService`
      Handles an AU request.
      Specified by:
        `service` in interface `AuService`
      Parameters:
        `request` - the request sent from the client.
        `everError` - whether any error ever occurred before processing this request.
      Returns:
        whether the request has been processed. If false is returned, the default process (handled by the component) will take place.