Package org.zkoss.bind.annotation

## Annotation Type AfterCompose

-     @Target({METHOD,TYPE})
      @Retention(RUNTIME)
      public @interface AfterCompose

  Marker annotation to identify a life-cycle method in View Model. this method will be called after host component composition has been done (AfterCompose).
  Only one method could be tagged with this annotation.

  Inheritance: If you want binder to call super calss's afterCompose method also, you have to set `superclass()` to true, and super class's afterCompose method will be called first.
  In the other hand, if target bean class doesn't has an afterCompose method but it's super has, you'll have to annotate `AfterCompose` on the bean type.

  For example, in class hierarchy A(has @AfterCompose) <- B(has @AfterCompose, superclass true) <- C(no @AfterCompose) <- D (has @AfterCompose, superclass false). D is the last one.
  If D is the view model, will call D.afterCompose only
  If C is the view model, no method will be called
  If B is the view model, will call A.afterCompose then B.afterCompose
  If A is the view model, will call A.afterCompose

  Exception: if `superclass()` was been set to true and your afterCompose method is an overridden method to it's super's afterCompose method, ex:
  `X.m1() <- Y.m1()`
  then Binder will throw an exception due to the conflict of java language's overriding nature.

  Parameter Binding: for convenience, afterCompose method support several kinds of Parameter Annotations. Binder will weave it's context(Zul page annotation, Java EE Context) with method's parameters while invocation.
  The difference between @AfterCompose and @Init is - afterCompose has no zul declaration's part by it's self. Instead, it will share BindingParam's with @init declaration in zul. An example of afterCompose method signature might be looks like this:
  `viewModel="@id('vm') @init('BlaBlaVM', a='b')"`
  `@AfterCompose public void doAfterCompose(@BindingParam("a") String a)`

  Since:
    6.0.2
  Author:
    Ian Y.T Tsai(zanyking)
  See Also:
    `BindingParam`, `ExecutionParam`, `ExecutionArgParam`, `HeaderParam`, `CookieParam`, `QueryParam`, `ScopeParam`, `ContextParam`, `Default`, `Init`

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `boolean` | `superclass` |

- - ### Element Detail

    - #### superclass

          boolean superclass

      Default:
        false