Component is a high-level class that proposes an automatic memory managment model based on ownership. It also verifies the requirements to make its instances referencable and serializable.
Ownership: A Component can be created with iz.memory.construct. As constructor parameter another Component can be specified. It's in charge for freeing this "owned" instance. Components that's not owned have to be freed manually. A reference to an owned object can be escaped. To be notified of its destruction, it's possible to observe the component or its owner by adding an observer to the componentSubject.
Referencable: Each Component instance that's properly named is automatically registered in the ReferenceMan, as a void reference. This allows some powerfull features such as the Object property editor or the Serializer to inspect, store, retrieve a Component between two sessions.
Serializable: A Component implements the PropertyPublisher interface. Each field annotated with @SetGet and each setter/getter pair annotated with @Set and @Get is automatically published and is usable by a PropertyBinder, by a Serializer or by any other system based on the PropDescriptor system.
Destructs this and all the owned instances.
Returns the subject allowing ComponentObservers to observe this instance.
Suggests an unique Component name according to base.
Defines the name of this Component.
Returns true if a string is available as an unique Component name.
Returns this instance onwer.
Returns the fully qualified name of this component in the owner Component tree.
Constructs a new instance whose life-time will be managed.
Returns the count of descriptor this class publishes.
Returns a pointer to a descriptor according to its name. Similar to the publication() function template excepted that the result type has not to be specified.
Returns a pointer the index-th descriptor. Index must be within the [0 .. publicationCount] range.
Pointer to the object that has created the descriptor leading to this PropertyPublisher instance.