تخطَّ إلى المستندات
Java

ترقيم الصفحات

صفحة واحدة، أو كل الصفحات، أو عنصر واحد في كل مرة.

صفحة واحدة

OnePage.java
RequestOptions inbox = RequestOptions.of("folder", "inbox").limit(25);Page page = client.threads().list(inbox); for (Map<String, Object> thread : page) {    System.out.println(thread.get("id") + " " + thread.get("subject"));} if (page.hasMore()) {    Page next = client.threads().list(inbox.cursor(page.nextCursor()));     System.out.println(next.size());}

دالة list تعيد Page فيها items() وhasMore() وnextCursor()، وحلقة for تمر على عناصرها. مرّر nextCursor() من جديد بصفته cursor، مع عوامل التصفية نفسها، لقراءة الصفحة التالية.

كل الصفحات

EveryPage.java
List<Map<String, Object>> contacts = client.contacts().listAll(); System.out.println(contacts.size());

دالة listAll تتبع المؤشر حتى النهاية وتعيد كل العناصر في List واحدة. وأي إخفاق في أي صفحة يُفشل الاستدعاء كله.

عنصر واحد في كل مرة

Iterate.java
for (Map<String, Object> thread : client.threads().iterate(RequestOptions.of("query", "invoice"))) {    if (Boolean.TRUE.equals(thread.get("hasUnread"))) {        System.out.println(thread.get("id"));         break;    }} long starred = client.threads().iterate(RequestOptions.of("labelIds", "STARRED")).stream().count(); System.out.println(starred);

دالة iterate تعيد PagedIterable، وهو لا يطلب الصفحة التالية إلا حين تصل إليها الحلقة، لذا توقف break الطلبات. تعطي stream() المرور نفسه على هيئة Stream، وتجمعه toList().

يتوقف المكرِّر حين تكرر الواجهة البرمجية مؤشرًا سبق أن تبعه، فلا يمكن أن يدور المرور إلى ما لا نهاية.