http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java index ff87bcc..192953f 100644 --- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java +++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java @@ -21,8 +21,6 @@ package org.apache.jena.riot.thrift; import java.io.ByteArrayInputStream ; import java.io.ByteArrayOutputStream ; import java.util.Iterator ; - -import org.apache.jena.atlas.iterator.Filter ; import org.apache.jena.atlas.iterator.Iter ; import org.apache.jena.atlas.junit.BaseTest ; import org.apache.jena.atlas.lib.StrUtils ; @@ -130,7 +128,7 @@ public class TestStreamRDFThrift extends BaseTest { boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ; assertTrue(b) ; // Stronger - same bNode and same as in original data. - Node obj = Iter.first(dsg1.listGraphNodes(), filterBlankNode) ; + Node obj = Iter.first(dsg1.listGraphNodes(), Node::isBlank) ; termAsObject(dsg1, obj) ; } @@ -149,7 +147,7 @@ public class TestStreamRDFThrift extends BaseTest { boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ; assertTrue(b) ; // Stronger - same bNode and same as in original data. - Node obj = Iter.first(dsg1.listGraphNodes(), filterBlankNode) ; + Node obj = Iter.first(dsg1.listGraphNodes(), Node::isBlank) ; termAsObject(dsg1, obj) ; } @@ -174,13 +172,6 @@ public class TestStreamRDFThrift extends BaseTest { fail("Failed to find "+term) ; } - static Filter<Node> filterBlankNode = new Filter<Node>() { - @Override - public boolean accept(Node item) { - return item.isBlank() ; - } - } ; - // ** Java8 // public static <T> Stream<T> stream(Iterator<? extends T> iterator) { // int characteristics = Spliterator.ORDERED | Spliterator.IMMUTABLE;
http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java index de2630e..d9c14ab 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java @@ -18,7 +18,12 @@ package org.apache.jena.atlas.iterator; -public interface Action<T> +import java.util.function.Consumer; + +/** + * Prefer {@link Consumer} + */ +@Deprecated +public interface Action<T> extends Consumer<T> { - public void apply(T item) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java index 20f837c..1ec0354 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java @@ -18,13 +18,15 @@ package org.apache.jena.atlas.iterator; +import java.util.function.Consumer; -public class ActionCount<T> implements Action<T> + +public class ActionCount<T> implements Consumer<T> { private long count = 0 ; @Override - public void apply(T item) + public void accept(T item) { count++ ; } public long getCount() { return count ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java deleted file mode 100644 index d05b279..0000000 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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. - */ - -package org.apache.jena.atlas.iterator; - - -public class ActionNothing<T> implements Action<T> -{ - @Override - public void apply(T item) { } -} http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java index 5d427c5..689f5bc 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java @@ -18,5 +18,11 @@ package org.apache.jena.atlas.iterator; +import java.util.function.Predicate; + +/** + * Prefer {@link Predicate}. + */ @FunctionalInterface -public interface Filter <T> { boolean accept(T item) ; } +@Deprecated +public interface Filter <T> extends Predicate<T>{ } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java index 3beb832..e2bc4b4 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java @@ -18,17 +18,17 @@ package org.apache.jena.atlas.iterator; +import java.util.function.Predicate; + import org.apache.jena.atlas.lib.Lib ; -public class FilterDistinctAdjacent<T> implements Filter<T> +public class FilterDistinctAdjacent<T> implements Predicate<T> { private boolean isSet = false ; private T last = null ; - public FilterDistinctAdjacent() { } - @Override - public boolean accept(T item) + public boolean test(T item) { if ( isSet && Lib.equal(last, item) ) return false ; http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java deleted file mode 100644 index 21cd471..0000000 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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. - */ - -package org.apache.jena.atlas.iterator; - - -public class FilterOutNulls<T> implements Filter<T> -{ - public FilterOutNulls() { } - - @Override - public boolean accept(T item) - { - return item != null ; - } - -} http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java index 479d93f..c4d5e86 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java @@ -18,24 +18,26 @@ package org.apache.jena.atlas.iterator; +import java.util.function.Predicate; + /** * Add a filter to a chain - the original filter is called after this new sub-filter. */ -public abstract class FilterStack<T> implements Filter<T> +public abstract class FilterStack<T> implements Predicate<T> { - private final Filter<T> other ; + private final Predicate<T> other ; private final boolean subFilterLast ; - public FilterStack(Filter<T> other) { this(other, false) ; } + public FilterStack(Predicate<T> other) { this(other, false) ; } - public FilterStack(Filter<T> other, boolean callOldFilterFirst) + public FilterStack(Predicate<T> other, boolean callOldFilterFirst) { this.other = other ; this.subFilterLast = callOldFilterFirst ; } @Override - public final boolean accept(T item) + public final boolean test(T item) { if ( subFilterLast ) return acceptAdditionaOther(item) ; @@ -48,7 +50,7 @@ public abstract class FilterStack<T> implements Filter<T> if ( ! acceptAdditional(item) ) return false ; - if ( other != null && ! other.accept(item) ) + if ( other != null && ! other.test(item) ) return false ; return true ; @@ -56,7 +58,7 @@ public abstract class FilterStack<T> implements Filter<T> private boolean acceptOtherAdditional(T item) { - if ( other != null && ! other.accept(item) ) + if ( other != null && ! other.test(item) ) return false ; return acceptAdditional(item) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java index 2b2a957..4f21072 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java @@ -20,20 +20,16 @@ package org.apache.jena.atlas.iterator; import java.util.HashSet ; import java.util.Set ; +import java.util.function.Predicate; -public class FilterUnique<T> implements Filter<T> +public class FilterUnique<T> implements Predicate<T> { private Set<T> seen = new HashSet<>() ; - public FilterUnique() { } - @Override - public boolean accept(T item) + public boolean test(T item) { - if ( seen.contains(item) ) - return false ; - seen.add(item) ; - return true ; + return seen.add(item) ; } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java index 8aec2ea..fc0a534 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java @@ -20,10 +20,12 @@ package org.apache.jena.atlas.iterator ; import java.io.PrintStream ; import java.util.* ; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Stream ; import java.util.stream.StreamSupport ; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Closeable ; import org.apache.jena.atlas.lib.Sink ; @@ -182,27 +184,20 @@ public class Iter<T> implements Iterator<T> { // apply(stream.iterator(), action) ; // } - public static <T> void apply(Iterator<? extends T> stream, Action<T> action) { + public static <T> void apply(Iterator<? extends T> stream, Consumer<T> action) { for (; stream.hasNext();) { T item = stream.next() ; - action.apply(item) ; + action.accept(item) ; } } - // -- Map specific apply. No results - do immediately. - - public static <K, V> void apply(Map<K, V> map, ActionKeyValue<K, V> action) { - for (Map.Entry<K, V> entry : map.entrySet()) - action.apply(entry.getKey(), entry.getValue()) ; - } - // ---- Filter // public static <T> Iterator<T> filter(Iterable<? extends T> stream, Filter<T> filter) { // return filter(stream.iterator(), filter) ; // } - public static <T> Iterator<T> filter(final Iterator<? extends T> stream, final Filter<T> filter) { + public static <T> Iterator<T> filter(final Iterator<? extends T> stream, final Predicate<T> filter) { final Iterator<T> iter = new Iterator<T>() { boolean finished = false ; @@ -219,7 +214,7 @@ public class Iter<T> implements Iterator<T> { break ; } T nextItem = stream.next() ; - if ( filter.accept(nextItem) ) { + if ( filter.test(nextItem) ) { slot = nextItem ; slotOccupied = true ; break ; @@ -246,29 +241,12 @@ public class Iter<T> implements Iterator<T> { return iter ; } - private static class InvertedFilter<T> implements Filter<T> { - public static <T> Filter<T> invert(Filter<T> filter) { - return new InvertedFilter<>(filter) ; - } - private Filter<T> baseFilter ; - - private InvertedFilter(Filter<T> baseFilter) { - this.baseFilter = baseFilter ; - } - - @Override - public boolean accept(T item) { - return !baseFilter.accept(item) ; - } - } - // public static <T> Iterator<T> notFilter(Iterable<? extends T> stream, Filter<T> filter) { // return notFilter(stream.iterator(), filter) ; // } - public static <T> Iterator<T> notFilter(final Iterator<? extends T> stream, final Filter<T> filter) { - Filter<T> flippedFilter = InvertedFilter.invert(filter) ; - return filter(stream, flippedFilter) ; + public static <T> Iterator<T> notFilter(final Iterator<? extends T> stream, final Predicate<T> filter) { + return filter(stream, filter.negate()) ; } // Filter-related @@ -288,10 +266,10 @@ public class Iter<T> implements Iterator<T> { * Return true if every element of stream passes the filter (reads the * stream until the first element not passing the filter) */ - public static <T> boolean every(Iterator<? extends T> stream, Filter<T> filter) { + public static <T> boolean every(Iterator<? extends T> stream, Predicate<T> filter) { for (; stream.hasNext();) { T item = stream.next() ; - if ( !filter.accept(item) ) + if ( !filter.test(item) ) return false ; } return true ; @@ -312,10 +290,10 @@ public class Iter<T> implements Iterator<T> { * Return true if one or more elements of stream passes the filter (reads * the stream to first element passing the filter) */ - public static <T> boolean some(Iterator<? extends T> stream, Filter<T> filter) { + public static <T> boolean some(Iterator<? extends T> stream, Predicate<T> filter) { for (; stream.hasNext();) { T item = stream.next() ; - if ( filter.accept(item) ) + if ( filter.test(item) ) return true ; } return false ; @@ -327,7 +305,7 @@ public class Iter<T> implements Iterator<T> { // return map(stream.iterator(), converter) ; // } - public static <T, R> Iterator<R> map(final Iterator<? extends T> stream, final Transform<T, R> converter) { + public static <T, R> Iterator<R> map(final Iterator<? extends T> stream, final Function<T, R> converter) { final Iterator<R> iter = new Iterator<R>() { @Override public boolean hasNext() { @@ -336,7 +314,7 @@ public class Iter<T> implements Iterator<T> { @Override public R next() { - return converter.convert(stream.next()) ; + return converter.apply(stream.next()) ; } @Override @@ -347,68 +325,14 @@ public class Iter<T> implements Iterator<T> { return iter ; } - public static <T, R> List<R> map(List<? extends T> list, Transform<T, R> converter) { + public static <T, R> List<R> map(List<? extends T> list, Function<T, R> converter) { return toList(map(list.iterator(), converter)) ; } - /** - * Projects each element of a sequence to an Iterator<R> and flattens - * the resulting sequences into one sequence. - */ - public static <T, R> Iterator<R> mapMany(final Iterator<? extends T> stream, - final Transform<? super T, Iterator<R>> converter) { - final Iterator<R> iter = new Iterator<R>() { - - private Iterator<? extends R> it = null ; // Iterator for the - // current element of - // stream. - - @Override - public boolean hasNext() { - if ( it != null && it.hasNext() ) - // Element of the current iterator. - return true ; - // Start or current iterator has ended. - it = null ; - - // Need to move to next non-empty iterator of the stream. - while (stream.hasNext()) { - it = converter.convert(stream.next()) ; - if ( it.hasNext() ) - // There is something. - return true ; - } - it = null ; - // Stream ran out. - return false ; - } - - @Override - public R next() { - if ( !hasNext() ) - throw new NoSuchElementException() ; - // "it" is always left with something to yield if hashNext is - // true. - return it.next() ; - } - - @Override - public void remove() { - throw new UnsupportedOperationException("mapMany.remove") ; - } - } ; - - return iter ; - } - // public static <T, R> Iterator<R> mapMany(Iterable<? extends T> stream, Transform<T, Iterator<R>> converter) { // return mapMany(stream.iterator(), converter) ; // } - public static <T, R> List<R> mapMany(List<? extends T> list, Transform<T, Iterator<R>> converter) { - return toList(mapMany(list.iterator(), converter)) ; - } - // /** // * Apply an action to everything in stream, yielding a stream of the same // * items @@ -421,7 +345,7 @@ public class Iter<T> implements Iterator<T> { * Apply an action to everything in stream, yielding a stream of the same * items */ - public static <T> Iterator<T> operate(final Iterator<? extends T> stream, final Action<T> action) { + public static <T> Iterator<T> operate(final Iterator<? extends T> stream, final Consumer<T> action) { final Iterator<T> iter = new Iterator<T>() { @Override public boolean hasNext() { @@ -431,7 +355,7 @@ public class Iter<T> implements Iterator<T> { @Override public T next() { T t = stream.next() ; - action.apply(t) ; + action.accept(t) ; return t ; } @@ -450,13 +374,7 @@ public class Iter<T> implements Iterator<T> { /** Print an iterator as it gets used - this adds a printing wrapper */ public static <T> Iterator<T> printWrapper(final PrintStream out, final Iterator<? extends T> stream) { - Action<T> action = new Action<T>() { - @Override - public void apply(T item) { - out.println(item) ; - } - } ; - return Iter.operate(stream, action) ; + return Iter.operate(stream, out::println) ; } // /** Join two iteratables @@ -502,7 +420,7 @@ public class Iter<T> implements Iterator<T> { // } public static <T> Iterator<T> removeNulls(Iterator<T> iter) { - return filter(iter, new FilterOutNulls<T>()) ; + return filter(iter, x -> x != null) ; } /** Take the first N elements of an iterator - stop early if too few */ @@ -667,14 +585,7 @@ public class Iter<T> implements Iterator<T> { */ public static <T> Iterator<T> debug(final PrintStream out, Iterator<T> stream) { try { - Transform<T, T> x = new Transform<T, T>() { - @Override - public T convert(T item) { - out.println(item) ; - return item ; - } - } ; - return map(stream, x) ; + return map(stream, item -> {out.println(item); return item;}) ; } finally { out.flush() ; } } @@ -685,14 +596,7 @@ public class Iter<T> implements Iterator<T> { /** Print an iterator (destructive) */ public static <T> void print(final PrintStream out, Iterator<T> stream) { - Action<T> x = new Action<T>() { - @Override - public void apply(T item) { - out.println(item) ; - } - - } ; - apply(stream, x) ; + apply(stream, out::println) ; } // /** Print an iterable */ @@ -782,58 +686,57 @@ public class Iter<T> implements Iterator<T> { 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++) { + public static <T> T first(Iterator<T> iter, Predicate<T> filter) { + while (iter.hasNext()) { T t = iter.next() ; - if ( filter.accept(t) ) + if ( filter.test(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> T first(Collection<T> collection, Predicate<T> filter) { + return collection.stream().filter(filter).findFirst().orElse(null); } - public static <T> int firstIndex(Iterator<T> iter, Filter<T> filter) { + public static <T> int firstIndex(Iterator<T> iter, Predicate<T> filter) { for (int idx = 0; iter.hasNext(); idx++) { T t = iter.next() ; - if ( filter.accept(t) ) + if ( filter.test(t) ) return idx ; } return -1 ; } - public static <T> int firstIndex(Collection<T> collection, Filter<T> filter) { + public static <T> int firstIndex(Collection<T> collection, Predicate<T> filter) { return firstIndex(collection.iterator(), filter) ; } - public static <T> T last(Iterator<T> iter, Filter<T> filter) { + public static <T> T last(Iterator<T> iter, Predicate<T> filter) { T thing = null ; - for (int idx = 0; iter.hasNext(); idx++) { + while (iter.hasNext()) { T t = iter.next() ; - if ( filter.accept(t) ) + if ( filter.test(t) ) thing = t ; } return thing ; } - public static <T> T last(Collection<T> collection, Filter<T> filter) { + public static <T> T last(Collection<T> collection, Predicate<T> filter) { return last(collection.iterator(), filter) ; } - public static <T> int lastIndex(Iterator<T> iter, Filter<T> filter) { + public static <T> int lastIndex(Iterator<T> iter, Predicate<T> filter) { int location = -1 ; for (int idx = 0; iter.hasNext(); idx++) { T t = iter.next() ; - if ( filter.accept(t) ) + if ( filter.test(t) ) location = idx ; } return location ; } - public static <T> int lastIndex(Collection<T> collection, Filter<T> filter) { + public static <T> int lastIndex(Collection<T> collection, Predicate<T> filter) { return lastIndex(collection.iterator(), filter) ; } @@ -858,39 +761,39 @@ public class Iter<T> implements Iterator<T> { sendToSink(iterator, sink) ; } - public T first(Filter<T> filter) { + public T first(Predicate<T> filter) { return first(iterator, filter) ; } - public int firstIndex(Filter<T> filter) { + public int firstIndex(Predicate<T> filter) { return firstIndex(iterator, filter) ; } - public T last(Filter<T> filter) { + public T last(Predicate<T> filter) { return last(iterator, filter) ; } - public int lastIndex(Filter<T> filter) { + public int lastIndex(Predicate<T> filter) { return lastIndex(iterator, filter) ; } - public Iter<T> filter(Filter<T> filter) { + public Iter<T> filter(Predicate<T> filter) { return iter(filter(iterator, filter)) ; } - public boolean every(Filter<T> filter) { + public boolean every(Predicate<T> filter) { return every(iterator, filter) ; } - public boolean some(Filter<T> filter) { + public boolean some(Predicate<T> filter) { return some(iterator, filter) ; } public Iter<T> removeNulls() { - return filter(new FilterOutNulls<T>()) ; + return filter(x -> x != null) ; } - public <R> Iter<R> map(Transform<T, R> converter) { + public <R> Iter<R> map(Function<T, R> converter) { return iter(map(iterator, converter)) ; } @@ -898,7 +801,7 @@ public class Iter<T> implements Iterator<T> { * Apply an action to everything in the stream, yielding a stream of the * same items */ - public Iter<T> operate(Action<T> action) { + public Iter<T> operate(Consumer<T> action) { return iter(operate(iterator, action)) ; } @@ -906,7 +809,7 @@ public class Iter<T> implements Iterator<T> { return reduce(iterator, aggregator) ; } - public void apply(Action<T> action) { + public void apply(Consumer<T> action) { apply(iterator, action) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java index ee45935..a8cb1b2 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java @@ -18,10 +18,16 @@ package org.apache.jena.atlas.iterator; +import java.util.Arrays; import java.util.Iterator ; import java.util.NoSuchElementException ; +import java.util.Spliterator; /** Iterator over a Java base array */ +/** + * Prefer {@link Arrays#spliterator(Object[])} or {@link Arrays#stream(Object[])} + */ +@Deprecated public final class IteratorArray<T> implements Iterator<T> { /** Iterator over all the array elements */ http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java deleted file mode 100644 index 3c6492e..0000000 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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. - */ - -package org.apache.jena.atlas.iterator; - -import java.util.Map ; - -import org.apache.jena.atlas.lib.ActionKeyValue ; - - - -public class MapUtils -{ - // Map specific operations - - public static <K, V> void apply(Map<K, V> map, ActionKeyValue<K, V> action) - { - for ( Map.Entry<K,V> entry : map.entrySet() ) - action.apply(entry.getKey(), entry.getValue()) ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java index d5d6a0a..67fc3af 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java @@ -18,4 +18,10 @@ package org.apache.jena.atlas.iterator; -public interface Transform <T, R> { R convert(T item) ; } +import java.util.function.Function; + +/** + * Prefer {@link Function}. + */ +@Deprecated +public interface Transform <T, R> extends Function<T,R>{ } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java index 894107a..12dadab 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java @@ -18,7 +18,12 @@ package org.apache.jena.atlas.lib; -public interface ActionKeyValue<KeyType, ValueType> +import java.util.function.BiConsumer; + +/** + * Prefer {@link BiConsumer<KeyType, ValueType>}. + */ +@Deprecated +public interface ActionKeyValue<KeyType, ValueType> extends BiConsumer<KeyType, ValueType> { - public void apply(KeyType key, ValueType value) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java index d7fa711..8ebf2d7 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java @@ -20,6 +20,7 @@ package org.apache.jena.atlas.lib; import java.util.Iterator ; import java.util.concurrent.Callable ; +import java.util.function.BiConsumer; /** A cache */ public interface Cache<Key, Value> @@ -52,5 +53,5 @@ public interface Cache<Key, Value> public long size() ; /** Register a callback - called when an object is dropped from the cache (optional operation) */ - public void setDropHandler(ActionKeyValue<Key,Value> dropHandler) ; + public void setDropHandler(BiConsumer<Key,Value> dropHandler) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java index f5c3d22..0f709b0 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java @@ -18,7 +18,7 @@ package org.apache.jena.atlas.lib; -import org.apache.jena.atlas.iterator.Action ; +import java.util.function.Consumer; public interface CacheSet<T> { @@ -30,5 +30,5 @@ public interface CacheSet<T> public void remove(T obj) ; public long size() ; /** Register a callback - called when an object is dropped from the cache (optional operation) */ - public void setDropHandler(Action<T> dropHandler) ; + public void setDropHandler(Consumer<T> dropHandler) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java index 2b6002a..e2f6dfd 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java @@ -21,7 +21,7 @@ package org.apache.jena.atlas.lib; /** Close this object. * This form does not allow Exceptions (it does allow RuntimeExceptions). */ -public interface Closeable +public interface Closeable extends java.io.Closeable { public void close() ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java index 8bae6a4..759e543 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java @@ -19,34 +19,16 @@ package org.apache.jena.atlas.lib; import java.util.Collection ; -import java.util.Iterator ; +import java.util.Objects; public class CollectionUtils { static public <T> void removeNulls(Collection<T> list) - { - for ( Iterator<T> iter = list.iterator() ; iter.hasNext() ; ) - { - T e = iter.next() ; - if ( e == null ) - iter.remove() ; - } + { + list.removeIf(Objects::isNull); } static public <T> boolean disjoint(Collection<T> c1, Collection<T> c2) { - if ( c2.size() < c1.size() ) - { - Collection<T> t = c1 ; - c1 = c2 ; - c2 = t ; - } - - for ( T t : c1 ) - { - if ( c2.contains(t) ) - return false ; - } - return true ; - } + return c1.stream().noneMatch(c2::contains); } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java index 6c9c442..a866d59 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java @@ -24,6 +24,7 @@ import java.util.zip.CRC32 ; import java.util.zip.Checksum ; import org.apache.jena.atlas.logging.Log ; +import org.apache.jena.ext.com.google.common.base.Objects; public class Lib { @@ -35,15 +36,13 @@ public class Lib ((Sync)object).sync() ; } - /** Return true if obj1 and obj are both null or are .equals, else return false */ + /** Return true if obj1 and obj are both null or are .equals, else return false + * Prefer {@link Objects#equal(Object, Object)} + */ + @Deprecated public static final <T> boolean equal(T obj1, T obj2) { - if ( obj1 == null ) - return obj2 == null ; - // obj1 != null - if ( obj2 == null ) - return false ; - return obj1.equals(obj2) ; + return Objects.equal(obj1, obj2); } /** Return true if obj1 and obj are both null or are .equals, else return false */ http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java index 78d591a..8315236 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java @@ -20,10 +20,9 @@ package org.apache.jena.atlas.lib; import java.util.ArrayList ; import java.util.List ; - +import java.util.function.Consumer; import org.apache.jena.atlas.io.IndentedWriter ; -import org.apache.jena.atlas.iterator.Action ; import org.apache.jena.atlas.iterator.FilterUnique ; import org.apache.jena.atlas.iterator.Iter ; import org.apache.jena.atlas.logging.Log ; @@ -101,10 +100,10 @@ public class ListUtils public static <T> void print(final IndentedWriter out, List<T> list, final String sep) { - Action<T> output = new Action<T>() { + Consumer<T> output = new Consumer<T>() { boolean first = true ; @Override - public void apply(T item) + public void accept(T item) { if ( ! first ) out.print(sep) ; out.print(item.toString()) ; http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java deleted file mode 100644 index 7999a25..0000000 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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. - */ - -package org.apache.jena.atlas.lib; - -import java.util.Map ; - -/** Map specific functions */ -public class MapUtils -{ - private MapUtils() {} - - public static <K, V> void apply(Map<K, V> map, ActionKeyValue<K, V> action) - { - for ( Map.Entry<K,V> entry : map.entrySet() ) - action.apply(entry.getKey(), entry.getValue()) ; - } - - public static <T> void increment(Map<T, Integer> countMap, T key) - { increment(countMap, key, 1) ; } - - public static <T> void increment(Map<T, Integer> countMap, T key, int incr) - { - Integer integer = countMap.get(key) ; - if ( integer == null ) - countMap.put(key, incr) ; - else - countMap.put(key, integer+incr) ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java deleted file mode 100644 index d571fe7..0000000 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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. - */ - -package org.apache.jena.atlas.lib; - -public class Problem extends RuntimeException -{ - public Problem(String msg) { super(msg) ; } - public Problem(String msg, Throwable th) { super(msg, th) ; } -} http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java index f4e561d..5cc65a9 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java @@ -38,12 +38,7 @@ public class SetUtils public static <T> boolean intersectionP(Set<? extends T> s1, Set<? extends T> s2) { - for( T elt : s1 ) - { - if ( s2.contains(elt) ) - return true ; - } - return false ; + return s1.stream().anyMatch(s2::contains); } public static <T> Set<T> union(Set<? extends T> s1, Set<? extends T> s2) @@ -61,24 +56,5 @@ public class SetUtils s3.removeAll(s2) ; return s3 ; } - - /** Return true if s1 and s2 are disjoint */ - public static <T> boolean isDisjoint(Set<? extends T> s1, Set<? extends T> s2) - { - Set<? extends T> x = s1 ; - Set<? extends T> y = s2 ; - if ( s1.size() < s2.size() ) - { - x = s2 ; - y = s1 ; - } - - for ( T item : x ) - { - if ( y.contains(item)) - return false ; - } - return true ; - } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java index ae944a7..35a97a5 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java @@ -21,10 +21,9 @@ package org.apache.jena.atlas.lib ; import java.util.Arrays ; import java.util.Iterator ; import java.util.List ; +import java.util.function.Function; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.IteratorArray ; -import org.apache.jena.atlas.iterator.Transform ; /** Tuple class - tuples are immutable and must be created initialized */ public class Tuple<T> implements Iterable<T> { @@ -48,22 +47,13 @@ public class Tuple<T> implements Iterable<T> { // TupleLib?? public static <T> Iterator<T> project(final int slot, Iterator<Tuple<T>> iter) { - Transform<Tuple<T>, T> projection = new Transform<Tuple<T>, T>() { - @Override - public T convert(Tuple<T> tuple) { - return tuple.get(slot) ; - } - } ; - return Iter.map(iter, projection) ; + return Iter.map(iter, t -> t.get(slot)) ; } public static <T> Iterator<Tuple<T>> prefix(final int prefixLength, Iterator<Tuple<T>> iter) { - Transform<Tuple<T>, Tuple<T>> sub = new Transform<Tuple<T>, Tuple<T>>() { - @Override - public Tuple<T> convert(Tuple<T> tuple) { - T[] x = ArrayUtils.copy(tuple.tuple, 0, prefixLength) ; - return Tuple.create(x) ; - } + Function<Tuple<T>, Tuple<T>> sub = t -> { + T[] x = ArrayUtils.copy(t.tuple, 0, prefixLength) ; + return Tuple.create(x) ; } ; return Iter.map(iter, sub) ; } @@ -100,7 +90,7 @@ public class Tuple<T> implements Iterable<T> { @Override public Iterator<T> iterator() { - return IteratorArray.create(tuple) ; + return Arrays.stream(tuple).iterator() ; } /** Return a tuple with the column mapping applied */ http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java index 00befa0..5b8b5cc 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java @@ -20,9 +20,9 @@ package org.apache.jena.atlas.lib.cache ; import java.util.Iterator ; import java.util.concurrent.Callable ; +import java.util.function.BiConsumer; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Cache ; /** A cache that keeps nothing */ @@ -67,6 +67,6 @@ public final class Cache0<K, V> implements Cache<K, V> { } @Override - public void setDropHandler(ActionKeyValue<K, V> dropHandler) {} + public void setDropHandler(BiConsumer<K, V> dropHandler) {} } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java index 38ab5c6..ffa6e0a 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java @@ -20,16 +20,16 @@ package org.apache.jena.atlas.lib.cache; import java.util.Iterator ; import java.util.concurrent.Callable ; +import java.util.function.BiConsumer; import org.apache.jena.atlas.iterator.SingletonIterator ; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Cache ; import org.apache.jena.atlas.lib.Lib ; /** A one-slot cache.*/ public class Cache1<K, V> implements Cache<K,V> { - private ActionKeyValue<K, V> dropHandler = null ; + private BiConsumer<K, V> dropHandler = null ; private K cacheKey ; private V cacheValue ; @@ -107,7 +107,7 @@ public class Cache1<K, V> implements Cache<K,V> } @Override - public void setDropHandler(ActionKeyValue<K, V> dropHandler) + public void setDropHandler(BiConsumer<K, V> dropHandler) { this.dropHandler = dropHandler ; } @@ -115,7 +115,7 @@ public class Cache1<K, V> implements Cache<K,V> private void notifyDrop(K key, V thing) { if ( dropHandler != null && key != null ) - dropHandler.apply(key, thing) ; + dropHandler.accept(key, thing) ; } @Override http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java index fd5959c..a25faa0 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java @@ -21,11 +21,10 @@ package org.apache.jena.atlas.lib.cache; import java.util.Iterator ; import java.util.concurrent.Callable ; import java.util.concurrent.ExecutionException ; +import java.util.function.BiConsumer; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Cache ; import org.apache.jena.atlas.logging.Log ; - import org.apache.jena.ext.com.google.common.cache.CacheBuilder ; import org.apache.jena.ext.com.google.common.cache.RemovalListener ; import org.apache.jena.ext.com.google.common.cache.RemovalNotification ; @@ -34,7 +33,7 @@ import org.apache.jena.ext.com.google.common.cache.RemovalNotification ; final public class CacheGuava<K,V> implements Cache<K, V> { - private ActionKeyValue<K, V> dropHandler = null ; + private BiConsumer<K, V> dropHandler = null ; /*private*/ org.apache.jena.ext.com.google.common.cache.Cache<K,V> cache ; public CacheGuava(int size) @@ -43,7 +42,7 @@ public class CacheGuava<K,V> implements Cache<K, V> @Override public void onRemoval(RemovalNotification<K, V> notification) { if ( dropHandler != null ) - dropHandler.apply(notification.getKey(), + dropHandler.accept(notification.getKey(), notification.getValue()) ; } } ; @@ -112,7 +111,7 @@ public class CacheGuava<K,V> implements Cache<K, V> } @Override - public void setDropHandler(ActionKeyValue<K, V> dropHandler) { + public void setDropHandler(BiConsumer<K, V> dropHandler) { this.dropHandler = dropHandler ; } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java index b3bf048..8a24d26 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java @@ -19,9 +19,9 @@ package org.apache.jena.atlas.lib.cache ; import java.util.Iterator ; +import java.util.function.BiConsumer; +import java.util.function.Consumer; -import org.apache.jena.atlas.iterator.Action ; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Cache ; import org.apache.jena.atlas.lib.CacheSet ; @@ -37,21 +37,21 @@ public class CacheSetImpl<T> implements CacheSet<T> { /** Callback for entries when dropped from the cache */ @Override - public void setDropHandler(Action<T> dropHandler) { + public void setDropHandler(Consumer<T> dropHandler) { cacheMap.setDropHandler(new Wrapper<T>(dropHandler)) ; } // From map action to set action. - static class Wrapper<T> implements ActionKeyValue<T, Object> { - Action<T> dropHandler ; + static class Wrapper<T> implements BiConsumer<T, Object> { + Consumer<T> dropHandler ; - public Wrapper(Action<T> dropHandler) { + public Wrapper(Consumer<T> dropHandler) { this.dropHandler = dropHandler ; } @Override - public void apply(T key, Object value) { - dropHandler.apply(key) ; + public void accept(T key, Object value) { + dropHandler.accept(key) ; } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java index fc3a3bd..8fdda11 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java @@ -18,7 +18,8 @@ package org.apache.jena.atlas.lib.cache ; -import org.apache.jena.atlas.iterator.Action ; +import java.util.function.Consumer; + import org.apache.jena.atlas.lib.CacheSet ; public class CacheSetSync<T> implements CacheSet<T> { @@ -59,7 +60,7 @@ public class CacheSetSync<T> implements CacheSet<T> { } @Override - synchronized public void setDropHandler(Action<T> dropHandler) { + synchronized public void setDropHandler(Consumer<T> dropHandler) { cache.setDropHandler(dropHandler) ; } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java index c11ffb0..3a36c97 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java @@ -18,7 +18,8 @@ package org.apache.jena.atlas.lib.cache ; -import org.apache.jena.atlas.iterator.Action ; +import java.util.function.Consumer; + import org.apache.jena.atlas.lib.CacheSet ; public class CacheSetWrapper<T> implements CacheSet<T> { @@ -59,7 +60,7 @@ public class CacheSetWrapper<T> implements CacheSet<T> { } @Override - public void setDropHandler(Action<T> dropHandler) { + public void setDropHandler(Consumer<T> dropHandler) { cache.setDropHandler(dropHandler) ; } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java index a33d8e2..9f889dd 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java @@ -18,13 +18,14 @@ package org.apache.jena.atlas.lib.cache; +import static java.util.Arrays.asList; + import java.util.Arrays ; import java.util.Iterator ; import java.util.concurrent.Callable ; +import java.util.function.BiConsumer; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.IteratorArray ; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Cache ; @@ -40,7 +41,7 @@ public class CacheSimple<K,V> implements Cache<K,V> private final K[] keys ; private final int size ; private int currentSize = 0 ; - private ActionKeyValue<K,V> dropHandler = null ; + private BiConsumer<K,V> dropHandler = null ; public CacheSimple(int size) { @@ -113,7 +114,7 @@ public class CacheSimple<K,V> implements Cache<K,V> // Drop the old K->V old = values[x] ; if ( dropHandler != null ) - dropHandler.apply(keys[x], old) ; + dropHandler.accept(keys[x], old) ; currentSize-- ; } @@ -142,7 +143,7 @@ public class CacheSimple<K,V> implements Cache<K,V> @Override public Iterator<K> keys() { - Iterator<K> iter = IteratorArray.create(keys) ; + Iterator<K> iter = asList(keys).iterator() ; return Iter.removeNulls(iter) ; } @@ -154,7 +155,7 @@ public class CacheSimple<K,V> implements Cache<K,V> /** Callback for entries when dropped from the cache */ @Override - public void setDropHandler(ActionKeyValue<K,V> dropHandler) + public void setDropHandler(BiConsumer<K,V> dropHandler) { this.dropHandler = dropHandler ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java index e655749..ef27228 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java @@ -19,8 +19,8 @@ package org.apache.jena.atlas.lib.cache; import java.util.Iterator ; import java.util.concurrent.Callable ; +import java.util.function.BiConsumer; -import org.apache.jena.atlas.lib.ActionKeyValue ; import org.apache.jena.atlas.lib.Cache ; @@ -56,7 +56,7 @@ public class CacheWrapper<Key,T> implements Cache<Key,T> public void remove(Key key) { cache.remove(key) ; } @Override - public void setDropHandler(ActionKeyValue<Key, T> dropHandler) + public void setDropHandler(BiConsumer<Key, T> dropHandler) { cache.setDropHandler(dropHandler) ; } @Override http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/base/Closeable.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/base/Closeable.java b/jena-base/src/main/java/org/apache/jena/base/Closeable.java deleted file mode 100644 index 59a06aa..0000000 --- a/jena-base/src/main/java/org/apache/jena/base/Closeable.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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. - */ - -package org.apache.jena.base; - -/** Close this object. - * This form does not allow Exceptions (it does allow RuntimeExceptions) - */ -public interface Closeable { - public void close() ; -} - http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java ---------------------------------------------------------------------- diff --git a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java index 56cf8a9..11550a1 100644 --- a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java +++ b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java @@ -26,6 +26,7 @@ import java.util.ArrayList ; import java.util.Arrays ; import java.util.Iterator ; import java.util.List ; +import java.util.function.Predicate; import org.junit.Test ; @@ -225,97 +226,11 @@ public class TestIter @Test public void map_01() { - Iterator<String> it = Iter.map(data2.iterator(), new Transform<String,String>() - { - @Override - public String convert(String item) - { - return item + item; - } - }); + Iterator<String> it = Iter.map(data2.iterator(), item -> item + item); test(it, "xx", "yy", "zz"); } - - @Test - public void mapMany_01() - { - Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>() - { - @Override - public Iterator<String> convert(String item) - { - List<String> l = new ArrayList<>(2); - l.add(item); - l.add(item + item); - return l.iterator(); - } - }); - - test(it, "x", "xx", "y", "yy", "z", "zz"); - } - - @Test - public void mapMany_02() - { - Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>() - { - @Override - public Iterator<String> convert(String item) - { - return Iter.nullIterator() ; - } - }); - - assertFalse(it.hasNext()) ; - } - - @Test - public void mapMany_03() - { - Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>() - { - int count = 0 ; - @Override - public Iterator<String> convert(String item) - { - count++ ; - if ( count%2 == 1 ) - return Iter.singleton(item) ; - else - return Iter.nullIterator() ; - } - }); - - test(it, "x", "z"); - } - - @Test - public void mapMany_04() - { - Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>() - { - int count = 0 ; - @Override - public Iterator<String> convert(String item) - { - count++ ; - if ( count%2 == 0 ) - return Iter.singleton(item) ; - else - return Iter.nullIterator() ; - } - }); - - test(it, "y"); - } - - Filter<String> filter = new Filter<String>() { - @Override - public boolean accept(String item) - { - return item.length() == 1 ; - }} ; + Predicate<String> filter = item -> item.length() == 1; @Test public void first_01() @@ -441,14 +356,7 @@ public class TestIter @Test public void filter_02() { - Iterator<String> it = Iter.filter(data3.iterator(), new Filter<String>() - { - @Override - public boolean accept(String item) - { - return "x".equals(item) || "z".equals(item) ; - } - }); + Iterator<String> it = Iter.filter(data3.iterator(), item -> "x".equals(item) || "z".equals(item)); test(it, "x", "z"); } @@ -456,14 +364,7 @@ public class TestIter @Test public void filter_03() { - Iterator<String> it = Iter.filter(data3.iterator(), new Filter<String>() - { - @Override - public boolean accept(String item) - { - return (null == item) || "x".equals(item) ; - } - }); + Iterator<String> it = Iter.filter(data3.iterator(), item -> null == item || "x".equals(item)); test(it, null, "x", null, null, null, null); } @@ -496,23 +397,8 @@ public class TestIter test(iter, "a", "b", "a") ; } - private static class AlwaysAcceptFilter implements Filter<Object> { - @Override - public boolean accept(Object o) { - return true; - } - } - - private static class NeverAcceptFilter implements Filter<Object> { - @Override - public boolean accept(Object o) { - return false; - } - } - - private static class AlwaysAcceptFilterStack extends FilterStack<Object> { - public AlwaysAcceptFilterStack(Filter<Object> f) { + public AlwaysAcceptFilterStack(Predicate<Object> f) { super(f); } @@ -524,16 +410,16 @@ public class TestIter @Test public void testFilterStack_01() { - Filter<Object> filter = new AlwaysAcceptFilter(); + Predicate<Object> filter = x -> true; FilterStack<Object> filterStack = new AlwaysAcceptFilterStack(filter); - assertTrue(filterStack.accept(new Object())); + assertTrue(filterStack.test(new Object())); } @Test public void testFilterStack_02() { - Filter<Object> filter = new NeverAcceptFilter(); + Predicate<Object> filter = x -> false; FilterStack<Object> filterStack = new AlwaysAcceptFilterStack(filter); - assertFalse(filterStack.accept(new Object())); + assertFalse(filterStack.test(new Object())); } } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java ---------------------------------------------------------------------- diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java index 7ac9351..84bb858 100644 --- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java +++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java @@ -24,10 +24,8 @@ import static org.apache.jena.fuseki.HttpNames.paramNamedGraphURI ; import java.util.Arrays ; import java.util.Collections ; import java.util.List ; - import javax.servlet.http.HttpServletRequest ; -import org.apache.jena.atlas.iterator.Filter ; import org.apache.jena.atlas.iterator.Iter ; import org.apache.jena.atlas.lib.Lib ; import org.apache.jena.query.Query ; @@ -76,17 +74,9 @@ public abstract class SPARQL_Protocol extends SPARQL_ServletBase private static List<String> removeEmptyValues(List<String> list) { - return Iter.iter(list).filter(acceptNonEmpty).toList() ; + return Iter.iter(list).filter(item -> item != null && item.length() != 0).toList() ; } - private static Filter<String> acceptNonEmpty = new Filter<String>(){ - @Override - public boolean accept(String item) - { - return item != null && item.length() != 0 ; - } - } ; - protected static int countParamOccurences(HttpServletRequest request, String param) { String[] x = request.getParameterValues(param) ; http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java index 4f5d5c9..2a19d03 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java @@ -24,10 +24,10 @@ import static org.apache.jena.riot.web.HttpNames.paramNamedGraphURI ; import java.util.Arrays ; import java.util.Collections ; import java.util.List ; +import java.util.function.Predicate; import javax.servlet.http.HttpServletRequest ; -import org.apache.jena.atlas.iterator.Filter ; import org.apache.jena.atlas.iterator.Iter ; import org.apache.jena.atlas.lib.Lib ; import org.apache.jena.query.Query ; @@ -79,13 +79,7 @@ public abstract class SPARQL_Protocol extends ActionSPARQL return Iter.iter(list).filter(acceptNonEmpty).toList() ; } - private static Filter<String> acceptNonEmpty = new Filter<String>(){ - @Override - public boolean accept(String item) - { - return item != null && item.length() != 0 ; - } - } ; + private static Predicate<String> acceptNonEmpty = item -> item != null && item.length() != 0; protected static int countParamOccurences(HttpServletRequest request, String param) { http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java ---------------------------------------------------------------------- diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java index 6206f62..6f262a5 100644 --- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java +++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java @@ -18,6 +18,7 @@ package org.apache.jena.permissions.query.rewriter; import java.util.List; +import java.util.function.Function; import org.apache.jena.graph.Node ; import org.apache.jena.graph.Triple ; @@ -30,7 +31,6 @@ import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.expr.* ; import org.apache.jena.sparql.function.FunctionEnv ; -import org.apache.jena.sparql.graph.NodeTransform ; public class SecuredFunction extends ExprFunctionN { @@ -103,7 +103,7 @@ public class SecuredFunction extends ExprFunctionN } @Override - public Expr applyNodeTransform( NodeTransform transform ) + public Expr applyNodeTransform( Function<Node, Node> transform ) { return this; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java index 78aae0b..fdc7339 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java @@ -22,10 +22,10 @@ import static org.apache.jena.atlas.iterator.Iter.apply ; import java.util.ArrayList ; import java.util.List ; +import java.util.function.Consumer; import org.apache.jena.atlas.io.IndentedWriter ; import org.apache.jena.atlas.io.PrintUtils ; -import org.apache.jena.atlas.iterator.Action ; import org.apache.jena.graph.Node ; import org.apache.jena.shared.PrefixMapping ; import org.apache.jena.sparql.algebra.op.OpQuadPattern ; @@ -167,10 +167,10 @@ public class QuadBlock extends ArrayList<Quad> implements Iterable<Quad>, PrintS { final String sep = "\n" ; - final Action<Quad> strAction = new Action<Quad>() { + final Consumer<Quad> strAction = new Consumer<Quad>() { boolean first = true ; @Override - public void apply(Quad quad) + public void accept(Quad quad) { if ( ! first ) out.print(sep) ; http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java index 9ece0c9..c35cf6c 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java @@ -23,10 +23,8 @@ import static org.apache.jena.atlas.iterator.Iter.* ; import java.sql.SQLException; import java.util.List; import java.util.Set; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jena.atlas.iterator.Transform; import org.apache.jena.query.Query ; import org.apache.jena.query.SortCondition ; import org.apache.jena.sdb.SDB ; @@ -102,7 +100,7 @@ public class SDB_QC // If part query, need all variables. // Project variables - List<Var> vars = toList(map(query.getResultVars().iterator(), StringToVar)) ; + List<Var> vars = toList(map(query.getResultVars().iterator(), Var::alloc)) ; if ( vars.size() == 0 ) { @@ -114,7 +112,7 @@ public class SDB_QC q2.setQueryPattern(query.getQueryPattern()) ; q2.setQuerySelectType() ; q2.setQueryResultStar(true) ; - vars = toList(map(q2.getResultVars().iterator(), StringToVar)) ; + vars = toList(map(q2.getResultVars().iterator(), Var::alloc)) ; } @@ -146,12 +144,4 @@ public class SDB_QC { return ( x instanceof OpSQL ) ; } - - - private static Transform<String, Var> StringToVar = new Transform<String, Var>(){ - @Override - public Var convert(String varName) - { - return Var.alloc(varName) ; - }} ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java index 608cb6b..e2bfda6 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java @@ -113,12 +113,12 @@ public class TransformSDB extends TransformCopy // Find optional-on-left Set<ScopeEntry> scopes2 = toSet(filter(scopes.iterator(), ScopeEntry.OptionalFilter)) ; - Set<Var> leftOptVars = toSet(map(scopes2.iterator(), ScopeEntry.ToVar)) ; // Vars from left optionals. + Set<Var> leftOptVars = toSet(map(scopes2.iterator(), ScopeEntry::getVar)) ; // Vars from left optionals. if ( false ) { Iter<ScopeEntry> iter = Iter.iter(scopes) ; - Set<Var> leftOptVars_ = iter.filter(ScopeEntry.OptionalFilter).map(ScopeEntry.ToVar).toSet() ; + Set<Var> leftOptVars_ = iter.filter(ScopeEntry.OptionalFilter).map(ScopeEntry::getVar).toSet() ; } // Find optional-on-right (easier - it's all variables) http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java index b9b1d78..0384e85 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java @@ -18,9 +18,9 @@ package org.apache.jena.sdb.core; -import org.apache.jena.atlas.iterator.Action ; -import org.apache.jena.atlas.iterator.Filter ; -import org.apache.jena.atlas.iterator.Transform ; +import java.util.function.Consumer; +import java.util.function.Predicate; + import org.apache.jena.sdb.core.sqlexpr.SqlColumn ; import org.apache.jena.sparql.core.Var ; @@ -30,27 +30,9 @@ public class ScopeEntry SqlColumn column; ScopeStatus status ; - public static Filter<ScopeEntry> OptionalFilter = new Filter<ScopeEntry>() - { - @Override - public boolean accept(ScopeEntry item) - { return item.getStatus() == ScopeStatus.OPTIONAL ; } - } ; - - public static Transform<ScopeEntry, Var> ToVar = new Transform<ScopeEntry, Var>() - { - @Override - public Var convert(ScopeEntry item) - { return item.getVar() ; } - } ; + public static Predicate<ScopeEntry> OptionalFilter = item -> item.getStatus() == ScopeStatus.OPTIONAL; - public static Action<ScopeEntry> SetOpt = new Action<ScopeEntry>() - { - @Override - public void apply(ScopeEntry item) - { item.setStatus(ScopeStatus.OPTIONAL) ; } - } ; - + public static Consumer<ScopeEntry> SetOpt = item -> item.setStatus(ScopeStatus.OPTIONAL) ; public ScopeEntry(Var var, SqlColumn column) { this(var, column, ScopeStatus.FIXED) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java index bc51291..2a4706a 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java @@ -22,8 +22,6 @@ import java.util.HashMap ; import java.util.HashSet ; import java.util.Map ; import java.util.Set ; - -import org.apache.jena.atlas.iterator.Transform ; import org.apache.jena.sdb.core.sqlexpr.SqlColumn ; import org.apache.jena.sparql.core.Var ; import org.slf4j.Logger ; @@ -114,23 +112,4 @@ public class ScopeRename implements Scope { return frame + " " + scope ; } - - private Transform<ScopeEntry, ScopeEntry> converter = - new Transform<ScopeEntry, ScopeEntry>(){ - @Override - public ScopeEntry convert(ScopeEntry entry) - { - entry = new ScopeEntry(entry.getVar(), entry.getColumn()) ; - Var var = entry.getVar() ; - SqlColumn col = frame.get(var) ; - if ( col == null ) - { - log.warn("No alias for variable "+var) ; - return entry ; - } - ScopeEntry entry2 = new ScopeEntry(entry.getVar(), entry.getColumn()) ; - entry2.setStatus(entry.getStatus()) ; - //entry.reset(var, col, entry.getStatus()) ; - return entry2 ; - }} ; } http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java index 489ebf8..69b242c 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java @@ -20,10 +20,8 @@ package org.apache.jena.sdb.core.sqlnode; import java.util.List ; import java.util.Set ; - import org.apache.jena.atlas.io.IndentedWriter ; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.Transform ; import org.apache.jena.atlas.lib.Lib ; import org.apache.jena.sdb.SDB ; import org.apache.jena.sdb.core.Annotations ; @@ -281,14 +279,9 @@ public class GenerateSQLVisitor implements SqlNodeVisitor return join2 ; } - static final Transform<SqlColumn, SqlTable> colToTable = new Transform<SqlColumn, SqlTable>() { - @Override - public SqlTable convert(SqlColumn item) { return item.getTable() ; } - } ; - private static Set<SqlTable> tables(Set<SqlColumn> cols) { - return Iter.toSet(Iter.map(cols.iterator(), colToTable)) ; + return Iter.toSet(Iter.map(cols.iterator(), SqlColumn::getTable)) ; } @Override http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java b/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java index ed1e70f..097736a 100644 --- a/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java +++ b/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java @@ -18,11 +18,12 @@ package org.apache.jena.sdb.print; +import java.util.function.Consumer; + import org.apache.jena.atlas.io.IndentedWriter ; import org.apache.jena.atlas.io.Printable ; -import org.apache.jena.atlas.iterator.Action ; -public class ActionPrint <T extends Printable> implements Action<T> +public class ActionPrint <T extends Printable> implements Consumer<T> { private boolean first = true ; private IndentedWriter out ; @@ -32,7 +33,7 @@ public class ActionPrint <T extends Printable> implements Action<T> public ActionPrint(IndentedWriter out) { this(out, " ") ; } @Override - public void apply(Printable item) + public void accept(Printable item) { if ( ! first && sep != null ) out.print(sep) ; http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java index 751e597..9648f6f 100644 --- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java +++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java @@ -21,10 +21,8 @@ package org.apache.jena.sdb.test.junit; import java.util.ArrayList ; import java.util.Collection ; import java.util.List ; - import org.junit.runners.Parameterized.Parameters ; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.Transform ; import org.apache.jena.sdb.StoreDesc ; import org.apache.jena.sdb.test.SDBTestSetup ; import org.apache.jena.sdb.util.Pair ; @@ -32,13 +30,6 @@ import org.apache.jena.sdb.util.Pair ; //@RunWith(Parameterized.class) public abstract class ParamAllStoreDesc { - // Make into Object[]{String,Store} lists just for JUnit. - static Transform<Pair<String, StoreDesc>, Object[]> fix = new Transform<Pair<String, StoreDesc>, Object[]>() - { - @Override - public Object[] convert(Pair<String, StoreDesc> item) - { return new Object[]{item.car(), item.cdr()} ; } - } ; // Build once and return the same for parametrized types each time. // Connections are slow to create. @@ -48,7 +39,7 @@ public abstract class ParamAllStoreDesc List<Pair<String, StoreDesc>> x = new ArrayList<Pair<String, StoreDesc>>() ; x.addAll(StoreList.storeDesc(SDBTestSetup.storeList)) ; x.addAll(StoreList.storeDesc(SDBTestSetup.storeListSimple)) ; - data = Iter.iter(x).map(fix).toList() ; + data = Iter.iter(x).map(p -> new Object[]{p.car(), p.cdr()}).toList() ; } // ---- http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java index 46bb959..4e0a709 100644 --- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java +++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java @@ -21,10 +21,8 @@ package org.apache.jena.sdb.test.junit; import java.util.ArrayList ; import java.util.Collection ; import java.util.List ; - import org.junit.runners.Parameterized.Parameters ; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.Transform ; import org.apache.jena.sdb.Store ; import org.apache.jena.sdb.StoreDesc ; import org.apache.jena.sdb.test.SDBTestSetup ; @@ -33,13 +31,6 @@ import org.apache.jena.sdb.util.Pair ; //@RunWith(Parameterized.class) public abstract class ParamAllStores { - // Make into Object[]{String,Store} lists just for JUnit. - static Transform<Pair<String, StoreDesc>, Object[]> fix = new Transform<Pair<String, StoreDesc>, Object[]>() - { - @Override - public Object[] convert(Pair<String, StoreDesc> item) - { return new Object[]{item.car(), item.cdr()} ; } - } ; // Build once and return the same for parametrized types each time. // Connections are slow to create. @@ -49,7 +40,7 @@ public abstract class ParamAllStores List<Pair<String, StoreDesc>> x = new ArrayList<Pair<String, StoreDesc>>() ; x.addAll(StoreList.stores(SDBTestSetup.storeList)) ; x.addAll(StoreList.stores(SDBTestSetup.storeListSimple)) ; - data = Iter.iter(x).map(fix).toList() ; + data = Iter.iter(x).map(p -> new Object[]{p.car(), p.cdr()}).toList() ; } // ---- http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java ---------------------------------------------------------------------- diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java index 8739689..af5f6c8 100644 --- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java +++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java @@ -22,9 +22,9 @@ import static org.apache.jena.atlas.lib.StrUtils.strjoinNL ; import java.util.ArrayList ; import java.util.List ; +import java.util.function.Function; import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.Transform ; import org.apache.jena.query.* ; import org.apache.jena.rdf.model.Model ; import org.apache.jena.rdf.model.Property ; @@ -57,24 +57,9 @@ public class StoreList "}") ; // Not Java's finest hour ... - static Transform<Pair<String, String>, Pair<String, StoreDesc>> t1 = new Transform<Pair<String, String>, Pair<String, StoreDesc>>() - { - @Override - public Pair<String, StoreDesc> convert(Pair<String, String> pair) - { - return new Pair<String, StoreDesc>(pair.car(), StoreDesc.read(pair.cdr())) ; - } - } ; + static Function<Pair<String, String>, Pair<String, StoreDesc>> t1 = p -> new Pair<String, StoreDesc>(p.car(), StoreDesc.read(p.cdr())); - static Transform<Pair<String, StoreDesc>, Pair<String, Store>> t2 = new Transform<Pair<String, StoreDesc>, Pair<String, Store>>() - { - @Override - public Pair<String, Store> convert(Pair<String, StoreDesc> pair) - { - Store store = testStore(pair.cdr()) ; - return new Pair<String, Store>(pair.car(), store) ; - } - } ; + static Function<Pair<String, StoreDesc>, Pair<String, Store>> t2 = p -> new Pair<String, Store>(p.car(), testStore(p.cdr())); public static Store testStore(StoreDesc desc) {
