Coverage Report - org.trails.callback.CallbackStack
 
Classes in this File Line Coverage Branch Coverage Complexity
CallbackStack
60% 
75% 
0
 
 1  
 package org.trails.callback;
 2  
 
 3  
 import java.util.Stack;
 4  
 
 5  
 import org.apache.tapestry.callback.ICallback;
 6  
 
 7  272
 public class CallbackStack
 8  
 {
 9  
 
 10  136
         private Stack<ICallback> stack = new Stack<ICallback>();
 11  
 
 12  
         public Stack<ICallback> getStack()
 13  
         {
 14  170
                 return stack;
 15  
         }
 16  
 
 17  
         public void setStack(Stack<ICallback> stack)
 18  
         {
 19  0
                 this.stack = stack;
 20  0
         }
 21  
 
 22  
         /**
 23  
          * If this callback should replace the previous callback,
 24  
          * pop it off before we push this one on.
 25  
          *
 26  
          * @param callback
 27  
          */
 28  
         public void push(TrailsCallback callback)
 29  
         {
 30  48
                 if (!getStack().empty() && (callback.shouldReplace(getStack().peek())))
 31  
                 {
 32  5
                         getStack().pop();
 33  
                 }
 34  48
                 getStack().push(callback);
 35  48
         }
 36  
 
 37  
         /**
 38  
          * If this callback is equals to the previous callback,
 39  
          * pop it off before we push this one on.
 40  
          *
 41  
          * @param callback
 42  
          */
 43  
         public void push(ICallback callback)
 44  
         {
 45  0
                 if (!getStack().empty() && (callback.equals(getStack().peek())))
 46  
                 {
 47  0
                         getStack().pop();
 48  
                 }
 49  0
                 getStack().push(callback);
 50  0
         }
 51  
 
 52  
         /**
 53  
          * @return the callback of the previous page, assumes the current page will
 54  
          *         be at the top of the stack
 55  
          */
 56  
         public ICallback popPreviousCallback()
 57  
         {
 58  6
                 if (getStack().size() > 1)
 59  
                 {
 60  6
                         getStack().pop();
 61  6
                         return getStack().pop();
 62  0
                 } else return null;
 63  
         }
 64  
 
 65  
         public ICallback getPreviousCallback()
 66  
         {
 67  3
                 if (getStack().size() > 1)
 68  
                 {
 69  3
                         return getStack().get(getStack().size() - 2);
 70  0
                 } else return null;
 71  
         }
 72  
 }