 -- Method on BeanContextChildComponentProxy: public Component getComponent ()
     Get the Component associated with this BeanContextChild.

 -- Method on BeanContextChild: public void setBeanContext (java.beans.beancontext.BeanContext PARENT)
throws PropertyVetoException
     Set the parent BeanContext.

     This method is called from BeanContext.add() and should not be called directly.

     When this Object is being added to a new BeanContext or moved from an old one, a non-null value will be passed in.

     When this Object is being removed from the current BeanContext, setBeanContext() will receive the parameter null.

     When being removed from the current BeanContext, it is the BeanContextChild's responsibility to release all services it has obtained.

     This change should generate PropertyChangeEvent and VetoableChangeEvents with the property name "beanContext".  If the change is vetoed, it must re-throw the exception and not change anything.  In this way, the parent BeanContextChild, who has registered himself with you, will have a chance to remove this child from its collection.

     If the Bean does not wish to change the parent or be removed from one, it may throw the PropertyVetoException. If you veto a setBeanContext(null) call, then you should try your hardest to remedy whatever problem is keeping you from being removed from the BeanContext so that you can <em>not</em> veto it the next time. Otherwise, nasty pathological recursion stuff could occur in certain situations.

     If you do veto the change, you must first back out any changes you made prior to the veto.  Best not to make any such changes prior to the veto in the first place.

     This method is called from BeanContext.add() and should not be called directly.

 -- Method on BeanContextChild: public BeanContext getBeanContext ()
     Get the parent BeanContext.

 -- Method on BeanContextChild: public void addPropertyChangeListener (java.lang.String PROP, java.beans.PropertyChangeListener LISTENER)
     Add a listener that will be notified when a specific property changes.

 -- Method on BeanContextChild: public void removePropertyChangeListener (java.lang.String PROP, java.beans.PropertyChangeListener LISTENER)
     Remove a listener to a certain property.

 -- Method on BeanContextChild: public void addVetoableChangeListener (java.lang.String PROP, java.beans.VetoableChangeListener LISTENER)
     Add a listener that will be notified when a specific property change is requested (a PropertyVetoException may be thrown) as well as after the change is successfully made.

 -- Method on BeanContextChild: public void removeVetoableChangeListener (java.lang.String PROP, java.beans.VetoableChangeListener LISTENER)
     Remove a listener to a certain property.

 -- Method on BeanContextChildSupport: public void setBeanContext (java.beans.beancontext.BeanContext NEWBEANCONTEXT)
throws PropertyVetoException
     Set the parent BeanContext.

     When this Object is being added to a new BeanContext or moved from an old one, a non-null value will be passed in.

     When this Object is being removed from the current BeanContext, setBeanContext() will receive the parameter null.

     Order of events:

       * If the new BeanContext is the same as the old one, nothing happens.

       * If the change has not been rejected or vetoed before, call validatePendingSetBeanContext().  If this call returns false, the change is rejected and a PropertyVetoException is thrown.

       * If the change has not been rejected or vetoed before, VetoableChangeEvents are fired with the name "beanContext", using the fireVetoableChange() method.  If a veto occurs, reversion events are fired using the same method, the change is rejected, and the veto is rethrown.

       * releaseBeanContextResources() is called.

       * The change is made.

       * PropertyChangeEvents are fired using the firePropertyChange() method.

       * initializeBeanContextResources() is called.

 -- Method on BeanContextChildSupport: public BeanContext getBeanContext ()
     Get the parent BeanContext.

 -- Method on BeanContextChildSupport: public BeanContextChild getBeanContextChildPeer ()
     Get the peer (or this if there is no peer).

 -- Method on BeanContextChildSupport: public boolean isDelegated ()
     Determine whether there is a peer. This is true iff getBeanContextChildPeer() == this.

 -- Method on BeanContextChildSupport: public void addPropertyChangeListener (java.lang.String PROPERTYNAME, java.beans.PropertyChangeListener LISTENER)
     Add a listener that will be notified when a specific property changes.

 -- Method on BeanContextChildSupport: public void removePropertyChangeListener (java.lang.String PROPERTYNAME, java.beans.PropertyChangeListener LISTENER)
     Remove a listener to a certain property.

 -- Method on BeanContextChildSupport: public void addVetoableChangeListener (java.lang.String PROPERTYNAME, java.beans.VetoableChangeListener LISTENER)
     Add a listener that will be notified when a specific property change is requested (a PropertyVetoException may be thrown) as well as after the change is successfully made.

 -- Method on BeanContextChildSupport: public void removeVetoableChangeListener (java.lang.String PROPERTYNAME, java.beans.VetoableChangeListener LISTENER)
     Remove a listener to a certain property.

 -- Method on BeanContextChildSupport: public void firePropertyChange (java.lang.String PROPERTYNAME, java.lang.Object OLDVAL, java.lang.Object NEWVAL)
     Fire a property change.

 -- Method on BeanContextChildSupport: public void fireVetoableChange (java.lang.String PROPERTYNAME, java.lang.Object OLDVAL, java.lang.Object NEWVAL)
