22
33package com.tryfinch.api.models
44
5+ import com.tryfinch.api.core.checkRequired
56import com.tryfinch.api.services.blocking.hris.benefits.IndividualService
67import java.util.Objects
78import java.util.Optional
89import java.util.stream.Stream
910import java.util.stream.StreamSupport
1011import kotlin.jvm.optionals.getOrNull
1112
12- /* * Get enrollment information for the given individuals. */
13+ /* * @see [IndividualService.retrieveManyBenefits] */
1314class HrisBenefitIndividualRetrieveManyBenefitsPage
1415private constructor (
15- private val individualsService : IndividualService ,
16+ private val service : IndividualService ,
1617 private val params: HrisBenefitIndividualRetrieveManyBenefitsParams ,
1718 private val items: List <IndividualBenefit >,
1819) {
1920
20- /* * Returns the response that this page was parsed from. */
21- fun items (): List <IndividualBenefit > = items
21+ fun hasNextPage (): Boolean = items.isNotEmpty()
2222
23- override fun equals (other : Any? ): Boolean {
24- if (this == = other) {
25- return true
26- }
23+ fun getNextPageParams (): Optional <HrisBenefitIndividualRetrieveManyBenefitsParams > =
24+ Optional .empty()
2725
28- return /* spotless:off */ other is HrisBenefitIndividualRetrieveManyBenefitsPage && individualsService == other.individualsService && params == other.params && items == other.items /* spotless:on */
29- }
26+ fun getNextPage (): Optional < HrisBenefitIndividualRetrieveManyBenefitsPage > =
27+ getNextPageParams().map { service.retrieveManyBenefits(it) }
3028
31- override fun hashCode (): Int = /* spotless:off */ Objects .hash(individualsService, params, items) /* spotless:on */
29+ fun autoPager (): AutoPager = AutoPager ( this )
3230
33- override fun toString () =
34- " HrisBenefitIndividualRetrieveManyBenefitsPage{individualsService= $individualsService , params= $params , items= $items } "
31+ /* * The parameters that were used to request this page. */
32+ fun params (): HrisBenefitIndividualRetrieveManyBenefitsParams = params
3533
36- fun hasNextPage (): Boolean = items.isNotEmpty()
34+ /* * The response that this page was parsed from. */
35+ fun items (): List <IndividualBenefit > = items
3736
38- fun getNextPageParams (): Optional <HrisBenefitIndividualRetrieveManyBenefitsParams > =
39- Optional .empty()
37+ fun toBuilder () = Builder ().from(this )
38+
39+ companion object {
4040
41- fun getNextPage (): Optional <HrisBenefitIndividualRetrieveManyBenefitsPage > {
42- return getNextPageParams().map { individualsService.retrieveManyBenefits(it) }
41+ /* *
42+ * Returns a mutable builder for constructing an instance of
43+ * [HrisBenefitIndividualRetrieveManyBenefitsPage].
44+ *
45+ * The following fields are required:
46+ * ```java
47+ * .service()
48+ * .params()
49+ * .items()
50+ * ```
51+ */
52+ @JvmStatic fun builder () = Builder ()
4353 }
4454
45- fun autoPager (): AutoPager = AutoPager (this )
55+ /* * A builder for [HrisBenefitIndividualRetrieveManyBenefitsPage]. */
56+ class Builder internal constructor() {
57+
58+ private var service: IndividualService ? = null
59+ private var params: HrisBenefitIndividualRetrieveManyBenefitsParams ? = null
60+ private var items: List <IndividualBenefit >? = null
61+
62+ @JvmSynthetic
63+ internal fun from (
64+ hrisBenefitIndividualRetrieveManyBenefitsPage :
65+ HrisBenefitIndividualRetrieveManyBenefitsPage
66+ ) = apply {
67+ service = hrisBenefitIndividualRetrieveManyBenefitsPage.service
68+ params = hrisBenefitIndividualRetrieveManyBenefitsPage.params
69+ items = hrisBenefitIndividualRetrieveManyBenefitsPage.items
70+ }
4671
47- companion object {
72+ fun service ( service : IndividualService ) = apply { this .service = service }
4873
49- @JvmStatic
50- fun of (
51- individualsService : IndividualService ,
52- params : HrisBenefitIndividualRetrieveManyBenefitsParams ,
53- items : List <IndividualBenefit >,
54- ) = HrisBenefitIndividualRetrieveManyBenefitsPage (individualsService, params, items)
74+ /* * The parameters that were used to request this page. */
75+ fun params (params : HrisBenefitIndividualRetrieveManyBenefitsParams ) = apply {
76+ this .params = params
77+ }
78+
79+ /* * The response that this page was parsed from. */
80+ fun items (items : List <IndividualBenefit >) = apply { this .items = items }
81+
82+ /* *
83+ * Returns an immutable instance of [HrisBenefitIndividualRetrieveManyBenefitsPage].
84+ *
85+ * Further updates to this [Builder] will not mutate the returned instance.
86+ *
87+ * The following fields are required:
88+ * ```java
89+ * .service()
90+ * .params()
91+ * .items()
92+ * ```
93+ *
94+ * @throws IllegalStateException if any required field is unset.
95+ */
96+ fun build (): HrisBenefitIndividualRetrieveManyBenefitsPage =
97+ HrisBenefitIndividualRetrieveManyBenefitsPage (
98+ checkRequired(" service" , service),
99+ checkRequired(" params" , params),
100+ checkRequired(" items" , items),
101+ )
55102 }
56103
57104 class AutoPager (private val firstPage : HrisBenefitIndividualRetrieveManyBenefitsPage ) :
@@ -73,4 +120,17 @@ private constructor(
73120 return StreamSupport .stream(spliterator(), false )
74121 }
75122 }
123+
124+ override fun equals (other : Any? ): Boolean {
125+ if (this == = other) {
126+ return true
127+ }
128+
129+ return /* spotless:off */ other is HrisBenefitIndividualRetrieveManyBenefitsPage && service == other.service && params == other.params && items == other.items /* spotless:on */
130+ }
131+
132+ override fun hashCode (): Int = /* spotless:off */ Objects .hash(service, params, items) /* spotless:on */
133+
134+ override fun toString () =
135+ " HrisBenefitIndividualRetrieveManyBenefitsPage{service=$service , params=$params , items=$items }"
76136}
0 commit comments