xentara-plugin v2.0.4
The Xentara Plugin Framework
|
Base class for elements provided by a Xentara skill. More...
#include <xentara/skill/Element.hpp>
Classes | |
class | Class |
Meta-Information about an element class. More... | |
class | ConcreteClass |
Convenience subclass of Class that implements all callbacks. More... | |
Public Member Functions | |
virtual | ~Element ()=0 |
Virtual destructor. | |
Access to the properties | |
auto | name () const -> utils::string::StringView |
Gets the name of the element. | |
auto | primaryKey () const -> utils::string::StringView |
Gets the primary key of the element. | |
auto | uuid () const -> utils::core::Uuid |
Gets the UUID of the element. | |
auto | elementClass () const noexcept -> const Class & |
Gets the class of this element. | |
Callbacks for Accessing Children and Members | |
virtual auto | createChildElement (const Class &elementClass, ElementFactory &factory) -> std::shared_ptr< Element > |
Called by the framework to create a new child element of this element. | |
virtual auto | forEachAttribute (const model::ForEachAttributeFunction &function) const -> bool |
Called by the framework to iterate over all the attributes. | |
virtual auto | forEachEvent (const model::ForEachEventFunction &function) -> bool |
Called by the framework to iterate over all the events. | |
virtual auto | forEachTask (const model::ForEachTaskFunction &function) -> bool |
Called by the framework to iterate over all the tasks. | |
Data Access Callbacks | |
virtual auto | makeReadHandle (const model::Attribute &attribute) const noexcept -> std::optional< data::ReadHandle > |
Called by the framework to get a read handle for a specific attribute. | |
virtual auto | makeWriteHandle (const model::Attribute &attribute) noexcept -> std::optional< data::WriteHandle > |
Called by the framework to get a write handle for a specific attribute. | |
Callbacks for Optimized Member Lookup | |
virtual auto | resolveAttributeByName (std::string_view name) const -> std::shared_ptr< const model::Attribute > |
Optional callback for optimized attribute lookup. | |
virtual auto | resolveAttributeByUuid (const utils::core::Uuid &uuid) const -> std::shared_ptr< const model::Attribute > |
Optional callback for optimized attribute lookup. | |
virtual auto | resolveEventByName (std::string_view name) -> std::shared_ptr< process::Event > |
Optional callback for optimized event lookup. | |
virtual auto | resolveEventByUuid (const utils::core::Uuid &uuid) -> std::shared_ptr< process::Event > |
Optional callback for optimized event lookup. | |
virtual auto | resolveTaskByName (std::string_view name) -> std::shared_ptr< process::Task > |
Optional callback for optimized task lookup. | |
virtual auto | resolveTaskByUuid (const utils::core::Uuid &uuid) -> std::shared_ptr< process::Task > |
Optional callback for optimized task lookup. | |
Callbacks for meta information about the element | |
virtual auto | category () const noexcept -> model::ElementCategory=0 |
Callback for getting the element category. | |
Callbacks for handling dependencies during loading | |
virtual auto | isAttributePending (std::string_view name) const noexcept -> bool |
Callback for determining whether an attribute is not available yet due to unresolved references. | |
virtual auto | isAttributePending (const utils::core::Uuid &uuid) const noexcept -> bool |
Callback for determining whether an attribute is not available yet due to unresolved references. | |
virtual auto | isEventPending (std::string_view name) const noexcept -> bool |
Callback for determining whether an event is not available yet due to unresolved references. | |
virtual auto | isEventPending (const utils::core::Uuid &uuid) const noexcept -> bool |
Callback for determining whether an event is not available yet due to unresolved references. | |
virtual auto | isTaskPending (std::string_view name) const noexcept -> bool |
Callback for determining whether a task is not available yet due to unresolved references. | |
virtual auto | isTaskPending (const utils::core::Uuid &uuid) const noexcept -> bool |
Callback for determining whether a task is not available yet due to unresolved references. | |
virtual auto | isMetadataPending () const noexcept -> bool |
Callback for determining whether meta information is not available yet due to unresolved references. | |
Public Member Functions inherited from xentara::utils::tools::DisableCopy | |
constexpr | DisableCopy () noexcept=default |
DisableCopy (const DisableCopy &)=delete | |
DisableCopy & | operator= (const DisableCopy &)=delete |
Protected Member Functions | |
Access to the Xentara Element | |
auto | element () const noexcept -> const model::Element & |
Gets the Xentara element for this skill element. | |
auto | element () noexcept -> model::Element & |
Gets the Xentara element for this skill element. | |
auto | rootElement () const -> std::shared_ptr< const model::Element > |
Returns the invisible root element of the model this element belongs to. | |
auto | rootElement () -> std::shared_ptr< model::Element > |
Returns the invisible root element of the model this element belongs to. | |
Global Lookup Functions | |
auto | findAttribute (std::string_view primaryKey) -> model::ElementAttribute |
Finds the attribute with a specific primary key in the model this element belongs to. | |
auto | findAttributeVerbose (std::string_view primaryKey) -> utils::eh::expected< model::ElementAttribute, std::string > |
Finds the attribute with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findEvent (std::string_view primaryKey) const -> std::shared_ptr< const process::Event > |
Finds the event with a specific primary key in the model this element belongs to. | |
auto | findEvent (std::string_view primaryKey) -> std::shared_ptr< process::Event > |
Finds the event with a specific primary key in the model this element belongs to. | |
auto | findEventVerbose (std::string_view primaryKey) const -> utils::eh::expected< std::shared_ptr< const process::Event >, std::string > |
Finds the event with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findEventVerbose (std::string_view primaryKey) -> utils::eh::expected< std::shared_ptr< process::Event >, std::string > |
Finds the event with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findExtendedEvent (std::string_view primaryKey) const -> process::ExtendedEvent |
Finds the extended event with a specific primary key in the model this element belongs to. | |
auto | findExtendedEventVerbose (std::string_view primaryKey) const -> utils::eh::expected< process::ExtendedEvent, std::string > |
Finds the extended event with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findTask (std::string_view primaryKey) const -> std::shared_ptr< const process::Task > |
Finds the task with a specific primary key in the model this element belongs to. | |
auto | findTask (std::string_view primaryKey) -> std::shared_ptr< process::Task > |
Finds the task with a specific primary key in the model this element belongs to. | |
auto | findTaskVerbose (std::string_view primaryKey) const -> utils::eh::expected< std::shared_ptr< const process::Task >, std::string > |
Finds the task with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findTaskVerbose (std::string_view primaryKey) -> utils::eh::expected< std::shared_ptr< process::Task >, std::string > |
Finds the task with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findElement (std::string_view primaryKey) const -> std::shared_ptr< const model::Element > |
Finds the element with a specific primary key in the model this element belongs to. | |
auto | findElement (std::string_view primaryKey) -> std::shared_ptr< model::Element > |
Finds the element with a specific primary key in the model this element belongs to. | |
auto | findElementVerbose (std::string_view primaryKey) const -> utils::eh::expected< std::shared_ptr< const model::Element >, std::string > |
Finds the element with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findElementVerbose (std::string_view primaryKey) -> utils::eh::expected< std::shared_ptr< model::Element >, std::string > |
Finds the element with a specific primary key in the model this element belongs to, returning an error message on error. | |
auto | findElement (const utils::core::Uuid &uuid) const -> std::shared_ptr< const model::Element > |
Finds the element with a specific UUID in the model this element belongs to. | |
auto | findElement (const utils::core::Uuid &uuid) -> std::shared_ptr< model::Element > |
Finds the element with a specific UUID in the model this element belongs to. | |
Security Functions | |
auto | securityContext () const -> const security::Context & |
Returns the security context of the element. | |
auto | checkAccess (const security::Authorization &authorization, const security::Entitlement &entitlement) const -> bool |
Checks an authorization for a certain entitlement using the ACL for this element. | |
Private Member Functions | |
Element Lifetime Callbacks | |
virtual auto | load (utils::json::decoder::Object &jsonObject, config::Context &context) -> void |
Called by the framework to load the element’s configuration from a JSON object. | |
virtual auto | initSyntheticChild (const utils::json::decoder::Location &parentLocation, config::Context &context) -> void |
Called by the framework to initialize a synthetic element created using config::Context::createSyntheticChild(). | |
virtual auto | realize () -> void |
Called by the framework once all references have been resolved. | |
virtual auto | postRealize () -> void |
Called by the framework after all subservices have been realized. | |
virtual auto | prepare () -> void |
Called by the framework to prepare the element for operation. | |
virtual auto | postPrepare () -> void |
Called by the framework after all subservices have been prepared. | |
virtual auto | preCleanup () -> void |
Called by the framework before the subservices are cleaned up. | |
virtual auto | cleanup () -> void |
Called by the framework to clean up the element after operation. | |
Base class for elements provided by a Xentara skill.
|
pure virtualdefault |
Virtual destructor.
|
pure virtualnoexcept |
Callback for getting the element category.
This callback returns the element category best suited for this element. In some cases it may be necessary to know the full configuration of the element before being able to determine the correct category. It is therefore permissible for the returned category to change until the element’s realize() and postRealize() callbacks have been called. After the realize() and postRealize() callbacks have returned, however, the element’s category must remain constant for the remaining lifetime of the element. It is not permissible to change the element’s category after the realize() and postRealize() callbacks.
Implemented in xentara::io::Component, xentara::io::IoBatch, xentara::process::Microservice, and xentara::skill::DataPoint.
|
protected |
Checks an authorization for a certain entitlement using the ACL for this element.
|
privatevirtual |
Called by the framework to clean up the element after operation.
This method is called by the framework after Xentara has completely shut down.
This method is called after the cleanup() method of any subservices. You can override preCleanup() if you need to perform actions before the subservices are cleaned up.
|
virtual |
Called by the framework to create a new child element of this element.
The implementation for this method must use the given factory to create a new element of the given element class:
If your driver requires access to the child element later, you must store an std::weak_ptr to it somewhere.
The framework will call load() on the newly created element.
elementClass | The class for the new element |
factory | The factory that must be used to create the element |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
protectednoexcept |
Gets the Xentara element for this skill element.
|
protectednoexcept |
Gets the Xentara element for this skill element.
|
noexcept |
Gets the class of this element.
|
protected |
Finds the attribute with a specific primary key in the model this element belongs to.
primaryKey | The primary key of desired attribute, in UTF-8 encoding. |
|
protected |
Finds the attribute with a specific primary key in the model this element belongs to, returning an error message on error.
primaryKey | The primary key of desired attribute, in UTF-8 encoding. |
|
protected |
Finds the element with a specific UUID in the model this element belongs to.
uuid | The UUID of desired element. |
|
protected |
Finds the element with a specific UUID in the model this element belongs to.
uuid | The UUID of desired element. |
|
protected |
Finds the element with a specific primary key in the model this element belongs to.
primaryKey | The primary key of desired element, in UTF-8 encoding. |
|
protected |
Finds the element with a specific primary key in the model this element belongs to.
primaryKey | The primary key of desired element, in UTF-8 encoding. |
|
protected |
Finds the element with a specific primary key in the model this element belongs to, returning an error message on error.
primaryKey | The primary key of desired element, in UTF-8 encoding. |
|
protected |
Finds the element with a specific primary key in the model this element belongs to, returning an error message on error.
primaryKey | The primary key of desired element, in UTF-8 encoding. |
|
protected |
Finds the event with a specific primary key in the model this element belongs to.
This function only finds free-standing events of type process::Event. It does not find change events for attributes. To include change events for attributes in the search, use findExtendedEvent() instead.
primaryKey | The primary key of desired event, in UTF-8 encoding. |
|
protected |
Finds the event with a specific primary key in the model this element belongs to.
This function only finds free-standing events of type process::Event. It does not find change events for attributes. To include change events for attributes in the search, use findExtendedEvent() instead.
primaryKey | The primary key of desired event, in UTF-8 encoding. |
|
protected |
Finds the event with a specific primary key in the model this element belongs to, returning an error message on error.
This function only finds free-standing events of type process::Event. It does not find change events for attributes. To include change events for attributes in the search, use findExtendedEventVerbose() instead.
primaryKey | The primary key of desired event, in UTF-8 encoding. |
|
protected |
Finds the event with a specific primary key in the model this element belongs to, returning an error message on error.
This function only finds free-standing events of type process::Event. It does not find change events for attributes. To include change events for attributes in the search, use findExtendedEventVerbose() instead.
primaryKey | The primary key of desired event, in UTF-8 encoding. |
|
protected |
Finds the extended event with a specific primary key in the model this element belongs to.
This function will find any event with a specific name, including change events for attributes. This distuguished it from findEvent(), which only finds free-standing events of type process::Event.
primaryKey | The primary key of desired event, in UTF-8 encoding. |
|
protected |
Finds the extended event with a specific primary key in the model this element belongs to, returning an error message on error.
This function will find any event with a specific name, including change events for attributes. This distuguished it from findEventVerbose(), which only finds free-standing events of type process::Event.
primaryKey | The primary key of desired event, in UTF-8 encoding. |
|
protected |
Finds the task with a specific primary key in the model this element belongs to.
primaryKey | The primary key of desired task, in UTF-8 encoding. |
|
protected |
Finds the task with a specific primary key in the model this element belongs to.
primaryKey | The primary key of desired task, in UTF-8 encoding. |
|
protected |
Finds the task with a specific primary key in the model this element belongs to, returning an error message on error.
primaryKey | The primary key of desired task, in UTF-8 encoding. |
|
protected |
Finds the task with a specific primary key in the model this element belongs to, returning an error message on error.
primaryKey | The primary key of desired task, in UTF-8 encoding. |
|
virtual |
Called by the framework to iterate over all the attributes.
Implementations must call the given function once for each custom attribute, until the function returns true. If the function returns true for any attribute, the implementation must return true, otherwise false. A possible implementation looks like this:
Usually, attributes are defined as members at global or namespace scope, or as static member variables. For such attributes, you can just pass a reference to the attribute to the function. The same goes for attributes that are members of your skill object, or of any other object that never gets destroyed until Xentara shuts down.
Sometimes, however, an attribute will be a member of an element class, or be dynamically created in some other way. In that case, you need to call the function using a shared pointer to the attribute. This ensures that the attribute will not be destroyed while another element is accessing it. To create a shared pointer to an attribute, either make the attribute itself a shared object by creating it using std::make_shared, or make it a member of another shared object, and use the aliasing constructor (8) of std::shared_ptr to create a shared pointer to the attribute from a pointer to the containing object. If the attribute is a member of your element class, derive the element class from EnableSharedFromThis and use sharedFromThis<Alias>() to create the shared pointer.
In the following example, the element published two standard attributes, and one attribute that is a member of the element class:
The implementation must not call the function with the standard attributes model::Attribute::kPrimaryKey, model::Attribute::kName, and model::Attribute::kUuid, as these are handled automatically by the framework.
This callback is always called after all Xentara model elements references have been resolved. This means that when this function is called, all references to Xentara model elements you submitted in load() have already been resolved.
function | The function that should be called for each attribute |
std::runtime_error | The function may throw this exception (or a suitable subclass) if an error occurs. |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Called by the framework to iterate over all the events.
Implementations must call the given function once for each event, until the function returns true. If the function returns true for any event, the implementation must return true, otherwise false. A possible implementation looks like this:
If the events are not shared object itself, but regular member variables, you can derive your element class from EnableSharedFromThis and use sharedFromThis<Alias>() to create shared pointers to the events:
You can also use the aliasing constructor (8) of std::shared_ptr to create a shared pointer to an event that is a member of a shared object not derived from EnableSharedFromThis.
This callback is always called after all Xentara model elements references have been resolved. This means that when this function is called, all references to Xentara model elements you submitted in load() have already been resolved.
function | The function that should be called for each event |
std::runtime_error | The function may throw this exception (or a suitable subclass) if an error occurs. |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Called by the framework to iterate over all the tasks.
Implementations must call the given function once for each task, until the function returns true. If the function returns true for any task, the implementation must return true, otherwise false. A possible implementation looks like this:
If the tasks are not shared object itself, but regular member variables, you can derive your element class from EnableSharedFromThis and use sharedFromThis<Alias>() to create shared pointers to the tasks:
You can also use the aliasing constructor (8) of std::shared_ptr to create a shared pointer to a task that is a member of a shared object not derived from EnableSharedFromThis.
This callback is always called after all Xentara model elements references have been resolved. This means that when this function is called, all references to Xentara model elements you submitted in load() have already been resolved.
function | The function that should be called for each task |
std::runtime_error | The function may throw this exception (or a suitable subclass) if an error occurs. |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
privatevirtual |
Called by the framework to initialize a synthetic element created using config::Context::createSyntheticChild().
This callback is called for each synthetic child once the load() function of the parent has returned.
parentLocation | The location of the parent element’s configuration object in the model file. This location can be used in error messages. |
context | A context that can be used to resolve cross-references and create nested synthetic children. |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
|
virtualnoexcept |
Callback for determining whether an attribute is not available yet due to unresolved references.
This function is called when resolving references during loading of the model file to check whether an attribute is not available yet because some cross references have not yet been resolved.
uuid | The uuid of the attribute in question. |
|
virtualnoexcept |
Callback for determining whether an attribute is not available yet due to unresolved references.
This function is called when resolving references during loading of the model file to check whether an attribute is not available yet because some cross references have not yet been resolved.
name | The name of the attribute in question. |
|
virtualnoexcept |
Callback for determining whether an event is not available yet due to unresolved references.
This function is called when resolving references during loading of the model file to check whether an event is not available yet because some cross references have not yet been resolved.
uuid | The uuid of the event in question. |
|
virtualnoexcept |
Callback for determining whether an event is not available yet due to unresolved references.
This function is called when resolving references during loading of the model file to check whether an event is not available yet because some cross references have not yet been resolved.
name | The name of the event in question. |
|
virtualnoexcept |
Callback for determining whether meta information is not available yet due to unresolved references.
This function is called when resolving element references during loading of the model file to check whether the meta information of the element is not available yet because some cross references to Xentara elements have not yet been resolved. You can return true from this callback if any of the following callback cannot return the correct information yet:
|
virtualnoexcept |
Callback for determining whether a task is not available yet due to unresolved references.
This function is called when resolving references during loading of the model file to check whether a task is not available yet because some cross references have not yet been resolved.
uuid | The uuid of the task in question. |
|
virtualnoexcept |
Callback for determining whether a task is not available yet due to unresolved references.
This function is called when resolving references during loading of the model file to check whether a task is not available yet because some cross references have not yet been resolved.
name | The name of the task in question. |
|
privatevirtual |
Called by the framework to load the element’s configuration from a JSON object.
The standard configuration parameters "name", "UUID", "ACL", and "children" are handled automatically by the framework using a JSON object filter. The corresponding JSON members are filtered out, and will not be enumerated when you iterate over the JSON object’s members.
jsonObject | The JSON object. The object has a filter installed that will filter out and handle the standard configuration parameters. |
context | A context that can be used to resolve cross-references, create [synthetic children](config::Context::createSyntheticChild()), and find external configurations. |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtualnoexcept |
Called by the framework to get a read handle for a specific attribute.
The implementation for this method must return a read handle for the given attribute's value.
attribute | The desired attribute. This will never be one of the standard configuration attributes, as these are handled automatically by the framework. |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtualnoexcept |
Called by the framework to get a write handle for a specific attribute.
The implementation for this method must return a write handle for the given attribute's value.
attribute | The desired attribute. This will never be one of the standard configuration attributes, as these are handled automatically by the framework. |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
auto xentara::skill::Element::name | ( | ) | const -> utils::string::StringView |
Gets the name of the element.
|
privatevirtual |
Called by the framework after all subservices have been prepared.
This method is similar to the prepare() method, but it is called after the prepare() method of subservices.
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
|
privatevirtual |
Called by the framework after all subservices have been realized.
This method is similar to the realize() method, but it is called after the realize() method of subservices.
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
|
privatevirtual |
|
privatevirtual |
Called by the framework to prepare the element for operation.
This method is called by the framework after all objects have been realized, but before any processing is done. It allows you to prepare the object for operation. This is the place where read and write handles for attributes should be fetched, for example.
This method is called before the prepare() method of any subservices. You can override postPrepare() if you need to perform actions after all subservices have been prepared.
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
auto xentara::skill::Element::primaryKey | ( | ) | const -> utils::string::StringView |
Gets the primary key of the element.
|
privatevirtual |
Called by the framework once all references have been resolved.
This method is called by the framework after the configuration has been completely loaded and all references have been resolved, but before the objects are prepared for processing. Use this function to perform initialization that requires access to the objects you submitted to the resolver in load().
This method is called before the realize() method of any subservices. You can override postRealize() if you need to perform actions after all subservices have been realized.
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
|
virtual |
Optional callback for optimized attribute lookup.
This function allows you to provide optimized lookup for looking up attributes by name, for example by using a hash table.
name | The name of the desired attribute, in UTF-8 encoding |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Optional callback for optimized attribute lookup.
This function allows you to provide optimized lookup for looking up attributes by UUID, for example by using a hash table.
uuid | The uuid of the desired attribute |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Optional callback for optimized event lookup.
This function allows you to provide optimized lookup for looking up events by name, for example by using a hash table.
name | The name of the desired event, in UTF-8 encoding |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Optional callback for optimized event lookup.
This function allows you to provide optimized lookup for looking up events by UUID, for example by using a hash table.
uuid | The UUID of the desired event |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Optional callback for optimized task lookup.
This function allows you to provide optimized lookup for looking up tasks by name, for example by using a hash table.
name | The name of the desired task, in UTF-8 encoding |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
virtual |
Optional callback for optimized task lookup.
This function allows you to provide optimized lookup for looking up tasks by UUID, for example by using a hash table.
uuid | The UUID of the desired task |
std::runtime_error | The function must throw this exception (or a suitable subclass) if an error occurs |
Reimplemented in xentara::io::Component, xentara::io::Io, xentara::io::IoBatch, and xentara::process::Microservice.
|
protected |
Returns the invisible root element of the model this element belongs to.
The invisible root element is the parent element of all top-level elements in the model. It does not have a name, a primary key, attributes, events, or tasks. The only thing the invisible root element can be used for is accessing its children using childElements() or forEachChildElement(), and getting its uuid().
|
protected |
Returns the invisible root element of the model this element belongs to.
The invisible root element is the parent element of all top-level elements in the model. It does not have a name, a primary key, attributes, events, or tasks. The only thing the invisible root element can be used for is accessing its children using childElements() or forEachChildElement(), and getting its uuid().
|
protected |
Returns the security context of the element.
auto xentara::skill::Element::uuid | ( | ) | const -> utils::core::Uuid |
Gets the UUID of the element.