diff options
Diffstat (limited to 'guava/src/com/google/common/collect/ForwardingSet.java')
-rw-r--r-- | guava/src/com/google/common/collect/ForwardingSet.java | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/guava/src/com/google/common/collect/ForwardingSet.java b/guava/src/com/google/common/collect/ForwardingSet.java index ff21924c0..e1a448572 100644 --- a/guava/src/com/google/common/collect/ForwardingSet.java +++ b/guava/src/com/google/common/collect/ForwardingSet.java @@ -19,56 +19,55 @@ package com.google.common.collect; import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.annotations.GwtCompatible; + import java.util.Collection; import java.util.Set; -import org.checkerframework.checker.nullness.qual.Nullable; + +import javax.annotation.Nullable; /** - * A set which forwards all its method calls to another set. Subclasses should override one or more - * methods to modify the behavior of the backing set as desired per the <a + * A set which forwards all its method calls to another set. Subclasses should + * override one or more methods to modify the behavior of the backing set as + * desired per the <a * href="http://en.wikipedia.org/wiki/Decorator_pattern">decorator pattern</a>. * - * <p><b>Warning:</b> The methods of {@code ForwardingSet} forward <b>indiscriminately</b> to the - * methods of the delegate. For example, overriding {@link #add} alone <b>will not</b> change the - * behavior of {@link #addAll}, which can lead to unexpected behavior. In this case, you should - * override {@code addAll} as well, either providing your own implementation, or delegating to the - * provided {@code standardAddAll} method. + * <p><b>Warning:</b> The methods of {@code ForwardingSet} forward + * <b>indiscriminately</b> to the methods of the delegate. For example, + * overriding {@link #add} alone <b>will not</b> change the behavior of {@link + * #addAll}, which can lead to unexpected behavior. In this case, you should + * override {@code addAll} as well, either providing your own implementation, or + * delegating to the provided {@code standardAddAll} method. * - * <p><b>{@code default} method warning:</b> This class does <i>not</i> forward calls to {@code - * default} methods. Instead, it inherits their default implementations. When those implementations - * invoke methods, they invoke methods on the {@code ForwardingSet}. - * - * <p>The {@code standard} methods are not guaranteed to be thread-safe, even when all of the - * methods that they depend on are thread-safe. + * <p>The {@code standard} methods are not guaranteed to be thread-safe, even + * when all of the methods that they depend on are thread-safe. * * @author Kevin Bourrillion * @author Louis Wasserman - * @since 2.0 + * @since 2.0 (imported from Google Collections Library) */ @GwtCompatible -public abstract class ForwardingSet<E> extends ForwardingCollection<E> implements Set<E> { - // TODO(lowasser): identify places where thread safety is actually lost +public abstract class ForwardingSet<E> extends ForwardingCollection<E> + implements Set<E> { + // TODO(user): identify places where thread safety is actually lost /** Constructor for use by subclasses. */ protected ForwardingSet() {} - @Override - protected abstract Set<E> delegate(); + @Override protected abstract Set<E> delegate(); - @Override - public boolean equals(@Nullable Object object) { + @Override public boolean equals(@Nullable Object object) { return object == this || delegate().equals(object); } - @Override - public int hashCode() { + @Override public int hashCode() { return delegate().hashCode(); } /** - * A sensible definition of {@link #removeAll} in terms of {@link #iterator} and {@link #remove}. - * If you override {@code iterator} or {@code remove}, you may wish to override {@link #removeAll} - * to forward to this implementation. + * A sensible definition of {@link #removeAll} in terms of {@link #iterator} + * and {@link #remove}. If you override {@code iterator} or {@code remove}, + * you may wish to override {@link #removeAll} to forward to this + * implementation. * * @since 7.0 (this version overrides the {@code ForwardingCollection} version as of 12.0) */ @@ -78,9 +77,9 @@ public abstract class ForwardingSet<E> extends ForwardingCollection<E> implement } /** - * A sensible definition of {@link #equals} in terms of {@link #size} and {@link #containsAll}. If - * you override either of those methods, you may wish to override {@link #equals} to forward to - * this implementation. + * A sensible definition of {@link #equals} in terms of {@link #size} and + * {@link #containsAll}. If you override either of those methods, you may wish + * to override {@link #equals} to forward to this implementation. * * @since 7.0 */ @@ -89,8 +88,9 @@ public abstract class ForwardingSet<E> extends ForwardingCollection<E> implement } /** - * A sensible definition of {@link #hashCode} in terms of {@link #iterator}. If you override - * {@link #iterator}, you may wish to override {@link #equals} to forward to this implementation. + * A sensible definition of {@link #hashCode} in terms of {@link #iterator}. + * If you override {@link #iterator}, you may wish to override {@link #equals} + * to forward to this implementation. * * @since 7.0 */ |