![JAR search and dependency download from the Maven repository](/logo.png)
jio.ListExpSeq Maven / Gradle / Ivy
The newest version!
package jio;
import static java.util.Objects.requireNonNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.function.Predicate;
import jio.Result.Failure;
import jio.Result.Success;
final class ListExpSeq extends ListExp {
ListExpSeq(final List> list,
final Function, Throwable>> debugger
) {
super(list,
debugger);
}
@Override
public ListExp append(final IO val) {
var xs = new ArrayList<>(list);
xs.add(requireNonNull(val));
return new ListExpSeq<>(xs,
jfrPublisher);
}
@Override
public ListExp tail() {
return new ListExpSeq<>(list.subList(1,
list.size()
),
jfrPublisher
);
}
@Override
public ListExp retryEach(final Predicate super Throwable> predicate,
final RetryPolicy policy
) {
requireNonNull(policy);
requireNonNull(predicate);
return new ListExpSeq<>(list.stream()
.map(it -> it.retry(predicate,
policy
)
)
.toList(),
jfrPublisher
);
}
@Override
Result> reduceExp() {
List xs = new ArrayList<>(list.size());
for (var entry : list) {
try {
xs.add(entry.call()
.getOutputOrThrow()
);
} catch (Exception e) {
return new Failure<>(e);
}
}
return new Success<>(xs);
}
@Override
public ListExp debugEach(final EventBuilder> eventBuilder) {
return new ListExpSeq<>(DebuggerHelper.debugList(list,
eventBuilder.exp,
Objects.requireNonNull(eventBuilder).context
),
getJFRPublisher(eventBuilder)
);
}
@Override
public ListExp debugEach(final String context) {
return debugEach(EventBuilder.of(this.getClass()
.getSimpleName(),
context));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy