1 18 package org.apache.beehive.netui.pageflow.interceptor; 19 20 import java.util.List ; 21 import java.util.LinkedList ; 22 23 26 public abstract class InterceptorChain 27 { 28 private LinkedList _chain = new LinkedList (); 29 private InterceptorContext _context; 30 31 protected InterceptorChain( InterceptorContext context, List interceptors ) 32 { 33 _context = context; 34 _chain.addAll( interceptors ); 35 } 36 37 public Object continueChain() 38 throws InterceptorException 39 { 40 if ( ! _chain.isEmpty() ) 41 { 42 return invoke( ( Interceptor ) _chain.removeFirst() ); 43 } 44 else 45 { 46 return null; 47 } 48 } 49 50 protected abstract Object invoke( Interceptor interceptor ) throws InterceptorException; 51 52 public InterceptorContext getContext() 53 { 54 return _context; 55 } 56 57 public boolean isEmpty() 58 { 59 return _chain.isEmpty(); 60 } 61 62 protected Interceptor removeFirst() 63 { 64 return ( Interceptor ) _chain.removeFirst(); 65 } 66 } 67 | Popular Tags |