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    }