From: <die...@us...> - 2010-05-14 15:16:28
|
Revision: 2452 http://openutils.svn.sourceforge.net/openutils/?rev=2452&view=rev Author: diego_schivo Date: 2010-05-14 15:16:21 +0000 (Fri, 14 May 2010) Log Message: ----------- CRIT-12 fix test Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/AclTest.java Added Paths: ----------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemAccessibleResultIterator.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2010-05-14 14:52:00 UTC (rev 2451) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2010-05-14 15:16:21 UTC (rev 2452) @@ -21,6 +21,8 @@ import info.magnolia.cms.core.HierarchyManager; +import java.util.Iterator; + import javax.jcr.RepositoryException; import javax.jcr.Value; import javax.jcr.query.InvalidQueryException; @@ -145,6 +147,14 @@ /** * {@inheritDoc} */ + public Iterator<AdvancedResultItem> getAccessibleItems() + { + return new AdvancedResultItemAccessibleResultIterator(getItems()); + } + + /** + * {@inheritDoc} + */ public String getSpellCheckerSuggestion() { if (spellCheckerSuggestion == null && spellCheckerQuery != null) Added: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemAccessibleResultIterator.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemAccessibleResultIterator.java (rev 0) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemAccessibleResultIterator.java 2010-05-14 15:16:21 UTC (rev 2452) @@ -0,0 +1,84 @@ +package net.sourceforge.openutils.mgnlcriteria.advanced.impl; + +import info.magnolia.cms.security.AccessDeniedException; + +import java.util.Iterator; +import java.util.NoSuchElementException; + +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIterator; + + +/** + * @author dschivo + * @version $Id$ + */ +public class AdvancedResultItemAccessibleResultIterator implements Iterator<AdvancedResultItem> +{ + + private final ResultIterator<AdvancedResultItem> resultIterator; + + private AdvancedResultItem next; + + /** + * + */ + public AdvancedResultItemAccessibleResultIterator(ResultIterator<AdvancedResultItem> resultIterator) + { + this.resultIterator = resultIterator; + } + + /** + * {@inheritDoc} + */ + public boolean hasNext() + { + if (next != null) + { + return true; + } + if (!resultIterator.hasNext()) + { + return false; + } + do + { + try + { + next = resultIterator.next(); + } + catch (RuntimeException e) + { + if (!(e.getCause() instanceof AccessDeniedException)) + { + throw e; + } + } + } + while (next == null && resultIterator.hasNext()); + return next != null; + } + + /** + * {@inheritDoc} + */ + public AdvancedResultItem next() + { + if (next == null && !hasNext()) + { + throw new NoSuchElementException(); + } + AdvancedResultItem result = next; + next = null; + return result; + } + + /** + * {@inheritDoc} + */ + public void remove() + { + throw new UnsupportedOperationException(); + } + +} Property changes on: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemAccessibleResultIterator.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java 2010-05-14 14:52:00 UTC (rev 2451) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java 2010-05-14 15:16:21 UTC (rev 2452) @@ -19,7 +19,9 @@ package net.sourceforge.openutils.mgnlcriteria.jcr.query; +import java.util.Iterator; + /** * The result of an advanced jcr query. * @author fgiust @@ -64,6 +66,8 @@ */ ResultIterator<AdvancedResultItem> getItems(); + Iterator<AdvancedResultItem> getAccessibleItems(); + public static AdvancedResult EMPTY_RESULT = new AdvancedResult() { @@ -93,6 +97,11 @@ return null; } + public Iterator<AdvancedResultItem> getAccessibleItems() + { + return null; + }; + public int getNumberOfPages() { return 0; Modified: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/AclTest.java =================================================================== --- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/AclTest.java 2010-05-14 14:52:00 UTC (rev 2451) +++ trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/AclTest.java 2010-05-14 15:16:21 UTC (rev 2452) @@ -31,6 +31,7 @@ import java.lang.reflect.Field; import java.util.Calendar; import java.util.Collections; +import java.util.Iterator; import javax.jcr.RepositoryException; @@ -38,7 +39,6 @@ import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria; import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRCriteriaFactory; -import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIterator; import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Order; import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Restrictions; import net.sourceforge.openutils.mgnlcriteria.tests.RepositoryTestNgTestcase; @@ -149,13 +149,15 @@ // --- 4 (title=Jewel, petType=dog, birthDate=2000-03-07) // --- 12 (title=Lucky, petType=dog, birthDate=2000-06-24) // --- 3 (title=Rosy, petType=dog, birthDate=2001-04-17) - // Assert.assertEquals(result.getTotalSize(), 3); - ResultIterator<AdvancedResultItem> iterator = result.getItems(); - // Assert.assertEquals(iterator.getSize(), 3); + Iterator<AdvancedResultItem> iterator = result.getAccessibleItems(); + Assert.assertTrue(iterator.hasNext()); Assert.assertEquals(iterator.next().getName(), "4"); + Assert.assertTrue(iterator.hasNext()); Assert.assertEquals(iterator.next().getName(), "12"); + Assert.assertTrue(iterator.hasNext()); Assert.assertEquals(iterator.next().getName(), "3"); + Assert.assertFalse(iterator.hasNext()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |