Coverage Summary for Class: ImmutableAsList (com.google.common.collect)

Class Method, % Line, %
ImmutableAsList 28.6% (2/7) 28.6% (2/7)
ImmutableAsList$SerializedForm 0% (0/2) 0% (0/3)
Total 22.2% (2/9) 20% (2/10)


1 /* 2  * Copyright (C) 2009 The Guava Authors 3  * 4  * Licensed under the Apache License, Version 2.0 (the "License"); 5  * you may not use this file except in compliance with the License. 6  * You may obtain a copy of the License at 7  * 8  * http://www.apache.org/licenses/LICENSE-2.0 9  * 10  * Unless required by applicable law or agreed to in writing, software 11  * distributed under the License is distributed on an "AS IS" BASIS, 12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13  * See the License for the specific language governing permissions and 14  * limitations under the License. 15  */ 16  17 package com.google.common.collect; 18  19 import com.google.common.annotations.GwtCompatible; 20 import com.google.common.annotations.GwtIncompatible; 21 import java.io.InvalidObjectException; 22 import java.io.ObjectInputStream; 23 import java.io.Serializable; 24 import javax.annotation.CheckForNull; 25  26 /** 27  * List returned by {@link ImmutableCollection#asList} that delegates {@code contains} checks to the 28  * backing collection. 29  * 30  * @author Jared Levy 31  * @author Louis Wasserman 32  */ 33 @GwtCompatible(serializable = true, emulated = true) 34 @SuppressWarnings("serial") 35 @ElementTypesAreNonnullByDefault 36 abstract class ImmutableAsList<E> extends ImmutableList<E> { 37  abstract ImmutableCollection<E> delegateCollection(); 38  39  @Override 40  public boolean contains(@CheckForNull Object target) { 41  // The collection's contains() is at least as fast as ImmutableList's 42  // and is often faster. 43  return delegateCollection().contains(target); 44  } 45  46  @Override 47  public int size() { 48  return delegateCollection().size(); 49  } 50  51  @Override 52  public boolean isEmpty() { 53  return delegateCollection().isEmpty(); 54  } 55  56  @Override 57  boolean isPartialView() { 58  return delegateCollection().isPartialView(); 59  } 60  61  /** Serialized form that leads to the same performance as the original list. */ 62  @GwtIncompatible // serialization 63  static class SerializedForm implements Serializable { 64  final ImmutableCollection<?> collection; 65  66  SerializedForm(ImmutableCollection<?> collection) { 67  this.collection = collection; 68  } 69  70  Object readResolve() { 71  return collection.asList(); 72  } 73  74  private static final long serialVersionUID = 0; 75  } 76  77  @GwtIncompatible // serialization 78  private void readObject(ObjectInputStream stream) throws InvalidObjectException { 79  throw new InvalidObjectException("Use SerializedForm"); 80  } 81  82  @GwtIncompatible // serialization 83  @Override 84  Object writeReplace() { 85  return new SerializedForm(delegateCollection()); 86  } 87 }