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 मेथड items(), hasMore() और nextCursor() वाला एक Page लौटाता है, और एक for लूप उसके आइटम पर चलता है। अगला पेज पढ़ने के लिए nextCursor() को उन्हीं फ़िल्टर के साथ cursor के रूप में वापस पास करें।
हर पेज
List<Map<String, Object>> contacts = client.contacts().listAll(); System.out.println(contacts.size());एक listAll मेथड कर्सर का अंत तक पीछा करता है और हर आइटम को एक List में लौटाता है। किसी भी पेज पर विफलता पूरी कॉल को विफल कर देती है।
एक बार में एक आइटम
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() उसे इकट्ठा करता है।
जब API वही कर्सर दोहराता है जिसका वह पहले पीछा कर चुका है तो इटरेटर रुक जाता है, इसलिए कोई क्रम कभी हमेशा के लिए नहीं घूम सकता।