All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jamieswhiteshirt.rtree3i.EmptySelection Maven / Gradle / Ivy

The newest version!
package com.jamieswhiteshirt.rtree3i;

import java.util.function.*;
import java.util.stream.Collector;

final class EmptySelection implements Selection {
    private static final Selection INSTANCE = new EmptySelection();

    public static  Selection create() {
        //noinspection unchecked
        return INSTANCE;
    }

    private EmptySelection() {}

    @Override
    public Selection filter(Predicate predicate) {
        return this;
    }

    @Override
    public void forEach(Consumer action) {
    }

    @Override
    public boolean anyMatch(Predicate predicate) {
        return false;
    }

    @Override
    public boolean allMatch(Predicate predicate) {
        return true;
    }

    @Override
    public boolean noneMatch(Predicate predicate) {
        return true;
    }

    @Override
    public T reduce(T identity, BinaryOperator accumulator) {
        return identity;
    }

    @Override
    public  R collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner) {
        return supplier.get();
    }

    @Override
    public  R collect(Collector collector) {
        A container = collector.supplier().get();
        return collector.finisher().apply(container);
    }

    @Override
    public int count() {
        return 0;
    }

    @Override
    public boolean isEmpty() {
        return true;
    }

    @Override
    public boolean isNotEmpty() {
        return false;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy