You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/06/09 02:25:27 UTC

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

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<String> data0 = new ArrayList<String>() ;
-    List<String> data1 = new ArrayList<String>() ;
-    {
-        data1.add("a") ;
-    }
-    
-    List<String> data2 = new ArrayList<String>() ;
-    {
-        data2.add("x") ;
-        data2.add("y") ;
-        data2.add("z") ;
-    }
-
+    List<String> data1 = Arrays.asList("a") ;
+    List<String> 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<String> filter = new Filter<String>() {
+        public boolean accept(String item)
+        {
+            return item.length() == 1 ;
+        }} ;
+   
+    @Test
+    public void first_01()
+    {
+        Iter<String> iter = Iter.nullIter() ;
+        assertEquals(null, Iter.first(iter, filter)) ;
+    }
+
+    @Test
+    public void first_02()
+    {
+        List<String> data = Arrays.asList( "11", "A", "B", "C") ;
+        assertEquals("A", Iter.first(data, filter)) ;
+    }
+
+    @Test
+    public void first_03()
+    {
+        List<String> data = Arrays.asList( "11", "AA", "BB", "CC") ;
+        assertEquals(null, Iter.first(data, filter)) ;
+    }
+ 
+    @Test
+    public void first_04()
+    {
+        Iter<String> iter = Iter.nullIter() ;
+        assertEquals(-1, Iter.firstIndex(iter, filter)) ;
+    }
+
+    @Test
+    public void first_05()
+    {
+        List<String> data = Arrays.asList( "11", "A", "B", "C") ;
+        assertEquals(1, Iter.firstIndex(data, filter)) ;
+    }
 
+    @Test
+    public void first_06()
+    {
+        List<String> data = Arrays.asList( "11", "AA", "BB", "CC") ;
+        assertEquals(-1, Iter.firstIndex(data, filter)) ;
+    }
+
+    @Test
+    public void last_01()
+    {
+        Iter<String> iter = Iter.nullIter() ;
+        assertEquals(null, Iter.last(iter, filter)) ;
+    }
+
+    @Test
+    public void last_02()
+    {
+        List<String> data = Arrays.asList( "11", "A", "B", "C") ;
+        assertEquals("C", Iter.last(data, filter)) ;
+    }
+
+    @Test
+    public void last_03()
+    {
+        List<String> data = Arrays.asList( "11", "AA", "BB", "CC") ;
+        assertEquals(null, Iter.last(data, filter)) ;
+    }
+ 
+    @Test
+    public void last_04()
+    {
+        Iter<String> iter = Iter.nullIter() ;
+        assertEquals(-1, Iter.lastIndex(iter, filter)) ;
+    }
+
+    @Test
+    public void last_05()
+    {
+        List<String> data = Arrays.asList( "11", "A", "B", "C") ;
+        assertEquals(3, Iter.lastIndex(data, filter)) ;
+    }
+
+    @Test
+    public void last_06()
+    {
+        List<String> 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<T> implements Iterable
             return iter1 ;
         return Iter.iter(iter1).append(Iter.iter(iter2)) ;
     }
+    
+    public static <T> T first(Iterator<T> iter, Filter<T> 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> T first(Collection<T> collection, Filter<T> filter)
+    { return first(collection.iterator(), filter) ; }
+
+    public static <T> int firstIndex(Iterator<T> iter, Filter<T> filter)
+    {
+        for ( int idx = 0 ; iter.hasNext() ; idx++ )
+        {
+            T t = iter.next();
+            if ( filter.accept(t))
+                return idx ;
+        }
+        return -1 ;
+    }
+
+    public static <T> int firstIndex(Collection<T> collection, Filter<T> filter)
+    { return firstIndex(collection.iterator(), filter) ; }
+
+    public static <T> T last(Iterator<T> iter, Filter<T> 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> T last(Collection<T> collection, Filter<T> filter)
+    { return last(collection.iterator(), filter) ; }
+
+    public static <T> int lastIndex(Iterator<T> iter, Filter<T> 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 <T> int lastIndex(Collection<T> collection, Filter<T> filter)
+    { return lastIndex(collection.iterator(), filter) ; }
 
     // ------------------------------------------------------
     // The class.
@@ -519,6 +578,25 @@ public class Iter<T> implements Iterable
         sendToSink(iterator, sink) ;
     }
     
+    public T first(Filter<T> filter)
+    {
+        return first(iterator, filter) ;
+    }
+
+    public int firstIndex(Filter<T> filter)
+    {
+        return firstIndex(iterator, filter) ;
+    }
+
+    public T last(Filter<T> filter)
+    {
+        return last(iterator, filter) ;
+    }
+
+    public int lastIndex(Filter<T> filter)
+    {
+        return lastIndex(iterator, filter) ;
+    }
 
     public Iter<T> filter(Filter<T> filter)
     {
@@ -619,7 +697,7 @@ public class Iter<T> 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