| /* |
| * Copyright 2007 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package java.util; |
| |
| import static javaemul.internal.InternalPreconditions.checkNotNull; |
| |
| import java.util.function.Predicate; |
| import java.util.stream.Stream; |
| import java.util.stream.StreamSupport; |
| |
| import jsinterop.annotations.JsIgnore; |
| import jsinterop.annotations.JsType; |
| |
| /** |
| * General-purpose interface for storing collections of objects. |
| * See <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html"> |
| * the official Java API doc</a> for details. |
| * |
| * @param <E> element type |
| */ |
| @JsType |
| public interface Collection<E> extends Iterable<E> { |
| |
| boolean add(E o); |
| |
| boolean addAll(Collection<? extends E> c); |
| |
| void clear(); |
| |
| boolean contains(Object o); |
| |
| boolean containsAll(Collection<?> c); |
| |
| boolean isEmpty(); |
| |
| @JsIgnore |
| default Stream<E> parallelStream() { |
| // no parallelism in gwt |
| return stream(); |
| } |
| |
| boolean remove(Object o); |
| |
| boolean removeAll(Collection<?> c); |
| |
| @JsIgnore |
| default boolean removeIf(Predicate<? super E> filter) { |
| checkNotNull(filter); |
| boolean removed = false; |
| for (Iterator<E> it = iterator(); it.hasNext();) { |
| if (filter.test(it.next())) { |
| it.remove(); |
| removed = true; |
| } |
| } |
| return removed; |
| } |
| |
| boolean retainAll(Collection<?> c); |
| |
| int size(); |
| |
| @JsIgnore |
| @Override |
| default Spliterator<E> spliterator() { |
| return Spliterators.spliterator(this, 0); |
| } |
| |
| @JsIgnore |
| default Stream<E> stream() { |
| return StreamSupport.stream(spliterator(), false); |
| } |
| |
| Object[] toArray(); |
| |
| @JsIgnore |
| <T> T[] toArray(T[] a); |
| } |