001 package org.trails.callback;
002
003 import java.util.Stack;
004
005 import org.apache.tapestry.callback.ICallback;
006
007 public class CallbackStack extends Stack<ICallback>
008 {
009
010 /**
011 * @return the callback of the previous page, assumes the current page will
012 * be at the top of the stack
013 */
014 public ICallback popPreviousCallback()
015 {
016 if (size() > 1)
017 {
018 pop();
019 return pop();
020 } else
021 {
022 clear(); //make sure the stack is empty;
023 return null;
024 }
025
026
027 }
028
029 public ICallback getPreviousCallback()
030 {
031 if (size() > 1)
032 {
033 return get(size() - 2);
034 } else return null;
035 }
036 }