throws PropertyVetoException
     Fire a vetoable property change.

 -- Method on BeanContextChildSupport: public void serviceRevoked (java.beans.beancontext.BeanContextServiceRevokedEvent EVENT)
     Called by BeanContextServices.revokeService() to indicate that a service has been revoked. If you have a reference to such a service, it should be discarded and may no longer function properly. getService() will no longer work on the specified service class after this event has been fired.

     <EM>This method is meant to be overriden.</EM> BeanContextChildSupport's implementation does nothing.

 -- Method on BeanContextChildSupport: public void serviceAvailable (java.beans.beancontext.BeanContextServiceAvailableEvent EVENT)
     Called by BeanContextServices whenever a service is made available.

     <EM>This method is meant to be overriden.</EM> BeanContextChildSupport's implementation does nothing.

 -- Method on BeanContextChildSupport: public boolean validatePendingSetBeanContext (java.beans.beancontext.BeanContext NEWBEANCONTEXT)
     Called by setBeanContext() to determine whether the set should be rejected.

     <EM>This method is meant to be overriden.</EM> BeanContextChildSupport's implementation simply returns true.

 -- Method on BeanContextChildSupport: protected void releaseBeanContextResources ()
     Called by setBeanContext() to release resources of a what will soon no longer be the parent.

     <EM>This method is meant to be overriden.</EM> BeanContextChildSupport's implementation does nothing.

 -- Method on BeanContextChildSupport: protected void initializeBeanContextResources ()
     Called by setBeanContext() to grab resources when the parent has been set.

     <EM>This method is meant to be overriden.</EM> BeanContextChildSupport's implementation does nothing.

 -- Method on BeanContextContainerProxy: public Container getContainer ()
     Get the Container associated with this BeanContext.

 -- Method on BeanContextEvent: public BeanContext getBeanContext ()
     Get the BeanContext that originated this event.

 -- Method on BeanContextEvent: public BeanContext getPropagatedFrom ()
     Get the most recent propagator of this event. If this value is null, you have received the event straight from the source.

 -- Method on BeanContextEvent: public boolean isPropagated ()
     Tell whether this event has been propagated.

 -- Method on BeanContextEvent: public void setPropagatedFrom (java.beans.beancontext.BeanContext PROPAGATOR)
     Set the most recent propagator of this event.

 -- Method on BeanContext: public Object instantiateChild (java.lang.String BEANNAME)
