Faqosja
Një faqe, të gjitha faqet, ose një element në një kohë.
Një faqe
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());}Një metodë list kthen një Page me items(), hasMore() dhe nextCursor(), dhe një cikël for i përshkon elementet e saj. Jepeni nextCursor() përsëri si cursor, me të njëjtët filtra, për të lexuar faqen tjetër.
Të gjitha faqet
List<Map<String, Object>> contacts = client.contacts().listAll(); System.out.println(contacts.size());Një metodë listAll e ndjek kursorin deri në fund dhe kthen çdo element në një List të vetme. Një dështim në cilëndo faqe e bën të dështojë gjithë thirrjen.
Një element në një kohë
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);Një metodë iterate kthen një PagedIterable, që e kërkon faqen tjetër vetëm kur cikli arrin tek ajo, kështu që një break i ndal kërkesat. stream() jep të njëjtin përshkim si Stream, dhe toList() e mbledh atë.
Një iterator ndalet kur API-ja përsërit një kursor që ai e ka ndjekur tashmë, kështu që një përshkim nuk mund të sillet kurrë pa fund.