Return-Path: X-Original-To: apmail-incubator-jena-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-jena-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7D8E7499D for ; Thu, 9 Jun 2011 00:25:49 +0000 (UTC) Received: (qmail 41856 invoked by uid 500); 9 Jun 2011 00:25:49 -0000 Delivered-To: apmail-incubator-jena-commits-archive@incubator.apache.org Received: (qmail 41835 invoked by uid 500); 9 Jun 2011 00:25:49 -0000 Mailing-List: contact jena-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jena-dev@incubator.apache.org Delivered-To: mailing list jena-commits@incubator.apache.org Received: (qmail 41828 invoked by uid 99); 9 Jun 2011 00:25:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Jun 2011 00:25:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Jun 2011 00:25:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A673A23889BF; Thu, 9 Jun 2011 00:25:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1133613 - in /incubator/jena/Jena2/ARQ/trunk: AL-text src-dev/dev/RunARQ.java src-test/org/openjena/atlas/iterator/TestIter.java src/org/openjena/atlas/iterator/Iter.java Date: Thu, 09 Jun 2011 00:25:27 -0000 To: jena-commits@incubator.apache.org From: andy@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110609002527.A673A23889BF@eris.apache.org> Author: andy Date: Thu Jun 9 00:25:27 2011 New Revision: 1133613 URL: http://svn.apache.org/viewvc?rev=1133613&view=rev Log: (empty) Added: incubator/jena/Jena2/ARQ/trunk/AL-text Modified: incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java incubator/jena/Jena2/ARQ/trunk/src-test/org/openjena/atlas/iterator/TestIter.java incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/iterator/Iter.java Added: incubator/jena/Jena2/ARQ/trunk/AL-text URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/AL-text?rev=1133613&view=auto ============================================================================== --- incubator/jena/Jena2/ARQ/trunk/AL-text (added) +++ incubator/jena/Jena2/ARQ/trunk/AL-text Thu Jun 9 00:25:27 2011 @@ -0,0 +1,17 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ Modified: incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java?rev=1133613&r1=1133612&r2=1133613&view=diff ============================================================================== --- incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java (original) +++ incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java Thu Jun 9 00:25:27 2011 @@ -107,9 +107,13 @@ public class RunARQ System.out.println("DONE") ; System.exit(code) ; } + + // count(filter) + public static void main(String[] argv) throws Exception { + arq.qparse.main("--file=Q.arq") ; exit(0) ; String x = StrUtils.strjoinNL("(join", Modified: incubator/jena/Jena2/ARQ/trunk/src-test/org/openjena/atlas/iterator/TestIter.java URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-test/org/openjena/atlas/iterator/TestIter.java?rev=1133613&r1=1133612&r2=1133613&view=diff ============================================================================== --- incubator/jena/Jena2/ARQ/trunk/src-test/org/openjena/atlas/iterator/TestIter.java (original) +++ incubator/jena/Jena2/ARQ/trunk/src-test/org/openjena/atlas/iterator/TestIter.java Thu Jun 9 00:25:27 2011 @@ -1,5 +1,6 @@ /* * (c) Copyright 2008, 2009 Hewlett-Packard Development Company, LP + * (c) Copyright 2011 Epimorphics Ltd. * All rights reserved. * [See end of file] */ @@ -20,18 +21,9 @@ import org.junit.Test ; public class TestIter { List data0 = new ArrayList() ; - List data1 = new ArrayList() ; - { - data1.add("a") ; - } - - List data2 = new ArrayList() ; - { - data2.add("x") ; - data2.add("y") ; - data2.add("z") ; - } - + List data1 = Arrays.asList("a") ; + List data2 = Arrays.asList("x","y","z") ; + @Test public void append_1() { @@ -131,11 +123,101 @@ public class TestIter String z = Iter.foldRight(Arrays.asList(x), f1, "X") ; assertEquals("X", z) ; } + + Filter filter = new Filter() { + public boolean accept(String item) + { + return item.length() == 1 ; + }} ; + + @Test + public void first_01() + { + Iter iter = Iter.nullIter() ; + assertEquals(null, Iter.first(iter, filter)) ; + } + + @Test + public void first_02() + { + List data = Arrays.asList( "11", "A", "B", "C") ; + assertEquals("A", Iter.first(data, filter)) ; + } + + @Test + public void first_03() + { + List data = Arrays.asList( "11", "AA", "BB", "CC") ; + assertEquals(null, Iter.first(data, filter)) ; + } + + @Test + public void first_04() + { + Iter iter = Iter.nullIter() ; + assertEquals(-1, Iter.firstIndex(iter, filter)) ; + } + + @Test + public void first_05() + { + List data = Arrays.asList( "11", "A", "B", "C") ; + assertEquals(1, Iter.firstIndex(data, filter)) ; + } + @Test + public void first_06() + { + List data = Arrays.asList( "11", "AA", "BB", "CC") ; + assertEquals(-1, Iter.firstIndex(data, filter)) ; + } + + @Test + public void last_01() + { + Iter iter = Iter.nullIter() ; + assertEquals(null, Iter.last(iter, filter)) ; + } + + @Test + public void last_02() + { + List data = Arrays.asList( "11", "A", "B", "C") ; + assertEquals("C", Iter.last(data, filter)) ; + } + + @Test + public void last_03() + { + List data = Arrays.asList( "11", "AA", "BB", "CC") ; + assertEquals(null, Iter.last(data, filter)) ; + } + + @Test + public void last_04() + { + Iter iter = Iter.nullIter() ; + assertEquals(-1, Iter.lastIndex(iter, filter)) ; + } + + @Test + public void last_05() + { + List data = Arrays.asList( "11", "A", "B", "C") ; + assertEquals(3, Iter.lastIndex(data, filter)) ; + } + + @Test + public void last_06() + { + List data = Arrays.asList( "11", "AA", "BB", "CC") ; + assertEquals(-1, Iter.firstIndex(data, filter)) ; + } } /* * (c) Copyright 2008, 2009 Hewlett-Packard Development Company, LP + * (c) Copyright 2011 Epimorphics Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/iterator/Iter.java URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/iterator/Iter.java?rev=1133613&r1=1133612&r2=1133613&view=diff ============================================================================== --- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/iterator/Iter.java (original) +++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/iterator/Iter.java Thu Jun 9 00:25:27 2011 @@ -1,6 +1,6 @@ /* * (c) Copyright 2007, 2008, 2009 Hewlett-Packard Development Company, LP - * (c) Copyright 2010 Epimorphics Ltd. + * (c) Copyright 2010, 2011 Epimorphics Ltd. * All rights reserved. * [See end of file] */ @@ -497,6 +497,65 @@ public class Iter implements Iterable return iter1 ; return Iter.iter(iter1).append(Iter.iter(iter2)) ; } + + public static T first(Iterator iter, Filter filter) + { + for ( int idx = 0 ; iter.hasNext() ; idx++ ) + { + T t = iter.next(); + if ( filter.accept(t)) + return t ; + //return idx ; + } + return null ; + } + + public static T first(Collection collection, Filter filter) + { return first(collection.iterator(), filter) ; } + + public static int firstIndex(Iterator iter, Filter filter) + { + for ( int idx = 0 ; iter.hasNext() ; idx++ ) + { + T t = iter.next(); + if ( filter.accept(t)) + return idx ; + } + return -1 ; + } + + public static int firstIndex(Collection collection, Filter filter) + { return firstIndex(collection.iterator(), filter) ; } + + public static T last(Iterator iter, Filter filter) + { + T thing = null ; + for ( int idx = 0 ; iter.hasNext() ; idx++ ) + { + T t = iter.next(); + if ( filter.accept(t)) + thing = t ; + } + return thing ; + } + + public static T last(Collection collection, Filter filter) + { return last(collection.iterator(), filter) ; } + + public static int lastIndex(Iterator iter, Filter filter) + { + int location = -1 ; + for ( int idx = 0 ; iter.hasNext() ; idx++ ) + { + T t = iter.next(); + if ( filter.accept(t)) + location = idx ; + } + return location ; + } + + public static int lastIndex(Collection collection, Filter filter) + { return lastIndex(collection.iterator(), filter) ; } // ------------------------------------------------------ // The class. @@ -519,6 +578,25 @@ public class Iter implements Iterable sendToSink(iterator, sink) ; } + public T first(Filter filter) + { + return first(iterator, filter) ; + } + + public int firstIndex(Filter filter) + { + return firstIndex(iterator, filter) ; + } + + public T last(Filter filter) + { + return last(iterator, filter) ; + } + + public int lastIndex(Filter filter) + { + return lastIndex(iterator, filter) ; + } public Iter filter(Filter filter) { @@ -619,7 +697,7 @@ public class Iter implements Iterable /* * (c) Copyright 2007, 2008, 2009 Hewlett-Packard Development Company, LP - * (c) Copyright 2010 Epimorphics Ltd. + * (c) Copyright 2010, 2011 Epimorphics Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without