throws IOException, ClassNotFoundException
     Instantiate a Bean using this Bean's ClassLoader and this BeanContext as the parent.

     This method exists mainly so that BeanContext implementations can perform extra actions on Beans that are created within them.

 -- Method on BeanContext: public URL getResource (java.lang.String RESOURCENAME, java.beans.beancontext.BeanContextChild REQUESTOR)
     Get a resource.  The BeanContext will typically call ClassLoader.getResource(), but may do it any way it wants to.  This allows a BeanContext to have its own set of resources separate from the rest of the system.

     Beans should call this method on their parent rather than the associated ClassLoader method.

     I am assuming, but am not entirely sure, that if a BeanContext cannot find a resource, its responsibility is to call the getResource method of its parent BeanContext.

 -- Method on BeanContext: public InputStream getResourceAsStream (java.lang.String RESOURCENAME, java.beans.beancontext.BeanContextChild REQUESTOR)
     Get a resource as a stream.  The BeanContext will typically call ClassLoader.getResourceAsStream(), but may do it any way it wants to.  This allows a BeanContext's children to have their own set of resources separate from the rest of the system.

     Beans should call this method on their parent rather than the associated ClassLoader method.

     I am assuming, but am not entirely sure, that if a BeanContext cannot find a resource, its responsibility is to call the getResourceAsStream method of its parent BeanContext.

 -- Method on BeanContext: public void addBeanContextMembershipListener (java.beans.beancontext.BeanContextMembershipListener LISTENER)
     Add a listener on changes to the membership of this BeanContext object.

 -- Method on BeanContext: public void removeBeanContextMembershipListener (java.beans.beancontext.BeanContextMembershipListener LISTENER)
     Remove a listener on changes to the membership of this BeanContext object.

 -- Method on BeanContextMembershipEvent: public int size ()
     The number of children removed or added.

 -- Method on BeanContextMembershipEvent: public Iterator iterator ()
     An iterator that will step through all the children.

 -- Method on BeanContextMembershipEvent: public Object toArray ()
     An array of the children.

 -- Method on BeanContextMembershipEvent: public boolean contains (java.lang.Object CHILD)
     Tell whether the Object is one of the children added or removed.

 -- Method on BeanContextMembershipListener: public void childrenAdded (java.beans.beancontext.BeanContextMembershipEvent EVENT)
     When beans are added to a BeanContext, this method is called to fire the event.

 -- Method on BeanContextMembershipListener: public void childrenRemoved (java.beans.beancontext.BeanContextMembershipEvent EVENT)
     When beans are removed from a BeanContext, this method is called to fire the event.

 -- Method on BeanContextProxy: public BeanContextChild getBeanContextProxy ()
     Return the BeanContextChild associated with this Object.

 -- Method on BeanContextServiceAvailableEvent: public Iterator getCurrentServiceSelectors ()
     Get the current service selectors of the service class. This is identical to getSourceAsBeanContextServices().getCurrentServiceSelectors(getServiceClass())

 -- Method on BeanContextServiceAvailableEvent: public Class getServiceClass ()
     Get the newly available service class.

 -- Method on BeanContextServiceAvailableEvent: public BeanContextServices getSourceAsBeanContextServices ()
     Get the BeanContextServices through which the new service is available.

 -- Method on BeanContextServiceProviderBeanInfo: public BeanInfo getServicesBeanInfo ()
     Get BeanInfos for all of the service classes of this BeanInfoServiceProvider.

 -- Method on BeanContextServiceProvider: public Object getService (java.beans.beancontext.BeanContextServices SERVICES, java.lang.Object REQUESTOR, java.lang.Class SERVICECLASS, java.lang.Object SERVICESELECTOR)
     Get a service.
     Called from BeanContextServices.getService().

     If the requested service class is not available, or if this
     BeanContextServiceProvider chooses not honor the
     request for some reason, then this method will return
     null.

     This method may throw unchecked exceptions, so watch out.

 -- Method on BeanContextServiceProvider: public void releaseService (java.beans.beancontext.BeanContextServices SERVICES, java.lang.Object REQUESTOR, java.lang.Object SERVICE)
     Release the service.

     Called by BeanContextServices.releaseService().

     Most BeanContextServiceProviders won't have to do anything here.

 -- Method on BeanContextServiceProvider: public Iterator getCurrentServiceSelectors (java.beans.beancontext.BeanContextServices SERVICES, java.lang.Class SERVICECLASS)
     Get a list of valid service selectors for the specified service class. This method is called from BeanContextServices.getCurrentServiceSelectors().

     If the specified service class does not have a finite number of valid service selectors, it should return null. If it takes a general Integer parameter, for example, you may as well return null or the poor soul who called this method will be iterating all day.

     If it has no valid service selectors, it should still return an empty Iterator.

 -- Method on BeanContextServiceRevokedEvent: public Class getServiceClass ()
     Get the revoked service class.

 -- Method on BeanContextServiceRevokedEvent: public boolean isServiceClass (java.lang.Class C)
     Tell whether the revoked service class is the same as the specified class. Identical to getServiceClass().equals(c).

 -- Method on BeanContextServiceRevokedEvent: public BeanContextServices getSourceAsBeanContextServices ()
     Get the BeanContextServices through which the service was available.

 -- Method on BeanContextServiceRevokedEvent: public boolean isCurrentServiceInvalidNow ()
     Tell whether current instances of the revoked service are usable or not. This is determined by whether the service was revoked immediately.

 -- Method on BeanContextServiceRevokedListener: public void serviceRevoked (java.beans.beancontext.BeanContextServiceRevokedEvent EVENT)
     Called by BeanContextServices.revokeService() to indicate that a service has been revoked. If you have a reference to such a service, it should be discarded and may no longer function properly. getService() will no longer work on the specified service class after this event has been fired.

 -- Method on BeanContextServices: public boolean addService (java.lang.Class SERVICECLASS, java.beans.beancontext.BeanContextServiceProvider PROVIDER)
     Register a service to make it available to others. This class may refuse to add the service based on whatever information it can gather, including whether the service provider is trusted.

 -- Method on BeanContextServices: public void revokeService (java.lang.Class SERVICECLASS, java.beans.beancontext.BeanContextServiceProvider PROVIDER, boolean REVOKENOW)
     Make it so that no one else can use this service.

     If revokeNow is false, the only effect of this method is to make all subsequent calls to getService() on this service class fail.

     If it is true, a message is also sent out to all listeners on the service and all references to it are released.

 -- Method on BeanContextServices: public void releaseService (java.beans.beancontext.BeanContextChild REQUESTORCHILD, java.lang.Object REQUESTOR, java.lang.Object SERVICE)
     Release your copy of this service.

     If all copies of the service's class have been relinquished by the requestor, the BeanContextServiceRevokedListener previously registered by getService() will be unregistered.

 -- Method on BeanContextServices: public Object getService (java.beans.beancontext.BeanContextChild REQUESTORCHILD, java.lang.Object REQUESTOR, java.lang.Class SERVICECLASS, java.lang.Object SERVICESELECTOR, java.beans.beancontext.BeanContextServiceRevokedListener LISTENER)
     Get a service from this BeanContextServices.

     The specified listener will be registered to receive a revocation notice for the specified serviceClass.  One notification per service class per requestor object will be sent.

     The listener will be unregistered when all services that were obtained by that requestor for that service class are released.

     If the requested service class is not available, or if this BeanContextServices object chooses not honor the request because the service class has been revoked or for some other reason, then this method will return null.

     This method may throw unchecked exceptions, so watch out.

 -- Method on BeanContextServices: public Iterator getCurrentServiceClasses ()
     Get a list of all service classes supported.

     This method must synchronize on BeanContext.globalHierarchyLock.

 -- Method on BeanContextServices: public Iterator getCurrentServiceSelectors (java.lang.Class SERVICECLASS)
     Get a list of valid service selectors for the specified service class.

     If the specified service class does not have a finite number of valid service selectors, it should return null. If it takes a general Integer parameter, for example, you may as well return null or the poor soul who called this method will be iterating all day.

     If it has no valid service selectors, it should still return an empty Iterator.

 -- Method on BeanContextServices: public boolean hasService (java.lang.Class SERVICECLASS)
     Tell whether the specified service class is available. Iff getService() could return a non-null value for the specified service, this method will return true.

 -- Method on BeanContextServices: public void addBeanContextServicesListener (java.beans.beancontext.BeanContextServicesListener LISTENER)
     Add a listener on all adds and removes of services.

 -- Method on BeanContextServices: public void removeBeanContextServicesListener (java.beans.beancontext.BeanContextServicesListener LISTENER)
     Remove a listener on all adds and removes of services.

 -- Method on BeanContextServicesListener: public void serviceAvailable (java.beans.beancontext.BeanContextServiceAvailableEvent EVENT)
     Called by BeanContextServices whenever a service is made available.