package jadx.gui.utils;
import java.util.ArrayList;
import java.util.List;
public class JumpManager {
private List<Position> list = new ArrayList<Position>();
private int currentPos = 0;
public void addPosition(Position pos) {
if (pos.equals(getCurrent())) {
return;
}
currentPos++;
if (currentPos >= list.size()) {
list.add(pos);
currentPos = list.size() - 1;
} else {
list.set(currentPos, pos);
int size = list.size();
for (int i = currentPos + 1; i < size; i++) {
list.set(i, null);
}
}
}
private Position getCurrent() {
if (currentPos >= 0 && currentPos < list.size()) {
return list.get(currentPos);
}
return null;
}
public Position getPrev() {
if (currentPos == 0) {
return null;
}
currentPos--;
return list.get(currentPos);
}
public Position getNext() {
int size = list.size();
if (size == 0) {
currentPos = 0;
return null;
}
int newPos = currentPos + 1;
if (newPos >= size) {
currentPos = size - 1;
return null;
}
Position position = list.get(newPos);
if (position == null) {
return null;
}
currentPos = newPos;
return position;
}
}