// License: GPL. For details, see LICENSE file.
package CommandLine;
import java.util.LinkedList;
public class History {
private final LinkedList<String> historyList;
private final int maxLen;
private int num;
public History(int len) {
num = 0;
maxLen = len;
historyList = new LinkedList<>();
}
public void addItem(String item) {
if (!item.equals("")) {
String prevItem = historyList.peekFirst();
if (prevItem == null) {
historyList.addFirst(item);
} else {
if (!prevItem.equalsIgnoreCase(item))
historyList.addFirst(item);
}
if (historyList.size() > maxLen) {
historyList.removeLast();
}
}
num = -1;
}
public String getPrevItem() {
num += 1;
if (num >= historyList.size()) {
num = historyList.size() - 1;
}
if (num < 0) {
num = -1;
return "";
}
return historyList.get(num);
}
public String getLastItem() {
if (historyList.size() > 0)
return historyList.get(0);
return "";
}
public String getNextItem() {
num -= 1;
if (num < 0) {
num = -1;
return "";
}
return historyList.get(num);
}
}