public L getLifecycle() { return this.getLifecycleInternal(); }
@Override public synchronized void bind(IContainer childContainer, boolean autoStartChild) {
switch (this.getLifecycle().getCurrentPhase()) {
case DESTROY:
throw new LifecycleException("Cannot bind child container after destroy", childContainer.getLifecycle());
default:
if (this.bindings.containsKey(childContainer))
throw new IllegalArgumentException("Child container already bound");