Greg Wilkins wrote:
> ...
> But, hopefully most of it can be solved with some renaming and/or
> a minor restructure.
> ...
Actually reading Giany's issues (14 & 73), I think we need a
bit more of a rename/restructure.
It does appear that our current AbstractComponent and AbstractContainer
really should be ManagedObjects and it is simple to make them implement the
ManagedObject interface.
Also instead of renaming them to StateManageableComponent &
StateManageableContainer
(as per my previous email) I think it makes more sense to rename them to
ManagedComponent and ManagedContainer
However, they should probably extend AbstractManagedObject - which currently
duplicates much of the content of AbstractStateManageable. Thus I think
AbstractStateManageable should be moved to kernel and used as the base for
AbstracteManagedObject.
Thus we would end up with the following hierarchy:
kernel:
<<StateManageable>>
^
|
AbstractStateManageable
^
|
AbstractManagedObject
^
core: |
<<Component>> <--- AbstractComponent <--- ManagedComponent
^ ^ ^
| | |
<<Container>> <--- AbstractContainer -----o ManagedContainer
^ /
\ /
----------------------------------