Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,56 +2,103 @@

package com.tryfinch.api.models

import com.tryfinch.api.core.checkRequired
import com.tryfinch.api.services.blocking.hris.benefits.IndividualService
import java.util.Objects
import java.util.Optional
import java.util.stream.Stream
import java.util.stream.StreamSupport
import kotlin.jvm.optionals.getOrNull

/** Get enrollment information for the given individuals. */
/** @see [IndividualService.retrieveManyBenefits] */
class HrisBenefitIndividualRetrieveManyBenefitsPage
private constructor(
private val individualsService: IndividualService,
private val service: IndividualService,
private val params: HrisBenefitIndividualRetrieveManyBenefitsParams,
private val items: List<IndividualBenefit>,
) {

/** Returns the response that this page was parsed from. */
fun items(): List<IndividualBenefit> = items
fun hasNextPage(): Boolean = items.isNotEmpty()

override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}
fun getNextPageParams(): Optional<HrisBenefitIndividualRetrieveManyBenefitsParams> =
Optional.empty()

return /* spotless:off */ other is HrisBenefitIndividualRetrieveManyBenefitsPage && individualsService == other.individualsService && params == other.params && items == other.items /* spotless:on */
}
fun getNextPage(): Optional<HrisBenefitIndividualRetrieveManyBenefitsPage> =
getNextPageParams().map { service.retrieveManyBenefits(it) }

override fun hashCode(): Int = /* spotless:off */ Objects.hash(individualsService, params, items) /* spotless:on */
fun autoPager(): AutoPager = AutoPager(this)

override fun toString() =
"HrisBenefitIndividualRetrieveManyBenefitsPage{individualsService=$individualsService, params=$params, items=$items}"
/** The parameters that were used to request this page. */
fun params(): HrisBenefitIndividualRetrieveManyBenefitsParams = params

fun hasNextPage(): Boolean = items.isNotEmpty()
/** The response that this page was parsed from. */
fun items(): List<IndividualBenefit> = items

fun getNextPageParams(): Optional<HrisBenefitIndividualRetrieveManyBenefitsParams> =
Optional.empty()
fun toBuilder() = Builder().from(this)

companion object {

fun getNextPage(): Optional<HrisBenefitIndividualRetrieveManyBenefitsPage> {
return getNextPageParams().map { individualsService.retrieveManyBenefits(it) }
/**
* Returns a mutable builder for constructing an instance of
* [HrisBenefitIndividualRetrieveManyBenefitsPage].
*
* The following fields are required:
* ```java
* .service()
* .params()
* .items()
* ```
*/
@JvmStatic fun builder() = Builder()
}

fun autoPager(): AutoPager = AutoPager(this)
/** A builder for [HrisBenefitIndividualRetrieveManyBenefitsPage]. */
class Builder internal constructor() {

private var service: IndividualService? = null
private var params: HrisBenefitIndividualRetrieveManyBenefitsParams? = null
private var items: List<IndividualBenefit>? = null

@JvmSynthetic
internal fun from(
hrisBenefitIndividualRetrieveManyBenefitsPage:
HrisBenefitIndividualRetrieveManyBenefitsPage
) = apply {
service = hrisBenefitIndividualRetrieveManyBenefitsPage.service
params = hrisBenefitIndividualRetrieveManyBenefitsPage.params
items = hrisBenefitIndividualRetrieveManyBenefitsPage.items
}

companion object {
fun service(service: IndividualService) = apply { this.service = service }

@JvmStatic
fun of(
individualsService: IndividualService,
params: HrisBenefitIndividualRetrieveManyBenefitsParams,
items: List<IndividualBenefit>,
) = HrisBenefitIndividualRetrieveManyBenefitsPage(individualsService, params, items)
/** The parameters that were used to request this page. */
fun params(params: HrisBenefitIndividualRetrieveManyBenefitsParams) = apply {
this.params = params
}

/** The response that this page was parsed from. */
fun items(items: List<IndividualBenefit>) = apply { this.items = items }

/**
* Returns an immutable instance of [HrisBenefitIndividualRetrieveManyBenefitsPage].
*
* Further updates to this [Builder] will not mutate the returned instance.
*
* The following fields are required:
* ```java
* .service()
* .params()
* .items()
* ```
*
* @throws IllegalStateException if any required field is unset.
*/
fun build(): HrisBenefitIndividualRetrieveManyBenefitsPage =
HrisBenefitIndividualRetrieveManyBenefitsPage(
checkRequired("service", service),
checkRequired("params", params),
checkRequired("items", items),
)
}

class AutoPager(private val firstPage: HrisBenefitIndividualRetrieveManyBenefitsPage) :
Expand All @@ -73,4 +120,17 @@ private constructor(
return StreamSupport.stream(spliterator(), false)
}
}

override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}

return /* spotless:off */ other is HrisBenefitIndividualRetrieveManyBenefitsPage && service == other.service && params == other.params && items == other.items /* spotless:on */
}

override fun hashCode(): Int = /* spotless:off */ Objects.hash(service, params, items) /* spotless:on */

override fun toString() =
"HrisBenefitIndividualRetrieveManyBenefitsPage{service=$service, params=$params, items=$items}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,59 +2,106 @@

package com.tryfinch.api.models

