Apache CXF API

org.apache.cxf.phase
Class PhaseInterceptorChain

java.lang.Object
  extended by org.apache.cxf.phase.PhaseInterceptorChain
All Implemented Interfaces:
java.lang.Iterable<Interceptor<? extends Message>>, InterceptorChain

public class PhaseInterceptorChain
extends java.lang.Object
implements InterceptorChain

A PhaseInterceptorChain orders Interceptors according to the phase the particpate in and also according to the before & after properties on an Interceptor.

A List of phases is supplied to the PhaseInterceptorChain in the constructor. Interceptors that are added to the chain are ordered by phase. Within that phases interceptors can order themselves. Each PhaseInterceptor has an ID. PhaseInterceptors can supply a Collection of IDs which they should run before or after, supplying fine grained ordering.

Author:
Dan Diephouse

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.cxf.interceptor.InterceptorChain
InterceptorChain.State
 
Field Summary
 
Fields inherited from interface org.apache.cxf.interceptor.InterceptorChain
STARTING_AFTER_INTERCEPTOR_ID
 
Constructor Summary
PhaseInterceptorChain(java.util.List<Phase> ps)
           
 
Method Summary
 void abort()
           
 void add(Interceptor i)
           
 void add(Interceptor i, boolean force)
           
 void add(java.util.List<Interceptor> newhandlers)
           
 void add(java.util.List<Interceptor> newhandlers, boolean force)
           
 boolean doIntercept(Message message)
          Intercept a message, invoking each phase's handlers in turn.
 boolean doIntercept(Message message, java.lang.String startingAfterInterceptorID)
          Intercept a message, invoking each phase's handlers in turn, starting after the specified interceptor.
 boolean doInterceptInSubChain(Message message)
          Invokes the following inteceptors in a sub chain until the last chain in the sub chain calls finishSubChain, which makes the flow continue in the main chain.
 void finishSubChain()
           
 MessageObserver getFaultObserver()
           
 java.util.ListIterator<Interceptor<? extends Message>> getIterator()
           
protected  void insertInterceptor(java.util.List<Interceptor> intercs, PhaseInterceptor interc)
           
 java.util.Iterator<Interceptor<? extends Message>> iterator()
           
 void pause()
           
 void remove(Interceptor i)
           
 void reset()
           
 void resume()
           
 void setFaultObserver(MessageObserver faultObserver)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PhaseInterceptorChain

public PhaseInterceptorChain(java.util.List<Phase> ps)
Method Detail

add

public void add(java.util.List<Interceptor> newhandlers)

add

public void add(java.util.List<Interceptor> newhandlers,
                boolean force)

add

public void add(Interceptor i)
Specified by:
add in interface InterceptorChain

add

public void add(Interceptor i,
                boolean force)

pause

public void pause()
Specified by:
pause in interface InterceptorChain

finishSubChain

public void finishSubChain()
Specified by:
finishSubChain in interface InterceptorChain

resume

public void resume()
Specified by:
resume in interface InterceptorChain

doIntercept

public boolean doIntercept(Message message)
Intercept a message, invoking each phase's handlers in turn.

Specified by:
doIntercept in interface InterceptorChain
Parameters:
message - the message
Throws:
java.lang.Exception

doIntercept

public boolean doIntercept(Message message,
                           java.lang.String startingAfterInterceptorID)
Intercept a message, invoking each phase's handlers in turn, starting after the specified interceptor.

Specified by:
doIntercept in interface InterceptorChain
Parameters:
message - the message
startingAfterInterceptorID - the id of the interceptor
Throws:
java.lang.Exception

doInterceptInSubChain

public boolean doInterceptInSubChain(Message message)
Invokes the following inteceptors in a sub chain until the last chain in the sub chain calls finishSubChain, which makes the flow continue in the main chain.

Specified by:
doInterceptInSubChain in interface InterceptorChain
Parameters:
message - the message
Throws:
java.lang.Exception

reset

public void reset()
Specified by:
reset in interface InterceptorChain

remove

public void remove(Interceptor i)
Specified by:
remove in interface InterceptorChain

abort

public void abort()
Specified by:
abort in interface InterceptorChain

iterator

public java.util.Iterator<Interceptor<? extends Message>> iterator()
Specified by:
iterator in interface java.lang.Iterable<Interceptor<? extends Message>>

getIterator

public java.util.ListIterator<Interceptor<? extends Message>> getIterator()
Specified by:
getIterator in interface InterceptorChain

insertInterceptor

protected void insertInterceptor(java.util.List<Interceptor> intercs,
                                 PhaseInterceptor interc)

getFaultObserver

public MessageObserver getFaultObserver()
Specified by:
getFaultObserver in interface InterceptorChain

setFaultObserver

public void setFaultObserver(MessageObserver faultObserver)
Specified by:
setFaultObserver in interface InterceptorChain

Apache CXF API

Apache CXF is an effort undergoing incubation at the Apache Software Foundation(ASF) and sponsored by the Apache Incubator PMC.