Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1D2B8FC15 for ; Tue, 2 Apr 2013 11:01:18 +0000 (UTC) Received: (qmail 13352 invoked by uid 500); 2 Apr 2013 11:01:18 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 13066 invoked by uid 500); 2 Apr 2013 11:01:17 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 12913 invoked by uid 99); 2 Apr 2013 11:01:15 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Apr 2013 11:01:15 +0000 Date: Tue, 2 Apr 2013 11:01:15 +0000 (UTC) From: "Jukka Zitting (JIRA)" To: dev@jackrabbit.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (JCR-3555) Add a static utility to transform JCR Iterators into Iterables MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/JCR-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13619705#comment-13619705 ] Jukka Zitting commented on JCR-3555: ------------------------------------ A method like the iterable() you're proposing is a bit troublesome since the returned Iterable doesn't meet the expectation that multiple calls to iterator() should each return a fresh new Iterator. Instead, see the various static utility methods we already have for this purpose in the JcrUtils class. Extending those methods to cover the missing cases you mention would probably be a better solution here. > Add a static utility to transform JCR Iterators into Iterables > -------------------------------------------------------------- > > Key: JCR-3555 > URL: https://issues.apache.org/jira/browse/JCR-3555 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-jcr-commons > Affects Versions: 2.6 > Reporter: Lukas Eder > Priority: Minor > Attachments: Iterators.java.patch > > > I have stumbled upon the utility classes in the org.apache.jackrabbit.commons.iterator package. They're quite useful in principle, but not applied thoroughly. E.g. there are missing wrapper types for at least these JCR Iterators: > - AccessControlPolicyIterator > - EventIterator > - EventListenerIterator > - NodeTypeIterator > - VersionIterator > Instead of adding more classes, it might be useful to create static methods for the job. Using static methods from a single class (with static imports) is a bit more convenient than looking up and creating the wrapper types using "new WrapperType(...)" > An example: > org.apache.jackrabbit.commons.iterator.Iterators.iterable > // And then: > for (Node n : iterable(parent.getNodes())) { > // Do stuff with n > } > Please find attached a .patch file containing an implementation suggestion. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira