MCPcopy Create free account
hub / github.com/antlr/codebuff / listIterator

Method listIterator

output/java_guava/1.4.18/Lists.java:934–999  ·  view source on GitHub ↗
(int index)

Source from the content-addressed store, hash-verified

932 }
933
934 @Override
935 public ListIterator<T> listIterator(int index) {
936 int start = reversePosition(index);
937 final ListIterator<T> forwardIterator = forwardList.listIterator(start);
938 return new ListIterator<T>() {
939 boolean canRemoveOrSet;
940
941 @Override
942 public void add(T e) {
943 forwardIterator.add(e);
944 forwardIterator.previous();
945 canRemoveOrSet = false;
946 }
947
948 @Override
949 public boolean hasNext() {
950 return forwardIterator.hasPrevious();
951 }
952
953 @Override
954 public boolean hasPrevious() {
955 return forwardIterator.hasNext();
956 }
957
958 @Override
959 public T next() {
960 if (!hasNext()) {
961 throw new NoSuchElementException();
962 }
963 canRemoveOrSet = true;
964 return forwardIterator.previous();
965 }
966
967 @Override
968 public int nextIndex() {
969 return reversePosition(forwardIterator.nextIndex());
970 }
971
972 @Override
973 public T previous() {
974 if (!hasPrevious()) {
975 throw new NoSuchElementException();
976 }
977 canRemoveOrSet = true;
978 return forwardIterator.next();
979 }
980
981 @Override
982 public int previousIndex() {
983 return nextIndex() - 1;
984 }
985
986 @Override
987 public void remove() {
988 checkRemove(canRemoveOrSet);
989 forwardIterator.remove();
990 canRemoveOrSet = false;
991 }

Callers 1

iteratorMethod · 0.95

Calls 2

reversePositionMethod · 0.95
listIteratorMethod · 0.45

Tested by

no test coverage detected