| 1128 | } |
| 1129 | |
| 1130 | private static <E extends @Nullable Object> SortedSet<E> removeOnlySortedSet(SortedSet<E> set) { |
| 1131 | return new ForwardingSortedSet<E>() { |
| 1132 | @Override |
| 1133 | protected SortedSet<E> delegate() { |
| 1134 | return set; |
| 1135 | } |
| 1136 | |
| 1137 | @Override |
| 1138 | public boolean add(@ParametricNullness E element) { |
| 1139 | throw new UnsupportedOperationException(); |
| 1140 | } |
| 1141 | |
| 1142 | @Override |
| 1143 | public boolean addAll(Collection<? extends E> es) { |
| 1144 | throw new UnsupportedOperationException(); |
| 1145 | } |
| 1146 | |
| 1147 | @Override |
| 1148 | public SortedSet<E> headSet(@ParametricNullness E toElement) { |
| 1149 | return removeOnlySortedSet(super.headSet(toElement)); |
| 1150 | } |
| 1151 | |
| 1152 | @Override |
| 1153 | public SortedSet<E> subSet( |
| 1154 | @ParametricNullness E fromElement, @ParametricNullness E toElement) { |
| 1155 | return removeOnlySortedSet(super.subSet(fromElement, toElement)); |
| 1156 | } |
| 1157 | |
| 1158 | @Override |
| 1159 | public SortedSet<E> tailSet(@ParametricNullness E fromElement) { |
| 1160 | return removeOnlySortedSet(super.tailSet(fromElement)); |
| 1161 | } |
| 1162 | }; |
| 1163 | } |
| 1164 | |
| 1165 | @GwtIncompatible // NavigableSet |
| 1166 | private static <E extends @Nullable Object> NavigableSet<E> removeOnlyNavigableSet( |