ページネータークラス: Android

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:11分
  • Paginator クラスには、NowTableService クラスによって返される結果など、REST エンドポイント呼び出しによって返される結果をページングするための関数が用意されています。

    最初に NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil) または NowTableService - paginator<Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: coder = .default, configuration: FetchConfiguration? = nil) 関数を呼び出して、ページネーションの戻り値の結果を取得する必要があります。

    ページネーター - first()

    返された結果の最初のページをフェッチします。

    このメソッドは、最初のページを取得できない場合、 PaginationError をスローします。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      paginator.first()
    }

    ページネーター - hasNext()

    返された結果に次のページがあるかどうかを確認します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    ブーリアン 返される結果に次のページがあるかどうかを示すフラグ。
    可能な値:
    • true:次のページが使用可能です。
    • false:利用可能な次のページはありません。

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      if (paginator.hasNext() && !paginator.isBusy()) {
        paginator.next()
      }
    }

    ページネーター - hasPrevious()

    返された結果に前のページがあるかどうかを確認します。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    ブーリアン 返される結果に前のページがあるかどうかを示すフラグ。
    可能な値:
    • true:前のページが使用可能です。
    • false:前のページは利用できません。

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      if (paginator.hasPrevious() && !paginator.isBusy()) {
        paginator.previous()
      }
    }

    ページネーター - isBusy()

    ページネーターがデータのフェッチでビジー状態かどうかを確認します。

    表 : 7. パラメーター
    名前 タイプ 説明
    なし
    表 : 8. 返される内容
    タイプ 説明
    なし ページネーターがデータのフェッチでビジー状態かどうかを示すフラグ。
    可能な値:
    • true:データのフェッチがビジー状態です。
    • false:ビジー状態ではありません。

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      if (paginator.hasNext() && !paginator.isBusy()) {
        paginator.next()
      }
    }

    ページネーター - last()

    返された結果の最後のページをフェッチします。

    このメソッドは、最後のページを取得できない場合、 PaginationError をスローします。

    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      if !paginator.isBusy()) {
        paginator.last()
      }
    }

    ページネーター - next()

    返された結果の次のページをフェッチします。

    フェッチするページがこれ以上ない場合、このメソッドは PaginationError をスローします。

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      if (paginator.hasNext() && !paginator.isBusy()) {
        paginator.next()
      }
    }

    ページネーター - observe(callback: PaginatorCallBack<T>)

    Paginator オブジェクトのコールバックを設定します。このメソッドは、他のPaginator関数を呼び出す前に呼び出す必要があります。

    表 : 13. パラメーター
    名前 タイプ 説明
    コールバック ページネーターコールバック ページネーターの作成の成功または失敗に基づいて呼び出すコールバック。
    • 成功: abstract fun onSuccess(response: Response<List<T>>)
    • 失敗: abstract fun onFailure(e:NowDataError)
    表 : 14. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginationCallBack = object : PaginatorCallBack<NowAttachmentMetadata> {
        override fun onFailure(e: NowDataError) {
          handleError(e)
        }
    
        override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
          handleResponse(response)
        }
    
      }
    
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(paginationCallBack)
        ?: throw Exception("Response is null")
    }

    ページネーター - previous()

    返された結果の前のページをフェッチします。

    このメソッドは、前のページを取得できない場合、 PaginationError をスローします。

    表 : 15. パラメーター
    名前 タイプ 説明
    なし
    表 : 16. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      if (paginator.hasPrevious() && !paginator.isBusy()) {
        paginator.previous()
      }
    }

    ページネーター - reset()

    ページネーターを最初のページにリセットしますが、戻り結果の最初のページは返しません。

    表 : 17. パラメーター
    名前 タイプ 説明
    なし
    表 : 18. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun createAttachmentMetadataPaginator() {
      val paginator = nowServiceManager.getNowAttachmentService()?.attachmentMetadataPaginator(null, 10)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onFailure(e: NowDataError) {
            handleError(e)
          }
    
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            handleResponse(response)
          }
    
        })
        ?: throw Exception("Response is null")
    
      paginator.reset()
    }