You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/09/13 12:42:19 UTC

[commons-io] branch master updated: Add missing class:

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


The following commit(s) were added to refs/heads/master by this push:
     new 014eeb02 Add missing class:
014eeb02 is described below

commit 014eeb028b412daa199e20bec2d7f6c8128b1dd8
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Tue Sep 13 08:42:03 2022 -0400

    Add missing class:
---
 .../io/function/UncheckedIOSpliterator.java        | 85 ++++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/src/main/java/org/apache/commons/io/function/UncheckedIOSpliterator.java b/src/main/java/org/apache/commons/io/function/UncheckedIOSpliterator.java
new file mode 100644
index 00000000..ad8cfd83
--- /dev/null
+++ b/src/main/java/org/apache/commons/io/function/UncheckedIOSpliterator.java
@@ -0,0 +1,85 @@
+/*
+ * 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.commons.io.function;
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.Comparator;
+import java.util.Objects;
+import java.util.Spliterator;
+import java.util.function.Consumer;
+
+/**
+ * A {@link Spliterator} for an {@link IOSpliterator} that throws {@link UncheckedIOException} instead of
+ * {@link IOException}.
+ *
+ * Keep package-private for now.
+ *
+ * @param <T> the type of elements returned by this iterator.
+ */
+final class UncheckedIOSpliterator<T> implements Spliterator<T> {
+
+    private final IOSpliterator<T> delegate;
+
+    UncheckedIOSpliterator(final IOSpliterator<T> delegate) {
+        this.delegate = Objects.requireNonNull(delegate, "delegate");
+    }
+
+    @Override
+    public int characteristics() {
+        return delegate.characteristics();
+    }
+
+    @Override
+    public long estimateSize() {
+        return delegate.estimateSize();
+    }
+
+    @Override
+    public void forEachRemaining(final Consumer<? super T> action) {
+        Uncheck.accept(delegate::forEachRemaining, action::accept);
+    }
+
+    @Override
+    public Comparator<? super T> getComparator() {
+        return delegate.getComparator().asComparator();
+    }
+
+    @Override
+    public long getExactSizeIfKnown() {
+        return delegate.getExactSizeIfKnown();
+    }
+
+    @Override
+    public boolean hasCharacteristics(final int characteristics) {
+        return delegate.hasCharacteristics(characteristics);
+    }
+
+    @Override
+    public boolean tryAdvance(final Consumer<? super T> action) {
+        return Uncheck.apply(delegate::tryAdvance, action::accept);
+    }
+
+    @Override
+    public Spliterator<T> trySplit() {
+        return Uncheck.get(delegate::trySplit).unwrap();
+    }
+
+
+
+}