Coverage Summary for Class: EmptyContiguousSet (com.google.common.collect)
| Class | Method, % | Line, % |
|---|---|---|
| EmptyContiguousSet | 0% (0/23) | 0% (0/26) |
| EmptyContiguousSet$SerializedForm | 0% (0/3) | 0% (0/4) |
| Total | 0% (0/26) | 0% (0/30) |
1 /* 2 * Copyright (C) 2011 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 * in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the License 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 * or implied. See the License for the specific language governing permissions and limitations under 12 * the License. 13 */ 14 package com.google.common.collect; 15 16 import com.google.common.annotations.GwtCompatible; 17 import com.google.common.annotations.GwtIncompatible; 18 import java.io.Serializable; 19 import java.util.NoSuchElementException; 20 import java.util.Set; 21 import org.checkerframework.checker.nullness.qual.Nullable; 22 23 /** 24 * An empty contiguous set. 25 * 26 * @author Gregory Kick 27 */ 28 @GwtCompatible(emulated = true) 29 @SuppressWarnings("rawtypes") // allow ungenerified Comparable types 30 final class EmptyContiguousSet<C extends Comparable> extends ContiguousSet<C> { 31 EmptyContiguousSet(DiscreteDomain<C> domain) { 32 super(domain); 33 } 34 35 @Override 36 public C first() { 37 throw new NoSuchElementException(); 38 } 39 40 @Override 41 public C last() { 42 throw new NoSuchElementException(); 43 } 44 45 @Override 46 public int size() { 47 return 0; 48 } 49 50 @Override 51 public ContiguousSet<C> intersection(ContiguousSet<C> other) { 52 return this; 53 } 54 55 @Override 56 public Range<C> range() { 57 throw new NoSuchElementException(); 58 } 59 60 @Override 61 public Range<C> range(BoundType lowerBoundType, BoundType upperBoundType) { 62 throw new NoSuchElementException(); 63 } 64 65 @Override 66 ContiguousSet<C> headSetImpl(C toElement, boolean inclusive) { 67 return this; 68 } 69 70 @Override 71 ContiguousSet<C> subSetImpl( 72 C fromElement, boolean fromInclusive, C toElement, boolean toInclusive) { 73 return this; 74 } 75 76 @Override 77 ContiguousSet<C> tailSetImpl(C fromElement, boolean fromInclusive) { 78 return this; 79 } 80 81 @Override 82 public boolean contains(Object object) { 83 return false; 84 } 85 86 @GwtIncompatible // not used by GWT emulation 87 @Override 88 int indexOf(Object target) { 89 return -1; 90 } 91 92 @Override 93 public UnmodifiableIterator<C> iterator() { 94 return Iterators.emptyIterator(); 95 } 96 97 @GwtIncompatible // NavigableSet 98 @Override 99 public UnmodifiableIterator<C> descendingIterator() { 100 return Iterators.emptyIterator(); 101 } 102 103 @Override 104 boolean isPartialView() { 105 return false; 106 } 107 108 @Override 109 public boolean isEmpty() { 110 return true; 111 } 112 113 @Override 114 public ImmutableList<C> asList() { 115 return ImmutableList.of(); 116 } 117 118 @Override 119 public String toString() { 120 return "[]"; 121 } 122 123 @Override 124 public boolean equals(@Nullable Object object) { 125 if (object instanceof Set) { 126 Set<?> that = (Set<?>) object; 127 return that.isEmpty(); 128 } 129 return false; 130 } 131 132 @GwtIncompatible // not used in GWT 133 @Override 134 boolean isHashCodeFast() { 135 return true; 136 } 137 138 @Override 139 public int hashCode() { 140 return 0; 141 } 142 143 @GwtIncompatible // serialization 144 private static final class SerializedForm<C extends Comparable> implements Serializable { 145 private final DiscreteDomain<C> domain; 146 147 private SerializedForm(DiscreteDomain<C> domain) { 148 this.domain = domain; 149 } 150 151 private Object readResolve() { 152 return new EmptyContiguousSet<C>(domain); 153 } 154 155 private static final long serialVersionUID = 0; 156 } 157 158 @GwtIncompatible // serialization 159 @Override 160 Object writeReplace() { 161 return new SerializedForm<C>(domain); 162 } 163 164 @GwtIncompatible // NavigableSet 165 @Override 166 ImmutableSortedSet<C> createDescendingSet() { 167 return ImmutableSortedSet.emptySet(Ordering.natural().reverse()); 168 } 169 }