Class DSResponse

All Implemented Interfaces:
HasHandlers

public class DSResponse extends RPCResponse
Response sent by the server in response to a DataSource request. Contains all the properties available on the basic RPCResponse, in addition to the properties listed here.
  • Constructor Details

  • Method Details

    • getOrCreateRef

      public static DSResponse getOrCreateRef(JavaScriptObject jsObj)
    • getData

      public Record[] getData()
      For "fetch" operations, this is the array of Records fetched. For "update", "add", and "remove" operations, this is typically an array containing a single Record representing the record that was updated, added, or removed.
      Returns:
      Current data value. Default value is null
    • getDataAsRecordList

      public RecordList getDataAsRecordList()
      For "fetch" operations, this is the array of Records fetched. For "update", "add", and "remove" operations, this is typically an array containing a single Record representing the record that was updated, added, or removed.
      Returns:
      Current data value. Default value is null
    • setDataSource

      public DSResponse setDataSource(String dataSource)
      The DataSource of this DSResponse.
      Parameters:
      dataSource - New dataSource value. Default value is null
      Returns:
      DSResponse instance, for chaining setter calls
    • getDataSource

      public String getDataSource()
      The DataSource of this DSResponse.
      Returns:
      Current dataSource value. Default value is null
    • getEndRow

      public Integer getEndRow()
      End row of returned server results, when using paged result fetching

      Note that startRow and endRow are zero-based, inclusive at the beginning and exclusive at the end (like substring), so startRow: 0, endRow: 2 is a response containing two records.

      Returns:
      Current endRow value. Default value is null
    • getEstimatedTotalRows

      public String getEstimatedTotalRows()
      This attribute may be set for responses where progressive loading is active to indicate the estimated true total row count for the data set. In progressive loading mode, totalRows can be thought of as an indication of the last row the user is allowed to request (EG by scrolling through a databound ListGrid), whereas estimatedTotalRows can convey the server's knowledge of the number of matching rows to the client.

      This value may be validly set to a String in the following format:

      • "500+": There are at least 500 records
      • "-500": There are fewer than 500 records
      • "450-500": There are between 450 and 500 records
      • "~500": There are approximately 500 records
      • "500": There are exactly than 500 records
      If you are using a Smart GWT server side dataSource that supports the DataSource.progressiveLoadingThreshold feature, this property will be populated automatically to an exact value if a row count query was performed and the result exceeded the progressiveLoadingThreshold causing progressiveLoading to be enabled.

      Developers may also write custom dataSource logic to populate this attribute if desired

      Returns:
      Current estimatedTotalRows value. Default value is null
    • getFromOfflineCache

      public Boolean getFromOfflineCache()
      If set, indicates that this response came from the offline cache, not the server. This flag is the only reliable way for application code to determine the source of a response.
      Returns:
      Current fromOfflineCache value. Default value is null
    • getHttpHeaders

      public Map getHttpHeaders()
      HTTP headers returned by the server as a map from header name to header value.

      Headers are available only when the default RPCTransport "xmlHttpRequest" is in use, and browsers may limit access to headers for cross-domain requests or in other security-sensitive scenarios.

      Overrides:
      getHttpHeaders in class RPCResponse
      Returns:
      Current httpHeaders value. Default value is null
    • getInvalidateCache

      public Boolean getInvalidateCache()
      Optional flag that can be set by the server to force ResultSets to drop any caches of records from the DataSource that was the target of the operation.
      Returns:
      Current invalidateCache value. Default value is null
      See Also:
    • getOfflineTimestamp

      public Integer getOfflineTimestamp()
      Timestamp (millisecond value) to indicate when this dsResponse was cached in offline storage. Not applicable if the response has never been stored offline.
      Returns:
      Current offlineTimestamp value. Default value is null
    • setOperationId

      public DSResponse setOperationId(String operationId)
      The operation ID of the request corresponding to this DSResponse.
      Parameters:
      operationId - New operationId value. Default value is null
      Returns:
      DSResponse instance, for chaining setter calls
    • getOperationId

      public String getOperationId()
      The operation ID of the request corresponding to this DSResponse.
      Returns:
      Current operationId value. Default value is null
    • setOperationType

      public DSResponse setOperationType(DSOperationType operationType)
      The operation type of the request corresponding to this DSResponse.
      Parameters:
      operationType - New operationType value. Default value is null
      Returns:
      DSResponse instance, for chaining setter calls
    • getOperationType

      public DSOperationType getOperationType()
      The operation type of the request corresponding to this DSResponse.
      Returns:
      Current operationType value. Default value is null
    • getProgressiveLoading

      public Boolean getProgressiveLoading()
      This attribute may be set to indicate that progressive loading is enabled, for a paged data fetch, and as such the total row count is not guaranteed to be accurate. Client side code, including the ResultSet.lengthIsProgressive() method may make use of this attribute.

      The Smart GWT server will automatically set this property whenever progressive loading is enabled. Developers may also set this property themselves for custom progressive loading implementations.

      Returns:
      Current progressiveLoading value. Default value is null
    • setQueueStatus

      public DSResponse setQueueStatus(int queueStatus)
      An extra property of each DSResponse to a queued request that indicates whether the queue as a whole succeeded. A queueStatus of STATUS_SUCCESS, or 0, indicates that the queue succeeded whereas a queueStatus of STATUS_FAILURE, or -1, indicates that the queue failed.

      For example, if two "update" requests are sent in a queue and the first succeeded, but the second failed validation, then both DSResponses' queueStatus would be -1, but the status of the first would be STATUS_SUCCESS and the status of the second would be an error code such as STATUS_VALIDATION_ERROR.

      Parameters:
      queueStatus - New queueStatus value. Default value is see below
      Returns:
      DSResponse instance, for chaining setter calls
      See Also:
    • getQueueStatus

      public int getQueueStatus()
      An extra property of each DSResponse to a queued request that indicates whether the queue as a whole succeeded. A queueStatus of STATUS_SUCCESS, or 0, indicates that the queue succeeded whereas a queueStatus of STATUS_FAILURE, or -1, indicates that the queue failed.

      For example, if two "update" requests are sent in a queue and the first succeeded, but the second failed validation, then both DSResponses' queueStatus would be -1, but the status of the first would be STATUS_SUCCESS and the status of the second would be an error code such as STATUS_VALIDATION_ERROR.

      Returns:
      Current queueStatus value. Default value is see below
      See Also:
    • getStartRow

      public Integer getStartRow()
      Starting row of returned server results, when using paged result fetching

      Note that startRow and endRow are zero-based, inclusive at the beginning and exclusive at the end (like substring), so startRow: 0, endRow: 2 is a response containing two records.

      Returns:
      Current startRow value. Default value is null
    • setStatus

      public DSResponse setStatus(int status)
      Same meaning as RPCResponse.status, except DSResponses have additional error codes, such as validation failure.
      Overrides:
      setStatus in class RPCResponse
      Parameters:
      status - New status value. Default value is see below
      Returns:
      DSResponse instance, for chaining setter calls
      See Also:
    • getStatus

      public int getStatus()
      Same meaning as RPCResponse.status, except DSResponses have additional error codes, such as validation failure.
      Overrides:
      getStatus in class RPCResponse
      Returns:
      Current status value. Default value is see below
      See Also:
    • getTotalRows

      public Integer getTotalRows()
      Total number of rows available from the server that match the current filter criteria, when using paged result fetching.
      Returns:
      Current totalRows value. Default value is null
    • setStartRow

      public void setStartRow(Integer startRow)
      Starting row of returned server results, when using paged result fetching

      Note that startRow and endRow are zero-based - the first record is row zero.

      Parameters:
      startRow - the start row
    • setEndRow

      public void setEndRow(Integer endRow)
      End row of returned server results, when using paged result fetching

      Note that startRow and endRow are zero-based - the first record is row zero.

      Parameters:
      endRow - the end row
    • setTotalRows

      public void setTotalRows(Integer totalRows)
      Total number of rows available from the server that match the current filter criteria, when using paged result fetching.
      Parameters:
      totalRows - total rows
    • setInvalidateCache

      public void setInvalidateCache(Boolean invalidateCache)
      Optional flag that can be set by the server to force ResultSets to drop any caches of records from the DataSource that was the target of the operation.
      Parameters:
      invalidateCache - invalidateCache
    • setErrors

      public void setErrors(Map errors)
      Server-side validation errors for an attempted "update" or "add" operation, as a JS Object where each property name is a field name from the record and each property value is an error message to be shown to the user. For example:
           dsResponse.errors = {         userId : "A user with this userId already exists",
       orderId : "No Order with ID '6A18294' exists"     } 
      The Java API DSResponse.addError(fieldName, errorMessage) is used to send server-side errors to the client. See the Java Server Reference for details.
      Parameters:
      errors - errors map
    • setErrors

      public void setErrors(JavaScriptObject errors)
      Server-side validation errors for an attempted "update" or "add" operation, as a JS Object where each property name is a field name from the record and each property value is an error message to be shown to the user. For example:
           dsResponse.errors = {         userId : "A user with this userId already exists",
       orderId : "No Order with ID '6A18294' exists"     } 
      The Java API DSResponse.addError(fieldName, errorMessage) is used to send server-side errors to the client. See the Java Server Reference for details.
      Parameters:
      errors - errors as JavaScriptObject
    • setData

      public void setData(Record... data)
      For "fetch" operations, this is the array of Records fetched. For "update", "add", and "remove" operations, this is typically an array containing a single Record representing the record that was updated, added, or removed.
      Parameters:
      data - data Default value is null
    • getErrors

      public Map getErrors()
      Server-side validation errors for an attempted "update" or "add" operation, as a JS Object where each property name is a field name from the record and each property value is an error message to be shown to the user. For example:
            {
              userId : ["A user with this userId already exists"],
              orderId : ["Must be a numeric value", "No Order with ID '6A18294' exists"]
            }
       
      The Java API DSResponse.addError(fieldName, errorMessage) is used to send server-side errors to the client. See the Java Server Reference for details.
      Returns:
      the errors map