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.List;
    13
    14  import org.picocontainer.ComponentAdapter;
    15  import org.picocontainer.PicoContainer;
    16  import org.picocontainer.PicoException;
    17  import org.picocontainer.PicoRegistrationException;
    18  import org.picocontainer.defaults.ComponentAdapterFactory;
    19  import org.picocontainer.defaults.DefaultPicoContainer;
    20
    21  /***
    22   * <p>
    23   * The services container is a extension of DefaultPicoContainer.
    24   * </p>
    25   *
    26   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
    27   * @version $Revision: 1.7 $ $Date: 2004/10/25 13:37:43 $
    28   * @version Revision: 1.0
    29   */
    30
    31  public class ServiceContainer extends DefaultPicoContainer {
    32
    33      private static ServiceContainer serviceContainer;
    34
    35      public static ServiceContainer getInstance() {
    36          if (serviceContainer == null) {
    37
    38              serviceContainer = new ServiceContainer();
    39          }
    40          return serviceContainer;
    41      }
    42
    43      /***
    44       * Creates a new container with a custom ComponentAdapterFactory and a
    45       * parent container.
    46       *
    47       * @param componentAdapterFactory
    48       * @param parent
    49       */
    50      public ServiceContainer(ComponentAdapterFactory componentAdapterFactory,
    51              PicoContainer parent) {
    52          super(componentAdapterFactory, parent);
    53      }
    54
    55      /***
    56       * Creates a new container with a parent container.
    57       *
    58       * @param parent
    59       */
    60      public ServiceContainer(PicoContainer parent) {
    61          super(parent);
    62      }
    63
    64      /***
    65       * Default Container.
    66       *
    67       * @param parent
    68       */
    69      public ServiceContainer() {
    70          super();
    71      }
    72
    73      /***
    74       * @see org.picocontainer.MutablePicoContainer#registerComponentImplementation(java.lang.Object)
    75       */
    76      public ComponentAdapter registerServiceImplementation(
    77              Class serviceImpl) throws PicoRegistrationException {
    78          return super.registerComponentImplementation(serviceImpl);
    79
    80      }
    81
    82      /***
    83       * @see org.picocontainer.defaults.DefaultPicoContainer#registerComponentImplementation(java.lang.Object,
    84       *      java.lang.Class, java.util.List)
    85       */
    86      public ComponentAdapter registerServiceImplementation(Object serviceKey,
    87              Class serviceImpl, List parameters)
    88              throws PicoRegistrationException {
    89          return super.registerComponentImplementation(serviceKey,
    90                  serviceImpl, parameters);
    91      }
    92
    93      /***
    94       * @see org.picocontainer.MutablePicoContainer#registerComponentImplementation(java.lang.Object,
    95       *      java.lang.Class)
    96       */
    97      public ComponentAdapter registerServiceImplementation(Object serviceKey,
    98              Class serviceImpl) throws PicoRegistrationException {
    99          return super.registerComponentImplementation(serviceKey,
    100                 serviceImpl);
    101     }
    102
    103     /***
    104      * @see org.picocontainer.MutablePicoContainer#registerComponentInstance(java.lang.Object,
    105      *      java.lang.Object)
    106      */
    107     public ComponentAdapter registerServiceInstance(Object serviceKey,
    108             Object serviceInstance) throws PicoRegistrationException {
    109         return super.registerComponentInstance(serviceKey, serviceInstance);
    110     }
    111
    112     /***
    113      * @see org.picocontainer.MutablePicoContainer#registerComponentInstance(java.lang.Object)
    114      */
    115     public ComponentAdapter registerServiceInstance(Object serviceInstance)
    116             throws PicoRegistrationException {
    117         return super.registerComponentInstance(serviceInstance);
    118     }
    119
    120     /***
    121      * @see org.picocontainer.PicoContainer#getComponentInstance(java.lang.Object)
    122      */
    123     public Object getService(Object serviceKey) throws PicoException {
    124         return super.getComponentInstance(serviceKey);
    125     }
    126
    127     /***
    128      * @see org.picocontainer.PicoContainer#getComponentInstanceOfType(java.lang.Class)
    129      */
    130     public Object getServiceOfType(Class serviceType) {
    131         return super.getComponentInstanceOfType(serviceType);
    132     }
    133
    134     /***
    135      * Unregister service.
    136      *
    137      * @param service
    138      * @return ComponentAdapter
    139      */
    140     public ComponentAdapter unregisterService(Object service) {
    141         return super.unregisterComponent(service);
    142     }
    143 }