ACF $AcfVersion:0$
CCompositeComponentStaticInfo.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QMap>
7
8// ACF includes
9#include <istd/TDelPtr.h>
10
12#include <icomp/IRegistry.h>
14
15
16namespace icomp
17{
18
19
20class IComponentEnvironmentManager;
21class IRegistriesManager;
22
23
25{
26public:
28 const IRegistry& registry,
30 const IComponentStaticInfo* parentPtr = NULL);
31
32 const IRegistry& GetRegistry() const;
33
34 // reimplemented (icomp::IRealComponentStaticInfo)
35 virtual IComponentUniquePtr CreateComponent() const override;
36
37 // reimplemented (icomp::IComponentStaticInfo)
38 virtual int GetComponentType() const override;
39 virtual const IComponentStaticInfo* GetEmbeddedComponentInfo(const QByteArray& embeddedId) const override;
40 virtual const QString& GetDescription() const override;
41 virtual const QString& GetKeywords() const override;
42
43protected:
48 const IRegistry& registry,
49 const QByteArray& elementId,
50 const icomp::IRegistriesManager& manager) const;
51
53 {
54 public:
56 const IAttributeStaticInfo* slavePtr,
57 const iser::IObject* defaultValuePtr);
58
59 // reimplemented (icomp::IAttributeStaticInfo)
60 virtual IElementStaticInfo::Ids GetRelatedMetaIds(int metaGroupId, int flags, int flagsMask) const override;
61
62 // reimplemented (iattr::IAttributeMetaInfo)
63 virtual QString GetAttributeDescription() const override;
64 virtual const iser::IObject* GetAttributeDefaultValue() const override;
65 virtual QByteArray GetAttributeTypeId() const override;
66 virtual int GetAttributeFlags() const override;
67
68 private:
69 const IAttributeStaticInfo& m_slave;
70 const iser::IObject* m_defaultValuePtr;
71 };
72
73private:
75 typedef QMap<const IAttributeStaticInfo*, AttrMetaInfoPtr> AttrReplacers;
76 AttrReplacers m_attrReplacers;
77
79 typedef QMap<QByteArray, ComponentInfoPtr> EmbeddedComponentInfos;
80 mutable EmbeddedComponentInfos m_embeddedComponentInfos;
81
82 QString m_description;
83 QString m_keywords;
84
85 const icomp::IRegistry& m_registry;
86};
87
88
89} // namespace icomp
90
91
92
93
Standard implementation of static info for base component classes.
virtual QByteArray GetAttributeTypeId() const override
Return attribute type ID.
virtual int GetAttributeFlags() const override
Get flags of this attribute.
virtual QString GetAttributeDescription() const override
Get description of this attribute.
virtual IElementStaticInfo::Ids GetRelatedMetaIds(int metaGroupId, int flags, int flagsMask) const override
Get related meta information.
AttrAsOptionalDelegator(const IAttributeStaticInfo *slavePtr, const iser::IObject *defaultValuePtr)
virtual const iser::IObject * GetAttributeDefaultValue() const override
Get default attribute value.
virtual const QString & GetKeywords() const override
Get keywords for this component.
virtual const QString & GetDescription() const override
Get human readable description of this component.
virtual int GetComponentType() const override
Get information about component type.
virtual const IComponentStaticInfo * GetEmbeddedComponentInfo(const QByteArray &embeddedId) const override
Return number of interfaces for specific slot.
const IRegistry::ElementInfo * GetElementInfoFromRegistry(const IRegistry &registry, const QByteArray &elementId, const icomp::IRegistriesManager &manager) const
Get the element info for the given element ID.
const IRegistry & GetRegistry() const
CCompositeComponentStaticInfo(const IRegistry &registry, const icomp::IComponentEnvironmentManager &manager, const IComponentStaticInfo *parentPtr=NULL)
virtual IComponentUniquePtr CreateComponent() const override
Create component instance.
Describe component attribute static information.
This interface provide static information about component meta info.
Allow access to registries defined by composed components.
Interface representing information stored in component registry.
Definition IRegistry.h:48
Common interface for factorisable model objects.
Definition IObject.h:23
Pointer wrapper providing automatic deleting pointed object during destruction.
Definition TDelPtr.h:21
#define NULL
Definition istd.h:74
Package with interfaces and class used for components concept.
std::unique_ptr< IComponent > IComponentUniquePtr
Definition IComponent.h:72
Describe information stored with each element.
Definition IRegistry.h:69