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.alternatives; 011 012 import java.io.Serializable; 013 import java.util.Collection; 014 import java.util.List; 015 016 import org.picocontainer.ComponentAdapter; 017 import org.picocontainer.MutablePicoContainer; 018 import org.picocontainer.Parameter; 019 import org.picocontainer.PicoContainer; 020 import org.picocontainer.PicoException; 021 import org.picocontainer.PicoRegistrationException; 022 import org.picocontainer.PicoVerificationException; 023 import org.picocontainer.PicoVisitor; 024 025 /** 026 * @author Paul Hammant 027 * @version $Revision: 2230 $ 028 */ 029 public abstract class AbstractDelegatingMutablePicoContainer implements MutablePicoContainer, Serializable { 030 031 private MutablePicoContainer delegate; 032 033 public AbstractDelegatingMutablePicoContainer(MutablePicoContainer delegate) { 034 this.delegate = delegate; 035 } 036 037 protected MutablePicoContainer getDelegate() { 038 return delegate; 039 } 040 041 public ComponentAdapter registerComponentImplementation(Object componentKey, Class componentImplementation) throws PicoRegistrationException { 042 return delegate.registerComponentImplementation(componentKey, componentImplementation); 043 } 044 045 public ComponentAdapter registerComponentImplementation(Object componentKey, Class componentImplementation, Parameter[] parameters) throws PicoRegistrationException { 046 return delegate.registerComponentImplementation(componentKey, componentImplementation, parameters); 047 } 048 049 050 public ComponentAdapter registerComponentImplementation(Class componentImplementation) throws PicoRegistrationException { 051 return delegate.registerComponentImplementation(componentImplementation); 052 } 053 054 public ComponentAdapter registerComponentInstance(Object componentInstance) throws PicoRegistrationException { 055 return delegate.registerComponentInstance(componentInstance); 056 } 057 058 public ComponentAdapter registerComponentInstance(Object componentKey, Object componentInstance) throws PicoRegistrationException { 059 return delegate.registerComponentInstance(componentKey, componentInstance); 060 } 061 062 public ComponentAdapter registerComponent(ComponentAdapter componentAdapter) throws PicoRegistrationException { 063 return delegate.registerComponent(componentAdapter); 064 } 065 066 public ComponentAdapter unregisterComponent(Object componentKey) { 067 return delegate.unregisterComponent(componentKey); 068 } 069 070 public ComponentAdapter unregisterComponentByInstance(Object componentInstance) { 071 return delegate.unregisterComponentByInstance(componentInstance); 072 } 073 074 public Object getComponentInstance(Object componentKey) { 075 return delegate.getComponentInstance(componentKey); 076 } 077 078 public Object getComponentInstanceOfType(Class componentType) { 079 return delegate.getComponentInstanceOfType(componentType); 080 } 081 082 public List getComponentInstances() { 083 return delegate.getComponentInstances(); 084 } 085 086 public PicoContainer getParent() { 087 return delegate.getParent(); 088 } 089 090 public ComponentAdapter getComponentAdapter(Object componentKey) { 091 return delegate.getComponentAdapter(componentKey); 092 } 093 094 public ComponentAdapter getComponentAdapterOfType(Class componentType) { 095 return delegate.getComponentAdapterOfType(componentType); 096 } 097 098 public Collection getComponentAdapters() { 099 return delegate.getComponentAdapters(); 100 } 101 102 public List getComponentAdaptersOfType(Class componentType) { 103 return delegate.getComponentAdaptersOfType(componentType); 104 } 105 106 /** 107 * @deprecated since 1.1 - Use new VerifyingVisitor().traverse(this) 108 */ 109 public void verify() throws PicoVerificationException { 110 delegate.verify(); 111 } 112 113 public void start() { 114 delegate.start(); 115 } 116 117 public void stop() { 118 delegate.stop(); 119 } 120 121 public void dispose() { 122 delegate.dispose(); 123 } 124 125 public boolean addChildContainer(PicoContainer child) { 126 return delegate.addChildContainer(child); 127 } 128 129 public boolean removeChildContainer(PicoContainer child) { 130 return delegate.removeChildContainer(child); 131 } 132 133 public void accept(PicoVisitor visitor) { 134 delegate.accept(visitor); 135 } 136 137 public List getComponentInstancesOfType(Class type) throws PicoException { 138 return delegate.getComponentInstancesOfType(type); 139 } 140 141 public boolean equals(Object obj) { 142 // required to make it pass on both jdk 1.3 and jdk 1.4. Btw, what about overriding hashCode()? (AH) 143 final boolean result = delegate.equals(obj) || this == obj; 144 return result; 145 } 146 147 }