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

net.digitalid.utility.collections.collection.ReadOnlyCollection Maven / Gradle / Ivy

The newest version!
package net.digitalid.utility.collections.collection;

import java.util.Collection;

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.validation.annotations.type.Immutable;
import net.digitalid.utility.validation.annotations.type.ReadOnly;

/**
 * This interface provides read-only access to {@link Collection collections} and should never be cast away (unless external code requires it).
 * It is recommended to use only {@link ReadOnly} or {@link Immutable} types for the elements.
 */
@ReadOnly(FreezableCollection.class)
public interface ReadOnlyCollection extends ReadOnlyIterable {
    
    /* -------------------------------------------------- Cloneable -------------------------------------------------- */
    
    @Pure
    @Override
    public @Capturable @Nonnull @NonFrozen FreezableCollection clone();
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy