package java.util;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.checker.nullness.qual.PolyNull;
import org.checkerframework.dataflow.qual.Pure;
import org.checkerframework.dataflow.qual.SideEffectFree;
import java.util.Collection;
import java.util.stream.Stream;
// Subclasses of this interface/class may opt to prohibit null elements
public abstract class AbstractCollection<E extends @Nullable Object> implements Collection<E> {
protected AbstractCollection() {}
@Override
public abstract Iterator<E> iterator();
@Override
@Pure public abstract int size();
@Override
@Pure public boolean isEmpty() { throw new RuntimeException("skeleton method"); }
@Override
@Pure public boolean contains(@Nullable Object a1) { throw new RuntimeException("skeleton method"); }
@Override
public Object [] toArray() { throw new RuntimeException("skeleton method"); }
@Override
public <T> @Nullable T @PolyNull [] toArray(@Nullable T @PolyNull [] a1) { throw new RuntimeException("skeleton method"); }
@Override
public boolean add(E a1) { throw new RuntimeException("skeleton method"); }
@Override
public boolean remove(@Nullable Object a1) { throw new RuntimeException("skeleton method"); }
@Override
@Pure public boolean containsAll(Collection<?> a1) { throw new RuntimeException("skeleton method"); }
@Override
public boolean addAll(Collection<? extends E> a1) { throw new RuntimeException("skeleton method"); }
@Override
public boolean removeAll(Collection<?> a1) { throw new RuntimeException("skeleton method"); }
@Override
public boolean retainAll(Collection<?> a1) { throw new RuntimeException("skeleton method"); }
@Override
public void clear() { throw new RuntimeException("skeleton method"); }
@Override
@SideEffectFree public String toString() { throw new RuntimeException("skeleton method"); }
}