View Javadoc

    1   /***
    2    * JFoxSOAF, Service-Oriented Application Framework
    3    *
    4    * Copyright (C) www.huihoo.org
    5    *
    6    * Distributable under GNU LGPL For more information, please visit:
    7    * http://www.huihoo.org/jfox/jfoxsoaf
    8    */
    9
    10  package org.huihoo.jfox.soaf.container;
    11
    12  import java.util.ArrayList;
    13  import java.util.Collection;
    14  import java.util.Iterator;
    15
    16  import org.huihoo.jfox.soaf.schema.service.ServiceEntry;
    17
    18  /***
    19   * InterceptorManager imlementation.
    20   *
    21   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
    22   * @version $Revision: 1.3 $ $Date: 2004/10/18 10:12:24 $
    23   * @version Revision: 1.0
    24   */
    25
    26  public class InterceptorManagerImpl implements InterceptorManager {
    27
    28      private InterceptorChain interceptorChain = new InterceptorChainImpl();
    29
    30      private Collection interceptorList = new ArrayList();
    31
    32      /***
    33       * Process Interceptor.
    34       *
    35       * @param interceptorColl
    36       * @param serviceModel
    37       * @throws Throwable
    38       */
    39      public void processInterceptor(Collection interceptorColl,
    40              Collection serviceEntryColl, ClassLoader classLoader)
    41              throws Throwable {
    42          instantiationInteceptor(interceptorColl, classLoader);
    43          Iterator serviceEntryIter = serviceEntryColl.iterator();
    44          ServiceEntry serviceModel = null;
    45          while (serviceEntryIter.hasNext()) {
    46              serviceModel = (ServiceEntry) serviceEntryIter.next();
    47              interceptorChain.processInterceptor(interceptorList, serviceModel,
    48                      classLoader);
    49          }
    50      }
    51
    52      /***
    53       * Init interceptor instance.
    54       *
    55       * @param coll
    56       *            Interceptor collection
    57       * @param classLoader
    58       * @throws Throwable
    59       */
    60      private void instantiationInteceptor(Collection coll,
    61              ClassLoader classLoader) throws Throwable {
    62          Iterator iter = coll.iterator();
    63          while (iter.hasNext()) {
    64              interceptorList.add(classLoader.loadClass((String) iter.next())
    65                      .newInstance());
    66          }
    67      }
    68
    69  }