Dev Essential  1.6.3
Loading...
Searching...
No Matches
ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE > Struct Template Reference

Factory to create a DataDefinition out of a XML based description. This factory uses a template type DOM_NODE_TYPE which is design to follow the a concept class type definition of the a_util::DOMElement. More...

#include <xml_ddfromxml_factory.h>

Classes

struct  AsOptional
 
struct  Mandatory
 

Static Public Member Functions

static bool isInteger (const std::string &string_to_check) noexcept
 Checks if the given string is an integer value.
 
template<typename T>
static utility::Optional< T > getAttribute (const DOM_NODE_TYPE &dom_node, const std::string &attribute_name, AsOptional)
 Get the Attribute from the dom_node. Return a valid Optional<T> if set, otherwise return default_value or throw.
 
template<typename T>
static T getAttribute (const DOM_NODE_TYPE &dom_node, const std::string &attribute_name, T default_value) noexcept
 
template<typename T>
static T getAttribute (const DOM_NODE_TYPE &dom_node, const std::string &attribute_name, Mandatory)
 
template<typename T>
static utility::Optional< T > getData (const DOM_NODE_TYPE &dom_node, const std::string &sub_node_name, AsOptional)
 Get the data content of a subnode of dom_node. Return a valid Optional<T> if set, otherwise return default_value or throw.
 
template<typename T>
static T getData (const DOM_NODE_TYPE &dom_node, const std::string &sub_node_name, T default_value) noexcept
 
template<typename T>
static T getData (const DOM_NODE_TYPE &dom_node, const std::string &sub_node_name, Mandatory)
 
static datamodel::Header::ExtDeclaration createHeaderExtDeclaration (const DOM_NODE_TYPE &dom_node)
 Create a Header Ext Declaration object.
 
static datamodel::Header createHeader (const DOM_NODE_TYPE &dom_node)
 Create a Header object.
 
static datamodel::BaseUnit createBaseUnit (const DOM_NODE_TYPE &dom_node)
 Create a Base Unit object.
 
static datamodel::UnitPrefix createUnitPrefix (const DOM_NODE_TYPE &dom_node)
 Create a Unit Prefix object.
 
static datamodel::Unit::RefUnit createRefUnit (const DOM_NODE_TYPE &dom_node)
 Create a Ref Unit object.
 
static datamodel::Unit createUnit (const DOM_NODE_TYPE &dom_node)
 Create a Unit object.
 
static datamodel::DataType createDataType (const DOM_NODE_TYPE &dom_node, const Version &file_ddl_version, bool strict)
 Create a Data Type object.
 
static datamodel::EnumType::Element createEnumTypeElement (const DOM_NODE_TYPE &dom_node)
 Create a Enum Type Element object.
 
static datamodel::EnumType createEnumType (const DOM_NODE_TYPE &dom_node)
 Create a Enum Type object.
 
static datamodel::StructType::Element createStructTypeElement (const DOM_NODE_TYPE &dom_node, const Version &file_ddl_version, bool strict)
 Create a Struct Type Element object.
 
static datamodel::StructType createStructType (const DOM_NODE_TYPE &dom_node, const Version &file_ddl_version, bool strict)
 Create a Struct Type object.
 
static datamodel::StreamMetaType::Property createStreamMetaTypeProperty (const DOM_NODE_TYPE &dom_node)
 Create a Stream Meta Type Property object.
 
static datamodel::StreamMetaType createStreamMetaType (const DOM_NODE_TYPE &dom_node)
 Create a Stream Meta Type object.
 
static datamodel::Stream::Struct createStreamStruct (const DOM_NODE_TYPE &dom_node)
 Create a Stream Struct object.
 
static datamodel::Stream createStream (const DOM_NODE_TYPE &dom_node)
 Create a Stream object.
 
static datamodel::DataDefinition createDD (const DOM_NODE_TYPE &dom_node, const dd::Version &language_version, bool strict)
 Creates a whole DataDefinition and read all sub node.
 

Detailed Description

template<typename DOM_NODE_TYPE>
struct ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >

