Peter Donald wrote:

> >|-- ContextException <-- ContextualizationException // new; have both or
> >have one...which one?
> 
> What Berin said
> 
> ContextException if Context.get() raises it else ContextualizationException

What is the source of the error?  Is it that the Context fails while
attempting to retrieve an object, or is it that the Component can't find
an object it is looking for?

If it is the previous: ContextException
If it is the latter: ContextualizationException

> >|-- CompositionException // new
> 
> Considering this is used by multiple things (Selectors as well) I think we
> should stick to ComponentException

+1  ComponentException.

> >|
> >|-- ConfigurationException
> >|
> >\-- InitializationException // new
> >
> >interface Startable { // better name, anyone?
> >       void start() throws StartException;
> >       void stop() throws StopException; // new
> >}
> 
> -1 Some things are startable without being stoppable and vice versa.

I agree.  But have Stoppable inherit from Startable because you
can't have Stoppable without Startable.

> >interface Suspendable { // better name, anyone?
> >       void suspend() throws SuspendException;
> >       void resume() throws ResumeException; // new
> >}
> 
> +1 if we can think of a better name.


How about "Interruptable"?

The term "interrupt" has the connotation of a temporary suspension of
current action that will be resumed later.  Note, this does not always
happen, and it should be legal to stop() a stoppable when a class is
interrupted.

The analogy is when two people are having a conversation, and a third
comes and interrupts the conversation.  In most cases, the conversation
will resume after the interrupt--but sometimes the interruption causes
the conversation to end (e.g. two siblings are talking, their dad
interrupts them and tells them to go clean their room--the conversation
is now terminated).

> 
> >abstract class ClassImplementingAllLifecycleMethods implements
> >       Loggable
> >       Contexualizable,
> >       Composable, // name change
> >       Configurable
> >       Initializable
> >       Startable
> >       Runnable
> >       Suspendable
> >       Recontextualizable
> >       Recomposable
> >       Reconfigurable
> >       Disposable
> >{
> >       void setLogger( Logger logger ); // does this need a different name?
> 
> Can you think of a better one?
> 
> Cheers,
> 
> Pete
> 
> *-----------------------------------------------------*
> | "Faced with the choice between changing one's mind, |
> | and proving that there is no need to do so - almost |
> | everyone gets busy on the proof."                   |
> |              - John Kenneth Galbraith               |
> *-----------------------------------------------------*
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to