ResultTransform

abstract class ResultTransform<R : Result?, S : Result?>


Transforms a Result by making a subsequent API call.

See also
then

Summary

Public constructors

Public functions

PendingResult<S!>

Creates a failed result with the given Status.

Status
onFailure(status: Status)

Called when the PendingResult to be transformed returns a failure.

abstract PendingResult<S!>?

Transforms the result of a successful API call.

Public constructors

ResultTransform

ResultTransform()

Public functions

createFailedResult

fun createFailedResult(status: Status): PendingResult<S!>

Creates a failed result with the given Status. In the event of an error during onSuccess, call this method and return the failed result.

Note: the PendingResult generated by this method must be returned directly from onSuccess. It is an error to call any methods on this PendingResult.

onFailure

fun onFailure(status: Status): Status

Called when the PendingResult to be transformed returns a failure. Default implementation simply propagates the failure, but subclasses may override for custom failure handling. This method is called on the main thread, unless overridden by setHandler.

Parameters
status: Status

The status of the failure.

Returns
Status

The status of the result of the transformation. Must not be success or null.

onSuccess

@WorkerThread
abstract fun onSuccess(result: R): PendingResult<S!>?

Transforms the result of a successful API call. This method is called on a background thread and should not access UI elements.

Parameters
result: R

The successful result to be transformed. Never null. If this result is it will be automatically released after this transform is applied; it is not necessary to release the result inside onSuccess. It is an error to set callbacks on this result. Any callbacks set on this result will be overridden and will not be called.

Returns
PendingResult<S!>?

The result of the transformation. Normally the result of another API call. To shortcut execution and directly yield a failure, return either: