1818import java .util .Comparator ;
1919import java .util .Iterator ;
2020import java .util .List ;
21+ import java .util .Objects ;
2122import java .util .function .Predicate ;
2223
23- import org .eclipse .jdt .annotation .NonNull ;
2424import org .eclipse .jdt .annotation .Nullable ;
2525import org .eclipse .jface .viewers .TableViewer ;
2626import org .eclipse .jface .viewers .Viewer ;
@@ -132,10 +132,10 @@ private Iterable<E> getIterable() {
132132 }
133133 fIterable = iterable ;
134134 }
135- return iterable ;
135+ return Objects . requireNonNull ( iterable ) ;
136136 }
137137
138- private Iterator <? extends @ NonNull ISegment > resetIterator () {
138+ private Iterator <? extends ISegment > resetIterator () {
139139 Iterator <E > iterator = NonNullUtils .checkNotNull (getIterable ().iterator ());
140140 fIterator = iterator ;
141141 fLastReadPos = -1 ;
@@ -160,19 +160,19 @@ private Iterable<E> getIterable() {
160160 long idx = index ;
161161 // Special code path if we are looking for an element from the end there is a comparator
162162 if (index == LAST ) {
163- Comparator <@ NonNull ISegment > comparator = fComparator ;
163+ Comparator <ISegment > comparator = fComparator ;
164164 if (comparator != null ) {
165165 return getLastElement (comparator );
166166 }
167167 // No comparator, so impossible the easily get last element,
168168 // just return the first as it is random anyway
169169 idx = 0 ;
170170 }
171- Iterable <? extends @ NonNull ISegment > iterable = fIterable ;
171+ Iterable <? extends @ Nullable ISegment > iterable = fIterable ;
172172 if (iterable instanceof List <?> && idx <= Integer .MAX_VALUE ) {
173173 return Iterables .get (iterable , (int ) idx , null );
174174 }
175- Iterator <? extends @ NonNull ISegment > iterator = fIterator ;
175+ Iterator <? extends ISegment > iterator = fIterator ;
176176 if (iterator == null || idx <= fLastReadPos ) {
177177 iterator = resetIterator ();
178178 }
@@ -187,10 +187,10 @@ private Iterable<E> getIterable() {
187187 return null ;
188188 }
189189
190- private @ Nullable ISegment getLastElement (Comparator <@ NonNull ISegment > comparator ) {
190+ private @ Nullable ISegment getLastElement (Comparator <ISegment > comparator ) {
191191 Iterable <? extends ISegment > baseIterable = fIterable ;
192192 if (baseIterable instanceof List <?>) {
193- return Iterables .getLast (baseIterable , null );
193+ return Iterables .getLast (( Iterable <? extends @ Nullable ISegment >) baseIterable , null );
194194 }
195195 // Not a trivial get, so get an iterable for the reverse comparator
196196 // and fetch first element
@@ -199,9 +199,8 @@ private Iterable<E> getIterable() {
199199 if (predicate != null ) {
200200 iterable = Iterables .filter (iterable , input -> predicate .test (input ));
201201 }
202- // FIXME: The cast turns an error into a warning for this null
203- // value, but it is completely unnecessary otherwise
204- return Iterables .getFirst ((Iterable <? extends ISegment >) iterable , null );
202+
203+ return Iterables .getFirst ((Iterable <? extends @ Nullable ISegment >) iterable , null );
205204 }
206205
207206 /**
0 commit comments