API Guides > ConceptRT 3.x
ConceptDynamicComponent< ElementType > Class Template Reference

Concept dynamic component. Polymorphous and configurable single content. More...

Detailed Description

template<class ElementType>
class ConceptRT::ConceptDynamicComponent< ElementType >

Concept dynamic component. Polymorphous and configurable single content.

Template Parameters
ElementTypeBase type of the dynamic element contains in the DynamicComponent. the contained element is or inherite from ElementType type.
See also
ConceptContainer
+ Inheritance diagram for ConceptDynamicComponent< ElementType >:

Public Member Methods

BaseConceptFactoryGetFactory () const
 Gets the ConceptElement factory. More...
 
 ~ConceptDynamicComponent ()
 Destructor. More...
 
 ConceptDynamicComponent (const ConceptDynamicComponent &right)
 Copy constructor. More...
 
ConceptDynamicComponentoperator= (const ConceptDynamicComponent &right)
 Assignment operator. More...
 
Int32 Add (ConceptElement &element)
 Adds element.. More...
 
bool IsValid () const
 Query if the DynamicComponent contains an element. More...
 
ElementType & GetComponent () const
 Gets the component. More...
 
void SetComponent (ElementType &element)
 Sets a component. More...
 
ElementType & SetNewComponent (const BaseConceptFactory &factory, const PCChar8 name="")
 Sets a new component. More...
 
template<class ElementSubType >
ElementSubType & SetNewComponent (const PCChar8 name="")
 Set a new component. More...
 
void ReadFrom (IDataStore &dataStore, IMessageCollector *messages=NULL)
 Reads from. More...
 
void WriteTo (IDataStore &dataStore) const
 Writes to. More...
 
void Clear ()
 Clears the content of this container. More...
 
void Accept (IContainerVisitor &visitor)
 Accepts IContainerVisitor to access the object published fields. More...
 
- Public Member Methods inherited from ConceptContainer
const bool & GetIsXmlPropertyVisible () const
 Show the xml field in the invocation. More...
 
const bool & GetIsXmlPropertyVisible ()
 Show the xml field in the invocation. More...
 
void SetIsXmlPropertyVisible (const bool &value)
 Show the xml field in the invocation. More...
 
const bool & GetIsXmlPropertyReadOnly () const
 Control access on the xml file shown in the invocation. More...
 
const bool & GetIsXmlPropertyReadOnly ()
 Control access on the xml file shown in the invocation. More...
 
void SetIsXmlPropertyReadOnly (const bool &value)
 Control access on the xml file shown in the invocation. More...
 
 ConceptContainer ()
 Default constructor. More...
 
 ~ConceptContainer ()
 Destructor. More...
 
bool Contains (ConceptElement &element) const
 Query if this object contains the given element. More...
 
void ResolveLinks ()
 Resolve links. More...
 
void Invoke (const DynamicInvocationRequest &request, DynamicInvocationResult &result)
 Invokes the object fields and methods. More...
 
ConceptElementFind (const PCChar8 path) const
 Searches into the container and sub-containers an element. More...
 
virtual ConceptElementFindByName (const PCChar8 name) const
 Searches into the container an element. More...
 
template<class ElementSubType >
ElementSubType * FindByName (const PCChar8 name) const
 Searches into the container an element of a certain type. More...
 
void RetrieveProvidedFactories (BaseConceptFactories &factories, const Predicate< BaseConceptFactory & > &filter)
 Retrieve provided factories. More...
 
void RetrieveProvidedFactories (BaseConceptFactories &factories)
 RetrieveProvidedFactories. More...
 
void RetrieveFactories (BaseConceptFactories &factories) const
 Retrieve factories. More...
 
- Public Member Methods inherited from ConceptElement
const bool & GetIsInvocable () const
 Controls if the objet should be shown in the invocation. More...
 
const bool & GetIsInvocable ()
 Controls if the objet should be shown in the invocation. More...
 
void SetIsInvocable (const bool &value)
 Controls if the objet should be shown in the invocation. More...
 
const bool & GetIsSerialized () const
 Controls if the objet should be serialized. More...
 
const bool & GetIsSerialized ()
 Controls if the objet should be serialized. More...
 
void SetIsSerialized (const bool &value)
 Controls if the objet should be serialized. More...
 
 ConceptElement ()
 Default constructor. More...
 
 ConceptElement (const ConceptElement &right)
 Default constructor. More...
 
ConceptElementoperator= (const ConceptElement &right)
 Assignment operator. More...
 
const StaticString< ConceptElementNameMaxLength > & GetName () const
 Gets the name. More...
 
void SetName (const PCChar8 name)
 Sets a name. More...
 
String GetPath () const
 Gets the path of the ConceptElement. More...
 
ConceptContainerGetContainer () const
 Gets the container of the ConceptElement. More...
 
template<class ContainerType >
ContainerType * GetContainerOfType () const
 Gets the container of a certain type the ConceptElement. More...
 
ConceptContainerGetRootContainer () const
 Gets the root container of the ConceptElement. More...
 
virtual const String GetDisplayName () const
 Gets the display name. More...
 
virtual void CopyDataFrom (const ConceptElement &source)
 Copies the data from another ConceptElement. More...
 