Factory to create a DataDefinition out of a XML based description. This factory uses a template type DOM_NODE_TYPE which is design to follow the a concept class type definition of the a_util::DOMElement.

Template Parameters
DOM_NODE_TYPEa DOMElement class must implement following funtions:
  • string getAttribute(const std::string& name) const;
  • string getData() const;
  • bool findNode(const std::string& node_name, DOM_NODE_TYPE& result_node) const;
  • bool findNodes(const std::string& node_names, std::list<DOM_NODE_TYPE>& result_nodes) const;

Member Function Documentation

◆ createBaseUnit()

template<typename DOM_NODE_TYPE>
static datamodel::BaseUnit ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createBaseUnit ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Base Unit object.

Parameters
dom_nodethe node to create the BaseUnit from (should be "baseunit" tag name).
Returns
datamodel::BaseUnit

◆ createDataType()

template<typename DOM_NODE_TYPE>
static datamodel::DataType ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createDataType ( const DOM_NODE_TYPE & dom_node,
const Version & file_ddl_version,
bool strict )
inlinestatic

Create a Data Type object.

Parameters
dom_nodethe node to create the DataType from (should be "datatype" tag name).
file_ddl_versionthe set filename language verion (from header)
strictset to true to load the datamodel exactly like defined (no mixture of DDL tag definitions allowed).
Returns
datamodel::DataType

◆ createDD()

template<typename DOM_NODE_TYPE>
static datamodel::DataDefinition ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createDD ( const DOM_NODE_TYPE & dom_node,
const dd::Version & language_version,
bool strict )
inlinestatic

Creates a whole DataDefinition and read all sub node.

Parameters
dom_nodenode to create the DataDefinition from.
language_versionforced language version is no header-tag is found within the dom definition
strictset to true to load the datamodel exactly like defined (no mixture of DDL tag definitions allowed).
Returns
datamodel::DataDefinition

◆ createEnumType()

template<typename DOM_NODE_TYPE>
static datamodel::EnumType ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createEnumType ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Enum Type object.

Parameters
dom_nodethe node to create the EnumType from (should be "enum" tag name).
Returns
datamodel::EnumType

◆ createEnumTypeElement()

template<typename DOM_NODE_TYPE>
static datamodel::EnumType::Element ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createEnumTypeElement ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Enum Type Element object.

Parameters
dom_nodethe node to create the EnumType::Element from (should be "element" tag name).
Returns
datamodel::EnumType::Element

◆ createHeader()

template<typename DOM_NODE_TYPE>
static datamodel::Header ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createHeader ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Header object.

Parameters
dom_nodethe node to create the header from (should be "header" tag name).
Returns
datamodel::Header

◆ createHeaderExtDeclaration()

template<typename DOM_NODE_TYPE>
static datamodel::Header::ExtDeclaration ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createHeaderExtDeclaration ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Header Ext Declaration object.

Parameters
dom_nodethe node to create the ExDeclaration from (should be "ext_declaration" tag name).
Returns
datamodel::Header::ExtDeclaration

◆ createRefUnit()

template<typename DOM_NODE_TYPE>
static datamodel::Unit::RefUnit ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createRefUnit ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Ref Unit object.

Parameters
dom_nodethe node to create the RefUnit from (should be "refUnit" tag name).
Returns
datamodel::Unit::RefUnit

◆ createStream()

template<typename DOM_NODE_TYPE>
static datamodel::Stream ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createStream ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Stream object.

Parameters
dom_nodenode to create the Stream from (should be "stream" tag name).
Returns
datamodel::Stream

◆ createStreamMetaType()

template<typename DOM_NODE_TYPE>
static datamodel::StreamMetaType ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createStreamMetaType ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Stream Meta Type object.

Parameters
dom_nodenode to create the StreamMetaType from (should be "streammetatype" tag name).
Returns
datamodel::StreamMetaType

◆ createStreamMetaTypeProperty()