import com.tryfinch.api.core.checkRequired
import com.tryfinch.api.services.async.hris.benefits.IndividualServiceAsync
import java.util.Objects
import java.util.Optional
import java.util.concurrent.CompletableFuture
import java.util.concurrent.Executor
import java.util.function.Predicate

/** Get enrollment information for the given individuals. */
/** @see [IndividualServiceAsync.retrieveManyBenefits] */
class HrisBenefitIndividualRetrieveManyBenefitsPageAsync
private constructor(
private val individualsService: IndividualServiceAsync,
private val service: IndividualServiceAsync,
private val params: HrisBenefitIndividualRetrieveManyBenefitsParams,
private val items: List<IndividualBenefit>,
) {

/** Returns the response that this page was parsed from. */
fun items(): List<IndividualBenefit> = items

override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}

return /* spotless:off */ other is HrisBenefitIndividualRetrieveManyBenefitsPageAsync && individualsService == other.individualsService && params == other.params && items == other.items /* spotless:on */
}

override fun hashCode(): Int = /* spotless:off */ Objects.hash(individualsService, params, items) /* spotless:on */

override fun toString() =
"HrisBenefitIndividualRetrieveManyBenefitsPageAsync{individualsService=$individualsService, params=$params, items=$items}"

fun hasNextPage(): Boolean = items.isNotEmpty()

fun getNextPageParams(): Optional<HrisBenefitIndividualRetrieveManyBenefitsParams> =
Optional.empty()

fun getNextPage():
CompletableFuture<Optional<HrisBenefitIndividualRetrieveManyBenefitsPageAsync>> {
return getNextPageParams()
.map { individualsService.retrieveManyBenefits(it).thenApply { Optional.of(it) } }
CompletableFuture<Optional<HrisBenefitIndividualRetrieveManyBenefitsPageAsync>> =
getNextPageParams()
.map { service.retrieveManyBenefits(it).thenApply { Optional.of(it) } }
.orElseGet { CompletableFuture.completedFuture(Optional.empty()) }
}

fun autoPager(): AutoPager = AutoPager(this)

/** The parameters that were used to request this page. */
fun params(): HrisBenefitIndividualRetrieveManyBenefitsParams = params

/** The response that this page was parsed from. */
fun items(): List<IndividualBenefit> = items

fun toBuilder() = Builder().from(this)

companion object {

@JvmStatic
fun of(
individualsService: IndividualServiceAsync,
params: HrisBenefitIndividualRetrieveManyBenefitsParams,
items: List<IndividualBenefit>,
) = HrisBenefitIndividualRetrieveManyBenefitsPageAsync(individualsService, params, items)
/**
* Returns a mutable builder for constructing an instance of
* [HrisBenefitIndividualRetrieveManyBenefitsPageAsync].
*
* The following fields are required:
* ```java
* .service()
* .params()
* .items()
* ```
*/
@JvmStatic fun builder() = Builder()
}

/** A builder for [HrisBenefitIndividualRetrieveManyBenefitsPageAsync]. */
class Builder internal constructor() {

private var service: IndividualServiceAsync? = null
private var params: HrisBenefitIndividualRetrieveManyBenefitsParams? = null
private var items: List<IndividualBenefit>? = null

@JvmSynthetic
internal fun from(
hrisBenefitIndividualRetrieveManyBenefitsPageAsync:
HrisBenefitIndividualRetrieveManyBenefitsPageAsync
) = apply {
service = hrisBenefitIndividualRetrieveManyBenefitsPageAsync.service
params = hrisBenefitIndividualRetrieveManyBenefitsPageAsync.params
items = hrisBenefitIndividualRetrieveManyBenefitsPageAsync.items
}

fun service(service: IndividualServiceAsync) = apply { this.service = service }

/** The parameters that were used to request this page. */
fun params(params: HrisBenefitIndividualRetrieveManyBenefitsParams) = apply {
this.params = params
}

/** The response that this page was parsed from. */
fun items(items: List<IndividualBenefit>) = apply { this.items = items }

/**
* Returns an immutable instance of [HrisBenefitIndividualRetrieveManyBenefitsPageAsync].
*
* Further updates to this [Builder] will not mutate the returned instance.
*
* The following fields are required:
* ```java
* .service()
* .params()
* .items()
* ```
*
* @throws IllegalStateException if any required field is unset.
*/
fun build(): HrisBenefitIndividualRetrieveManyBenefitsPageAsync =
HrisBenefitIndividualRetrieveManyBenefitsPageAsync(
checkRequired("service", service),
checkRequired("params", params),
checkRequired("items", items),
)
}

class AutoPager(private val firstPage: HrisBenefitIndividualRetrieveManyBenefitsPageAsync) {
Expand Down Expand Up @@ -86,4 +133,17 @@ private constructor(
return forEach(values::add, executor).thenApply { values }
}
}

override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}

return /* spotless:off */ other is HrisBenefitIndividualRetrieveManyBenefitsPageAsync && service == other.service && params == other.params && items == other.items /* spotless:on */
}

override fun hashCode(): Int = /* spotless:off */ Objects.hash(service, params, items) /* spotless:on */

override fun toString() =
"HrisBenefitIndividualRetrieveManyBenefitsPageAsync{service=$service, params=$params, items=$items}"
}
Loading
Loading