virtual void CopyFrom (const ConceptElement &source)
 Copies itself from a given source. More...
 
ConceptElementGetProvider () const
 Gets the provider of the ConceptElement if defined, throws a ConceptException otherwise. More...
 
template<class T >
T & GetProvider () const
 Gets the provider of the ConceptElement if defined and of type T, throws a ConceptException otherwise. More...
 
bool GetHasProvider () const
 Tests the existence of a provider. More...
 
template<class T >
bool GetHasProvider () const
 Tests the existence of a provider of type T. More...
 
virtual ConceptElementClone () const
 Makes a deep copy of this object. More...
 
void RetrieveProvidedFactories (BaseConceptFactories &factories)
 Retrieve provided factories. More...
 
Variant GetPropertyMetaData (PCChar8 propertyName, PCChar8 metaDataName, const Variant &defaultValue=Variant::GetVariantNull()) const
 Returns a metadata string corresponding to a property and a metadata name. More...
 

Static Public Member Functions

static BaseConceptFactoryGetClassFactory ()
 Get the class factory. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ConceptContainer
virtual Int32 Add (ConceptElement &element, const PCChar8 name)
 Adds element. More...
 
- Protected Member Functions inherited from ConceptElement
void Initialize ()
 Initializes this object. More...
 
virtual BaseConceptFactoryInternalGetFactory () const
 Gets the object factory. More...
 
virtual void RetrieveElementProvidedFactories (BaseConceptFactories &factories, const Predicate< BaseConceptFactory & > &filter)
 RetrieveElementProvidedFactories. Used by the macro CONCEPT_PROVIDED_COMPONENT_BEGIN More...
 

Constructor & Destructor Documentation

Destructor.

ConceptDynamicComponent ( const ConceptDynamicComponent< ElementType > &  right)

Copy constructor.

Parameters
rightThe right.

Methods Documentation

void Accept ( IContainerVisitor visitor)
virtual

Accepts IContainerVisitor to access the object published fields.

Parameters
visitor[in,out] The visitor.

Reimplemented from ConceptContainer.

Int32 Add ( ConceptElement element)
virtual

Adds element..

Parameters
element[in,out] The ConceptElement& to add.
Returns
.
RT Exceptions:
RT_ERROR_OBJECT_TYPE_NOT_SUPPORTED

Reimplemented from ConceptContainer.

void Clear ( )
virtual

Clears the content of this container.

Warning
Non-Deterministic: Deletion of content will remove items from the heap. Determinism when using ConceptRT library can be ensure by using Context Time Critical mechanisms.

Implements ConceptContainer.

static BaseConceptFactory& GetClassFactory ( )
inlinestatic

Get the class factory.

Returns
The class factory.
ElementType & GetComponent ( ) const

Gets the component.

Returns
The component.
RT Exceptions:
RT_ERROR_DYNAMIC_COMPONENT_NOT_SET
BaseConceptFactory& GetFactory ( ) const
inlinevirtual

Gets the ConceptElement factory.

Returns
The factory.
RT Exceptions:
RT_ERROR_INTERNAL_FACTORY_NOT_DEFINED

Implements ConceptElement.

bool IsValid ( ) const

Query if the DynamicComponent contains an element.

Returns
true if valid, false if not.
ConceptDynamicComponent< ElementType > & operator= ( const ConceptDynamicComponent< ElementType > &  right)

Assignment operator.

Parameters
rightThe right.
Returns
A shallow copy of this object.
void ReadFrom ( IDataStore dataStore,
IMessageCollector messages = NULL 
)
virtual

Reads from.

Parameters
dataStore[in,out] The dataStore.
messages[in,out] (optional) The messageCollector to collect warning or error messages. Default = NULL.
RT Exceptions:

RT_ERROR_DESERIALIZATION_LOAD_OBJECT

RT_ERROR_FACTORY_NOT_FOUND

RT_ERROR_DATASTORE_TYPE_INCOMPATIBLE

RT_ERROR_OBJECT_TYPE_NOT_SUPPORTED

Implements ConceptElement.

void SetComponent ( ElementType &  element)

Sets a component.

Parameters
element[in,out] The ConceptElement& to add.
RT Exceptions:
RT_ERROR_OBJECT_TYPE_NOT_SUPPORTED
ElementType & SetNewComponent ( const BaseConceptFactory factory,
const PCChar8  name = "" 
)

Sets a new component.

Parameters
factoryThe ConceptElement factory.
name(optional) the name. Default is "".
Returns
The new component.
Warning
Non-Deterministic: The new element is created on the heap. Determinism when using ConceptRT library can be ensure by using Context Time Critical mechanisms.
RT Exceptions:
RT_ERROR_OBJECT_TYPE_NOT_SUPPORTED
ElementSubType & SetNewComponent ( const PCChar8  name = "")

Set a new component.

Parameters
name(optional) the name. Default is "".
Returns
The new component.
Warning
Non-Deterministic: The new element is created on the heap. Determinism when using ConceptRT library can be ensure by using Context Time Critical mechanisms.
RT Exceptions:
RT_ERROR_OBJECT_TYPE_NOT_SUPPORTED
void WriteTo ( IDataStore dataStore) const
virtual

Writes to.

Parameters
dataStore[in,out] The dataStore.

Implements ConceptElement.