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 import org.picocontainer.lifecycle.LifecycleState;
019
020 /**
021 * abstract base class for delegating to mutable containers
022 * @author Paul Hammant
023 */
024 public abstract class AbstractDelegatingMutablePicoContainer extends AbstractDelegatingPicoContainer implements MutablePicoContainer {
025
026 public AbstractDelegatingMutablePicoContainer(MutablePicoContainer delegate) {
027 super(delegate);
028 }
029
030 public MutablePicoContainer addComponent(Object componentKey,
031 Object componentImplementationOrInstance,
032 Parameter... parameters) throws PicoCompositionException {
033 return getDelegate().addComponent(componentKey, componentImplementationOrInstance, parameters);
034 }
035
036 public MutablePicoContainer addComponent(Object implOrInstance) throws PicoCompositionException {
037 return getDelegate().addComponent(implOrInstance);
038 }
039
040 public MutablePicoContainer addConfig(String name, Object val) {
041 return getDelegate().addConfig(name, val);
042 }
043
044 public MutablePicoContainer addAdapter(ComponentAdapter<?> componentAdapter) throws PicoCompositionException {
045 return getDelegate().addAdapter(componentAdapter);
046 }
047
048 public <T> ComponentAdapter<T> removeComponent(Object componentKey) {
049 return getDelegate().removeComponent(componentKey);
050 }
051
052 public <T> ComponentAdapter<T> removeComponentByInstance(T componentInstance) {
053 return getDelegate().removeComponentByInstance(componentInstance);
054 }
055
056 public MutablePicoContainer addChildContainer(PicoContainer child) {
057 return getDelegate().addChildContainer(child);
058 }
059
060 public boolean removeChildContainer(PicoContainer child) {
061 return getDelegate().removeChildContainer(child);
062 }
063
064 public MutablePicoContainer change(Properties... properties) {
065 return getDelegate().change(properties);
066 }
067
068 public MutablePicoContainer as(Properties... properties) {
069 return getDelegate().as(properties);
070 }
071
072 public void dispose() {
073 getDelegate().dispose();
074 }
075
076 public MutablePicoContainer makeChildContainer() {
077
078 return null;
079 }
080
081 public void start() {
082 getDelegate().start();
083 }
084
085 public void stop() {
086 getDelegate().stop();
087 }
088
089 public MutablePicoContainer getDelegate() {
090 return (MutablePicoContainer) super.getDelegate();
091 }
092
093 public void setName(String name) {
094 getDelegate().setName(name);
095 }
096
097 public void setLifecycleState(LifecycleState lifecycleState) {
098 getDelegate().setLifecycleState(lifecycleState);
099 }
100
101 }