package java.util; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.dataflow.qual.Pure; // Subclasses of this interface/class may opt to prohibit null elements public interface Queue<E extends @Nullable Object> extends Collection<E> { public abstract boolean add(E a1); public abstract boolean offer(E a1); public abstract E remove(); public abstract @Nullable E poll(); public abstract E element(); public abstract @Nullable E peek(); @EnsuresNonNullIf(expression={"poll()", "peek()"}, result=false) @Pure public abstract boolean isEmpty(); }