1 13 package com.tonbeller.wcf.pagestack; 14 15 import java.util.Iterator ; 16 import java.util.Stack ; 17 18 import javax.servlet.http.HttpSession ; 19 20 23 public class PageStack { 24 public static final String WEBKEY = "wcfPageStack"; 25 Stack stack = new Stack (); 26 27 PageStack() { 29 } 30 31 public static synchronized PageStack instance(HttpSession session) { 32 PageStack ps = (PageStack) session.getAttribute(WEBKEY); 33 if (ps == null) { 34 ps = new PageStack(); 35 session.setAttribute(WEBKEY, ps); 36 } 37 return ps; 38 } 39 40 public void setCurrentPage(Page page) { 41 while (stack.contains(page)) 42 stack.pop(); 43 stack.push(page); 44 } 45 46 51 public Page peek(int n) { 52 n = stack.size() - n - 1; 54 if (n < 0) 55 return null; 56 return (Page)stack.get(n); 57 } 58 59 public Iterator iterator() { 60 return stack.iterator(); 61 } 62 63 public void clear() { 64 stack.clear(); 65 } 66 67 } | Popular Tags |