client.mobile.authorizationCode(request) -> CreateMobileAuthorizationCodeResponseclient.oAuth.revokeToken(request) -> RevokeTokenResponseclient.oAuth.obtainToken(request) -> ObtainTokenResponseclient.oAuth.retrieveTokenStatus() -> RetrieveTokenStatusResponseclient.oAuth.authorize()client.v1Transactions.v1ListOrders(locationId) -> List<V1Order>client.v1Transactions.v1RetrieveOrder(locationId, orderId) -> V1Orderclient.v1Transactions.v1UpdateOrder(locationId, orderId, request) -> V1Orderclient.applePay.registerDomain(request) -> RegisterDomainResponseclient.bankAccounts.list() -> ListBankAccountsResponseclient.bankAccounts.getByV1Id(v1BankAccountId) -> GetBankAccountByV1IdResponseclient.bankAccounts.get(bankAccountId) -> GetBankAccountResponseclient.bookings.list() -> ListBookingsResponseclient.bookings.create(request) -> CreateBookingResponseclient.bookings.searchAvailability(request) -> SearchAvailabilityResponseclient.bookings.bulkRetrieveBookings(request) -> BulkRetrieveBookingsResponseclient.bookings.getBusinessProfile() -> GetBusinessBookingProfileResponseclient.bookings.retrieveLocationBookingProfile(locationId) -> RetrieveLocationBookingProfileResponseclient.bookings.bulkRetrieveTeamMemberBookingProfiles(request) -> BulkRetrieveTeamMemberBookingProfilesResponseclient.bookings.get(bookingId) -> GetBookingResponseclient.bookings.update(bookingId, request) -> UpdateBookingResponseclient.bookings.cancel(bookingId, request) -> CancelBookingResponseclient.cards.list() -> ListCardsResponseclient.cards.create(request) -> CreateCardResponseclient.cards.get(cardId) -> GetCardResponseclient.cards.disable(cardId) -> DisableCardResponseclient.catalog.batchDelete(request) -> BatchDeleteCatalogObjectsResponseclient.catalog.batchGet(request) -> BatchGetCatalogObjectsResponseclient.catalog.batchUpsert(request) -> BatchUpsertCatalogObjectsResponseclient.catalog.info() -> CatalogInfoResponseclient.catalog.list() -> ListCatalogResponseclient.catalog.search(request) -> SearchCatalogObjectsResponseclient.catalog.searchItems(request) -> SearchCatalogItemsResponseclient.catalog.updateItemModifierLists(request) -> UpdateItemModifierListsResponseclient.catalog.updateItemTaxes(request) -> UpdateItemTaxesResponseclient.customers.list() -> ListCustomersResponseclient.customers.create(request) -> CreateCustomerResponseclient.customers.batchCreate(request) -> BulkCreateCustomersResponseclient.customers.bulkDeleteCustomers(request) -> BulkDeleteCustomersResponseclient.customers.bulkRetrieveCustomers(request) -> BulkRetrieveCustomersResponseclient.customers.bulkUpdateCustomers(request) -> BulkUpdateCustomersResponseclient.customers.search(request) -> SearchCustomersResponseclient.customers.get(customerId) -> GetCustomerResponseclient.customers.update(customerId, request) -> UpdateCustomerResponseclient.customers.delete(customerId) -> DeleteCustomerResponseclient.devices.list() -> ListDevicesResponseclient.devices.get(deviceId) -> GetDeviceResponseclient.disputes.list() -> ListDisputesResponseclient.disputes.get(disputeId) -> GetDisputeResponseclient.disputes.accept(disputeId) -> AcceptDisputeResponseclient.disputes.createEvidenceFile(disputeId, request) -> CreateDisputeEvidenceFileResponseclient.disputes.createEvidenceText(disputeId, request) -> CreateDisputeEvidenceTextResponseclient.disputes.submitEvidence(disputeId) -> SubmitEvidenceResponseclient.employees.list() -> ListEmployeesResponseclient.employees.get(id) -> GetEmployeeResponseclient.events.searchEvents(request) -> SearchEventsResponseclient.events.disableEvents() -> DisableEventsResponseclient.events.enableEvents() -> EnableEventsResponseclient.events.listEventTypes() -> ListEventTypesResponseclient.giftCards.list() -> ListGiftCardsResponseclient.giftCards.create(request) -> CreateGiftCardResponseclient.giftCards.getFromGan(request) -> GetGiftCardFromGanResponseclient.giftCards.getFromNonce(request) -> GetGiftCardFromNonceResponseclient.giftCards.linkCustomer(giftCardId, request) -> LinkCustomerToGiftCardResponseclient.giftCards.unlinkCustomer(giftCardId, request) -> UnlinkCustomerFromGiftCardResponseclient.giftCards.get(id) -> GetGiftCardResponseclient.inventory.deprecatedGetAdjustment(adjustmentId) -> GetInventoryAdjustmentResponseclient.inventory.getAdjustment(adjustmentId) -> GetInventoryAdjustmentResponseclient.inventory.deprecatedBatchChange(request) -> BatchChangeInventoryResponseclient.inventory.deprecatedBatchGetChanges(request) -> BatchGetInventoryChangesResponseclient.inventory.deprecatedBatchGetCounts(request) -> BatchGetInventoryCountsResponseclient.inventory.batchCreateChanges(request) -> BatchChangeInventoryResponseclient.inventory.batchGetChanges(request) -> BatchGetInventoryChangesResponseclient.inventory.batchGetCounts(request) -> BatchGetInventoryCountsResponseclient.inventory.deprecatedGetPhysicalCount(physicalCountId) -> GetInventoryPhysicalCountResponseclient.inventory.getPhysicalCount(physicalCountId) -> GetInventoryPhysicalCountResponseclient.inventory.getTransfer(transferId) -> GetInventoryTransferResponseclient.inventory.get(catalogObjectId) -> GetInventoryCountResponseclient.inventory.changes(catalogObjectId) -> GetInventoryChangesResponseclient.invoices.list() -> ListInvoicesResponseclient.invoices.create(request) -> CreateInvoiceResponseclient.invoices.search(request) -> SearchInvoicesResponseclient.invoices.get(invoiceId) -> GetInvoiceResponseclient.invoices.update(invoiceId, request) -> UpdateInvoiceResponseclient.invoices.delete(invoiceId) -> DeleteInvoiceResponseclient.invoices.createInvoiceAttachment(invoiceId, request) -> CreateInvoiceAttachmentResponseclient.invoices.deleteInvoiceAttachment(invoiceId, attachmentId) -> DeleteInvoiceAttachmentResponseclient.invoices.cancel(invoiceId, request) -> CancelInvoiceResponseclient.invoices.publish(invoiceId, request) -> PublishInvoiceResponseclient.labor.createScheduledShift(request) -> CreateScheduledShiftResponseclient.labor.bulkPublishScheduledShifts(request) -> BulkPublishScheduledShiftsResponseclient.labor.searchScheduledShifts(request) -> SearchScheduledShiftsResponseclient.labor.retrieveScheduledShift(id) -> RetrieveScheduledShiftResponseclient.labor.updateScheduledShift(id, request) -> UpdateScheduledShiftResponseclient.labor.publishScheduledShift(id, request) -> PublishScheduledShiftResponseclient.labor.createTimecard(request) -> CreateTimecardResponseclient.labor.searchTimecards(request) -> SearchTimecardsResponseclient.labor.retrieveTimecard(id) -> RetrieveTimecardResponseclient.labor.updateTimecard(id, request) -> UpdateTimecardResponseclient.labor.deleteTimecard(id) -> DeleteTimecardResponseclient.locations.list() -> ListLocationsResponseclient.locations.create(request) -> CreateLocationResponseclient.locations.get(locationId) -> GetLocationResponseclient.locations.update(locationId, request) -> UpdateLocationResponseclient.locations.checkouts(locationId, request) -> CreateCheckoutResponseclient.loyalty.searchEvents(request) -> SearchLoyaltyEventsResponseclient.merchants.list() -> ListMerchantsResponseclient.merchants.get(merchantId) -> GetMerchantResponseclient.checkout.retrieveLocationSettings(locationId) -> RetrieveLocationSettingsResponseclient.checkout.updateLocationSettings(locationId, request) -> UpdateLocationSettingsResponseclient.checkout.retrieveMerchantSettings() -> RetrieveMerchantSettingsResponseclient.checkout.updateMerchantSettings(request) -> UpdateMerchantSettingsResponseclient.orders.create(request) -> CreateOrderResponseclient.orders.batchGet(request) -> BatchGetOrdersResponseclient.orders.calculate(request) -> CalculateOrderResponseclient.orders.clone(request) -> CloneOrderResponseclient.orders.search(request) -> SearchOrdersResponseclient.orders.get(orderId) -> GetOrderResponseclient.orders.update(orderId, request) -> UpdateOrderResponseclient.orders.pay(orderId, request) -> PayOrderResponseclient.payments.list() -> ListPaymentsResponseclient.payments.create(request) -> CreatePaymentResponseclient.payments.cancelByIdempotencyKey(request) -> CancelPaymentByIdempotencyKeyResponseclient.payments.get(paymentId) -> GetPaymentResponseclient.payments.update(paymentId, request) -> UpdatePaymentResponseclient.payments.cancel(paymentId) -> CancelPaymentResponseclient.payments.complete(paymentId, request) -> CompletePaymentResponseclient.payouts.list() -> ListPayoutsResponseclient.payouts.get(payoutId) -> GetPayoutResponseclient.payouts.listEntries(payoutId) -> ListPayoutEntriesResponseclient.refunds.list() -> ListPaymentRefundsResponseclient.refunds.refundPayment(request) -> RefundPaymentResponseclient.refunds.get(refundId) -> GetPaymentRefundResponseclient.sites.list() -> ListSitesResponseclient.snippets.get(siteId) -> GetSnippetResponseclient.snippets.upsert(siteId, request) -> UpsertSnippetResponseclient.snippets.delete(siteId) -> DeleteSnippetResponseclient.subscriptions.create(request) -> CreateSubscriptionResponseclient.subscriptions.bulkSwapPlan(request) -> BulkSwapPlanResponseclient.subscriptions.search(request) -> SearchSubscriptionsResponseclient.subscriptions.get(subscriptionId) -> GetSubscriptionResponseclient.subscriptions.update(subscriptionId, request) -> UpdateSubscriptionResponseclient.subscriptions.deleteAction(subscriptionId, actionId) -> DeleteSubscriptionActionResponseclient.subscriptions.changeBillingAnchorDate(subscriptionId, request) -> ChangeBillingAnchorDateResponseclient.subscriptions.cancel(subscriptionId) -> CancelSubscriptionResponseclient.subscriptions.listEvents(subscriptionId) -> ListSubscriptionEventsResponseclient.subscriptions.pause(subscriptionId, request) -> PauseSubscriptionResponseclient.subscriptions.resume(subscriptionId, request) -> ResumeSubscriptionResponseclient.subscriptions.swapPlan(subscriptionId, request) -> SwapPlanResponseclient.teamMembers.create(request) -> CreateTeamMemberResponseclient.teamMembers.batchCreate(request) -> BatchCreateTeamMembersResponseclient.teamMembers.batchUpdate(request) -> BatchUpdateTeamMembersResponseclient.teamMembers.search(request) -> SearchTeamMembersResponseclient.teamMembers.get(teamMemberId) -> GetTeamMemberResponseclient.teamMembers.update(teamMemberId, request) -> UpdateTeamMemberResponseclient.team.listJobs() -> ListJobsResponseclient.team.createJob(request) -> CreateJobResponseclient.team.retrieveJob(jobId) -> RetrieveJobResponseclient.team.updateJob(jobId, request) -> UpdateJobResponseclient.terminal.dismissTerminalAction(actionId) -> DismissTerminalActionResponseclient.terminal.dismissTerminalCheckout(checkoutId) -> DismissTerminalCheckoutResponseclient.terminal.dismissTerminalRefund(terminalRefundId) -> DismissTerminalRefundResponseclient.vendors.batchCreate(request) -> BatchCreateVendorsResponse
* {@code Stream} assumes that data is being pushed to the provided {@link Reader} asynchronously and utilizes a
* {@code Scanner} to block during iteration if the next object is not available.
+ * Iterable stream for parsing JSON and Server-Sent Events (SSE) data.
+ * Supports both newline-delimited JSON and SSE with optional stream termination.
*
* @param
- * Will block and wait for input if the stream has not ended and the next object is not yet available.
- *
- * @return {@code true} if there are more elements, {@code false} otherwise.
- */
- @Override
- public boolean hasNext() {
- return scanner.hasNext();
+ if (streamType == StreamType.SSE) {
+ return new SSEIterator();
+ } else {
+ return new JsonIterator();
+ }
+ }
+
+ private final class JsonIterator implements Iterator
+ * Will block and wait for input if the stream has not ended and the next object is not yet available.
+ *
+ * @return {@code true} if there are more elements, {@code false} otherwise.
+ */
+ @Override
+ public boolean hasNext() {
+ if (isStreamClosed()) {
+ return false;
}
+ return scanner.hasNext();
+ }
- /**
- * Returns the next element in the stream.
- *
- * Will block and wait for input if the stream has not ended and the next object is not yet available.
- *
- * @return The next element in the stream.
- * @throws NoSuchElementException If there are no more elements in the stream.
- */
- @Override
- public T next() {
- if (!scanner.hasNext()) {
- throw new NoSuchElementException();
- } else {
- try {
- T parsedResponse = ObjectMappers.JSON_MAPPER.readValue(
- scanner.next().trim(), valueType);
- return parsedResponse;
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ /**
+ * Returns the next element in the stream.
+ *
+ * Will block and wait for input if the stream has not ended and the next object is not yet available.
+ *
+ * @return The next element in the stream.
+ * @throws NoSuchElementException If there are no more elements in the stream.
+ */
+ @Override
+ public T next() {
+ if (isStreamClosed()) {
+ throw new NoSuchElementException("Stream is closed");
+ }
+
+ if (!scanner.hasNext()) {
+ throw new NoSuchElementException();
+ } else {
+ try {
+ T parsedResponse =
+ ObjectMappers.JSON_MAPPER.readValue(scanner.next().trim(), valueType);
+ return parsedResponse;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
}
}
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ private final class SSEIterator implements Iterator