Package org.zkoss.zk.au

## Class AuResponse

- java.lang.Object
- - org.zkoss.zk.au.AuResponse

- Direct Known Subclasses:
    `AuAlert`, `AuAppendChild`, `AuBookmark`, `AuClearBusy`, `AuClearWrongValue`, `AuClientInfo`, `AuConfirmClose`, `AuDownload`, `AuEcho`, `AuEchoGlobal`, `AuFocus`, `AuHistoryState`, `AuInsertAfter`, `AuInsertBefore`, `AuInvoke`, `AuLoadCSS`, `AuLoadingbar`, `AuLoadScript`, `AuLog`, `AuMoveBy`, `AuMoveTo`, `AuNotification`, `AuObsolete`, `AuOuter`, `AuPrint`, `AuRemove`, `AuResizeBy`, `AuResizeTo`, `AuResizeWidget`, `AuScript`, `AuScrollBy`, `AuScrollIntoView`, `AuScrollTo`, `AuSelect`, `AuSendRedirect`, `AuSetAttribute`, `AuSetAttributes`, `AuSetTitle`, `AuShowBusy`, `AuSubmitForm`, `AuSyncErrorbox`, `AuToast`, `AuUuid`, `AuWrongValue`

      public class AuResponse
      extends java.lang.Object

  A response sent from the server to the client via `UiEngine`.

  Application developers rarely need access this class and its derived directly. Rather, use `Clients` instead. If you prefer to use the derives directly, you can use them with `Execution.addAuResponse(org.zkoss.zk.au.AuResponse)`.

  Author:
    tomyeh

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected static class` | `AuResponse.JSONComponent` |
    `protected static class` | `AuResponse.JSONDate` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.lang.String` | `_cmd` |
    `protected java.lang.Object[]` | `_data` | Either String or DeferredValue.
    `static int` | `SC_ACTIVATION_TIMEOUT` | ZK-Error (5502) indicating the request is aborted, because it is waiting too long for the completion of the previous request.
    `static int` | `SC_OUT_OF_SEQUENCE` | ZK-Error (5501) indicating the request is out-of-sequence.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AuResponse​(java.lang.String cmd)` | Constructs a component-independent response.
    `AuResponse​(java.lang.String cmd, java.lang.Object data)` | Constructs a component-independent response.
    `AuResponse​(java.lang.String cmd, java.lang.Object[] data)` | Constructs a component-independent response.
    `AuResponse​(java.lang.String cmd, Component depends, java.lang.Object data)` | Constructs a response with one or zero data.
    `AuResponse​(java.lang.String cmd, Component depends, java.lang.Object[] data)` | Constructs a response with multiple data.
    `AuResponse​(java.lang.String cmd, Page depends, java.lang.Object data)` | Constructs a response with single data.
    `AuResponse​(java.lang.String cmd, Page depends, java.lang.Object[] data)` | Constructs a response with multiple data.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object o)` |
    `java.lang.String` | `getCommand()` | Returns the command of this response (never null).
    `java.lang.Object` | `getDepends()` | Returns the component or page that this response depends on.
    `java.util.List<java.lang.Object>` | `getEncodedData()` | Returns the evaluated result of the associated data of this response (might be null).
    `java.lang.String` | `getOverrideKey()` | Returns the override key.
    `java.lang.Object[]` | `getRawData()` | Returns the associated data of this response in the original format (might be null).
    `int` | `hashCode()` |
    `java.lang.String` | `toString()` |

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### SC_OUT_OF_SEQUENCE

          public static final int SC_OUT_OF_SEQUENCE

      ZK-Error (5501) indicating the request is out-of-sequence. ZK-Error is returned as the response header of a failed AU request.
      Since:
        5.0.4
      See Also:
        Constant Field Values

    - #### SC_ACTIVATION_TIMEOUT

          public static final int SC_ACTIVATION_TIMEOUT

      ZK-Error (5502) indicating the request is aborted, because it is waiting too long for the completion of the previous request. ZK-Error is returned as the response header of a failed AU request.
      Since:
        6.5.2
      See Also:
        Constant Field Values

    - #### _cmd

          protected java.lang.String _cmd

    - #### _data

          protected java.lang.Object[] _data

      Either String or DeferredValue.

  - ### Constructor Detail

    - #### AuResponse

          public AuResponse​(java.lang.String cmd)

      Constructs a component-independent response.
      Since:
        5.0.0 (becomes public)

    - #### AuResponse

          public AuResponse​(java.lang.String cmd,
                            java.lang.Object data)

      Constructs a component-independent response.
      Parameters:
        `data` - the data. It can be null, String, Date, and any kind of objects that the client accepts (marshaled by JSON).
      Since:
        5.0.0 (becomes public)

    - #### AuResponse

          public AuResponse​(java.lang.String cmd,
                            java.lang.Object[] data)

      Constructs a component-independent response.
      Since:
        5.0.0 (becomes public)

    - #### AuResponse

          public AuResponse​(java.lang.String cmd,
                            Component depends,
                            java.lang.Object data)

      Constructs a response with one or zero data.
      Parameters:
        `depends` - specifies whether this response depends on whether the depends component. If depends is not null, this response shall be purged if the depends component is removed. If null, this response is called component-independent, and always sent to the client.

        Note: info of the depends component doesn't send to the client. It is used only to optimize what responses to send.

        `data` - specifies the data to be sent. If null, no data at all.
      Since:
        5.0.0 (becomes public)

    - #### AuResponse

          public AuResponse​(java.lang.String cmd,
                            Component depends,
                            java.lang.Object[] data)

      Constructs a response with multiple data.
      Since:
        5.0.0 (becomes public)

    - #### AuResponse

          public AuResponse​(java.lang.String cmd,
                            Page depends,
                            java.lang.Object data)

      Constructs a response with single data.
      Since:
        5.0.0 (becomes public)

    - #### AuResponse

          public AuResponse​(java.lang.String cmd,
                            Page depends,
                            java.lang.Object[] data)

      Constructs a response with multiple data.
      Parameters:
        `data` - an array of data (null to ignore). Each element must be an instance of String, `DeferredValue` or null.
      Throws:
        `java.lang.IllegalArgumentException` - if an element of data is neither String nor DeferredValue.
      Since:
        5.0.0 (becomes public)

  - ### Method Detail

    - #### getCommand

          public java.lang.String getCommand()

      Returns the command of this response (never null).

    - #### getEncodedData

          public java.util.List<java.lang.Object> getEncodedData()

      Returns the evaluated result of the associated data of this response (might be null).

      Note: when this method is called, `DeferredValue` will be evaluated. Thus, don't call it until the rendering phase. If you want to access it other than the render phase, use `getRawData()` instead.

      Note: it is a copy, so any modification to it won't affect the data of this response.

      Since:
        5.0.0
      See Also:
        `getRawData()`

    - #### getRawData

          public java.lang.Object[] getRawData()

      Returns the associated data of this response in the original format (might be null).

      Note: it is a readonly array. Don't change its value.

      Since:
        3.0.5
      See Also:
        `getEncodedData()`

    - #### getDepends

          public final java.lang.Object getDepends()

      Returns the component or page that this response depends on. If it is not null and the depends component/page is removed, this response shall be removed, too.

      Note: the returned object is either a `Component` or a `Page`.

    - #### getOverrideKey

          public java.lang.String getOverrideKey()

      Returns the override key. If null, this response will be appended. If not null, it overrides the previous response, if any, with the same override key and the same depends (`getDepends()`).

      Default: return null. The derived class shall override this method if it prefers to send the last response in the same category.

      Notice that if depends is null and the override key is not null, they are sharing a single namespace of an execution.

      Notice that if `AbstractComponent.response(String,AuResponse)` is called, this override key is ignored (and the first argument of the invocation is used).

      Since:
        5.0.2

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public final boolean equals​(java.lang.Object o)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`