001 /*****************************************************************************
002 * Copyright (C) PicoContainer Organization. All rights reserved. *
003 * ------------------------------------------------------------------------- *
004 * The software in this package is published under the terms of the BSD *
005 * style license a copy of which has been included with this distribution in *
006 * the LICENSE.txt file. *
007 * *
008 * Original code by the committers *
009 *****************************************************************************/
010 package org.picocontainer.containers;
011
012 import java.util.Properties;
013 import org.picocontainer.ComponentAdapter;
014 import org.picocontainer.MutablePicoContainer;
015 import org.picocontainer.Parameter;
016 import org.picocontainer.PicoCompositionException;
017 import org.picocontainer.PicoContainer;
018
019 /**
020 * abstract base class for delegating to mutable containers
021 * @author Paul Hammant
022 */
023 public abstract class AbstractDelegatingMutablePicoContainer extends AbstractDelegatingPicoContainer implements MutablePicoContainer {
024
025 public AbstractDelegatingMutablePicoContainer(MutablePicoContainer delegate) {
026 super(delegate);
027 }
028
029 public MutablePicoContainer addComponent(Object componentKey,
030 Object componentImplementationOrInstance,
031 Parameter... parameters) throws PicoCompositionException {
032 return getDelegate().addComponent(componentKey, componentImplementationOrInstance, parameters);
033 }
034
035 public MutablePicoContainer addComponent(Object implOrInstance) throws PicoCompositionException {
036 return getDelegate().addComponent(implOrInstance);
037 }
038
039 public MutablePicoContainer addConfig(String name, Object val) {
040 return getDelegate().addConfig(name, val);
041 }
042
043 public MutablePicoContainer addAdapter(ComponentAdapter<?> componentAdapter) throws PicoCompositionException {
044 return getDelegate().addAdapter(componentAdapter);
045 }
046
047 public <T> ComponentAdapter<T> removeComponent(Object componentKey) {
048 return getDelegate().removeComponent(componentKey);
049 }
050
051 public <T> ComponentAdapter<T> removeComponentByInstance(T componentInstance) {
052 return getDelegate().removeComponentByInstance(componentInstance);
053 }
054
055 public MutablePicoContainer addChildContainer(PicoContainer child) {
056 return getDelegate().addChildContainer(child);
057 }
058
059 public boolean removeChildContainer(PicoContainer child) {
060 return getDelegate().removeChildContainer(child);
061 }
062
063 public MutablePicoContainer change(Properties... properties) {
064 return getDelegate().change(properties);
065 }
066
067 public MutablePicoContainer as(Properties... properties) {
068 return getDelegate().as(properties);
069 }
070
071 public void dispose() {
072 getDelegate().dispose();
073 }
074
075 public MutablePicoContainer makeChildContainer() {
076
077 return null;
078 }
079
080 public void start() {
081 getDelegate().start();
082 }
083
084 public void stop() {
085 getDelegate().stop();
086 }
087
088 public MutablePicoContainer getDelegate() {
089 return (MutablePicoContainer) super.getDelegate();
090 }
091 }