package com.lmit.jenkins.android.addon;
import java.util.Stack;
import com.lmit.jenkins.android.logger.Logger;
public class NavigationStack {
private static Logger log = Logger.getInstance();
private static Stack<String> stack = new Stack<String>();
public static void push(String path) {
try {
stack.push(path);
} finally {
log.debug("Navigation-GO " + path + ": " + stack);
}
}
public static String pop() {
try {
if (!stack.isEmpty()) {
return stack.pop();
}
return null;
} finally {
log.debug("Navigation-BACK: " + stack);
}
}
public static String getPathInStack() {
String[] elems = stack.toArray(new String[] {});
if (elems.length > 0) {
if (elems[elems.length - 1].startsWith("/qaexplorer/")
|| elems[elems.length - 1].startsWith("qaexplorer/")
|| elems[elems.length - 1].startsWith("/qaexplorer_root/")
|| elems[elems.length - 1].startsWith("qaexplorer_root/")) {
return elems[elems.length - 1];
}
}
StringBuffer buff = new StringBuffer();
for (int i = 0; i < elems.length; i++) {
if (elems[i].startsWith("/")) {
if(!elems[i].startsWith("/qaexplorer")) {
buff = new StringBuffer("/qaexplorer" + elems[i]);
} else {
buff = new StringBuffer(elems[i]);
}
} else {
buff.append(elems[i]);
if (!elems[i].endsWith("/")) {
buff.append('/');
}
}
}
log.debug("Navigation-POS " + buff + ": " + stack);
return buff.toString();
}
public static void reset() {
stack.clear();
}
}