template<typename DOM_NODE_TYPE>
static datamodel::StreamMetaType::Property ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createStreamMetaTypeProperty ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Stream Meta Type Property object.

Parameters
dom_nodenode to create the StreamMetaType::Property from (should be "property" tag name).
Returns
datamodel::StreamMetaType::Property

◆ createStreamStruct()

template<typename DOM_NODE_TYPE>
static datamodel::Stream::Struct ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createStreamStruct ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Stream Struct object.

Parameters
dom_nodenode to create the Stream::Struct from (should be "struct" tag name).
Returns
datamodel::Stream::Struct

◆ createStructType()

template<typename DOM_NODE_TYPE>
static datamodel::StructType ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createStructType ( const DOM_NODE_TYPE & dom_node,
const Version & file_ddl_version,
bool strict )
inlinestatic

Create a Struct Type object.

Parameters
dom_nodenode to create the StructType from (should be "struct" tag name).
file_ddl_versionthe set filename language verion (from header)
strictset to true to load the datamodel exactly like defined (no mixture of DDL tag definitions allowed).
Returns
datamodel::StructType

◆ createStructTypeElement()

template<typename DOM_NODE_TYPE>
static datamodel::StructType::Element ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createStructTypeElement ( const DOM_NODE_TYPE & dom_node,
const Version & file_ddl_version,
bool strict )
inlinestatic

Create a Struct Type Element object.

Parameters
dom_nodethe node to create the StructType::Element from (should be "element" tag name).
file_ddl_versionthe set filename language verion (from header)
strictset to true to load the datamodel exactly like defined (no mixture of DDL tag definitions allowed).
Returns
datamodel::StructType::Element

◆ createUnit()

template<typename DOM_NODE_TYPE>
static datamodel::Unit ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createUnit ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Unit object.

Parameters
dom_nodethe node to create the Unit from (should be "unit" tag name).
Returns
datamodel::Unit

◆ createUnitPrefix()

template<typename DOM_NODE_TYPE>
static datamodel::UnitPrefix ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::createUnitPrefix ( const DOM_NODE_TYPE & dom_node)
inlinestatic

Create a Unit Prefix object.

Parameters
dom_nodethe node to create the UnitPrefix from (should be "prefixes" tag name).
Returns
datamodel::UnitPrefix

◆ getAttribute()

template<typename DOM_NODE_TYPE>
template<typename T>
static utility::Optional< T > ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::getAttribute ( const DOM_NODE_TYPE & dom_node,
const std::string & attribute_name,
AsOptional  )
inlinestatic

Get the Attribute from the dom_node. Return a valid Optional<T> if set, otherwise return default_value or throw.

Template Parameters
Tthe value type of the returned Optional
Parameters
dom_nodethe dom node (see also DDFromXMLFactory)
attribute_namethe attribute name
default_valuethe default value if the attribute was not set. (this will be only used if is_mandatory is false)
Returns
utility::Optional<T>

◆ getData()

template<typename DOM_NODE_TYPE>
template<typename T>
static utility::Optional< T > ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::getData ( const DOM_NODE_TYPE & dom_node,
const std::string & sub_node_name,
AsOptional  )
inlinestatic

Get the data content of a subnode of dom_node. Return a valid Optional<T> if set, otherwise return default_value or throw.

Template Parameters
Tthe value type of the returned Optional
Parameters
dom_nodethe dom node (see also DDFromXMLFactory)
sub_node_namethe sub node name
default_valuethe default value if the attribute was not set. (this will be only used if is_mandatory is false)
is_mandatoryif set to true this function will throw if the data area is not set in sub node
Returns
utility::Optional<T>
Exceptions
dd::ErrorThe function will throw only if is_mandatory is set to true.

◆ isInteger()

template<typename DOM_NODE_TYPE>
static bool ddl::dd::DDFromXMLFactory< DOM_NODE_TYPE >::isInteger ( const std::string & string_to_check)
inlinestaticnoexcept

Checks if the given string is an integer value.

Parameters
[in]string_to_checkthe string to check
Returns
true/false

The documentation for this struct was generated from the following file: