net.digitalid.utility.collections.array.ReadOnlyArray Maven / Gradle / Ivy
The newest version!
package net.digitalid.utility.collections.array;
import javax.annotation.Nonnull;
import net.digitalid.utility.annotations.method.Pure;
import net.digitalid.utility.annotations.ownership.Capturable;
import net.digitalid.utility.collections.iterable.ReadOnlyIterable;
import net.digitalid.utility.freezable.annotations.NonFrozen;
import net.digitalid.utility.functional.iterators.ReadOnlyArrayIterator;
import net.digitalid.utility.validation.annotations.type.Immutable;
import net.digitalid.utility.validation.annotations.type.ReadOnly;
/**
* This interface provides read-only access to arrays and should never be cast away.
* It is recommended to use only {@link ReadOnly} or {@link Immutable} types for the elements.
*/
@ReadOnly(FreezableArray.class)
public interface ReadOnlyArray extends ReadOnlyIterable {
/* -------------------------------------------------- Iterable -------------------------------------------------- */
@Pure
@Override
public @Nonnull ReadOnlyArrayIterator iterator();
/* -------------------------------------------------- Cloneable -------------------------------------------------- */
@Pure
@Override
public @Capturable @Nonnull @NonFrozen FreezableArray clone();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy