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

org.jhotdraw8.collection.enumerator.EmptyEnumerator Maven / Gradle / Ivy

/*
 * @(#)EmptySpliterator.java
 * Copyright © 2023 The authors and contributors of JHotDraw. MIT License.
 */

package org.jhotdraw8.collection.enumerator;

import org.jspecify.annotations.Nullable;

import java.util.Spliterator;

/**
 * An enumerator over an empty sequence.
 *
 * @param  the element type
 */
public class EmptyEnumerator implements Enumerator {
    private static final EmptyEnumerator singleton = new EmptyEnumerator<>();

    @SuppressWarnings("unchecked")
    public static  Enumerator emptyEnumerator() {
        return (Enumerator) singleton;
    }

    private EmptyEnumerator() {

    }

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

    @Override
    public @Nullable E current() {
        return null;
    }

    @Override
    public @Nullable Spliterator trySplit() {
        return null;
    }

    @Override
    public long estimateSize() {
        return 0;
    }

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