This patch (committed) implements a missing method in the
BeanContextSupport class:
2006-11-11 David Gilbert <[EMAIL PROTECTED]>
* java/beans/beancontext/BeanContextSupport.java
(getChildBeanContextChild): Implemented.
I already committed a Mauve test to back this up.
Regards,
Dave
Index: java/beans/beancontext/BeanContextSupport.java
===================================================================
RCS file: /sources/classpath/classpath/java/beans/beancontext/BeanContextSupport.java,v
retrieving revision 1.15
diff -u -r1.15 BeanContextSupport.java
--- java/beans/beancontext/BeanContextSupport.java 9 Nov 2006 17:35:55 -0000 1.15
+++ java/beans/beancontext/BeanContextSupport.java 11 Nov 2006 06:09:55 -0000
@@ -478,10 +478,28 @@
return (BeanContext) beanContextChildPeer;
}
- protected static final BeanContextChild getChildBeanContextChild (Object child)
- throws NotImplementedException
+ /**
+ * Returns the [EMAIL PROTECTED] BeanContextChild} implementation for the given child.
+ *
+ * @param child the child (<code>null</code> permitted).
+ *
+ * @return The bean context child.
+ *
+ * @throws IllegalArgumentException if <code>child</code> implements both
+ * the [EMAIL PROTECTED] BeanContextChild} and [EMAIL PROTECTED] BeanContextProxy} interfaces.
+ */
+ protected static final BeanContextChild getChildBeanContextChild(Object child)
{
- throw new Error ("Not implemented");
+ if (child == null)
+ return null;
+ if (child instanceof BeanContextChild && child instanceof BeanContextProxy)
+ throw new IllegalArgumentException("Child cannot implement "
+ + "BeanContextChild and BeanContextProxy simultaneously.");
+ if (child instanceof BeanContextChild)
+ return (BeanContextChild) child;
+ if (child instanceof BeanContextProxy)
+ return ((BeanContextProxy) child).getBeanContextProxy();
+ return null;
}
protected static final BeanContextMembershipListener getChildBeanContextMembershipListener (Object child)