MUSX Document Model
|
Factory class for creating Texts
objects from XML.
More...
#include <PoolFactory.h>
Static Public Member Functions | |
static auto | extractFromXml (const XmlElementPtr &element, const dom::DocumentPtr &document, ElementLinker &elementLinker, const TextsPoolPtr &pool) |
Extracts a TextsBase object from an XML element. | |
static std::shared_ptr< PoolType > | create (const XmlElementPtr &element, const dom::DocumentPtr &document, ElementLinker &elementLinker) |
Creates a OthersPool object from an XML element. | |
![]() | |
static std::shared_ptr< dom::TextsPool > | create (const XmlElementPtr &element, const dom::DocumentPtr &document, ElementLinker &elementLinker) |
Creates a OthersPool object from an XML element. | |
Additional Inherited Members | |
![]() | |
template<typename DataType , typename ParserFunc > | |
static void | getFieldFromXml (const XmlElementPtr &element, const std::string &nodeName, DataType &dataField, ParserFunc parserFunc, bool expected=false) |
Helper function to check if a child exists and populate it if so. | |
static XmlElementPtr | getFirstChildElement (const XmlElementPtr &element, const std::string &childElementName) |
Helper function to throw when child element does not exist. | |
static std::optional< std::string > | getOptionalChildText (const XmlElementPtr &element, const std::string &childElementName) |
Helper function to return std::nullopt when child element does not exist. | |
template<typename T > | |
static std::optional< T > | getOptionalChildTextAs (const XmlElementPtr &element, const std::string &childElementName, T defaultValue={}) |
Helper function to return std::nullopt when child element does not exist. | |
Factory class for creating Texts
objects from XML.
This class specializes PoolFactory
to handle the creation of Texts
objects, representing various attributes stored in an TextsPool
. It includes an XML parsing mechanism to extract and create these objects, which are used in the document model.
|
inlinestatic |
Creates a OthersPool
object from an XML element.
This function creates an object pool by parsing the XML element representing the <others>
node. It iterates over each child element of the XML element, extracts relevant information using DerivedType::extractFromXml
, and adds the created objects to the pool.
element | The XML element representing the <others> node. |
document | The document object providing context for the XML parsing. |
elementLinker | A class for storing deferred linkage commands. |
ObjectPoolType
object.
|
inlinestatic |
Extracts a TextsBase
object from an XML element.
Extracts a TextsBase
derived object from the given XML element using the specified attributes such as number
or type
. Throws an exception if a required attribute is missing.
element | The XML element from which to extract the object. |
document | The document object providing context for the XML parsing. |
elementLinker | The ElementLinker instance that is used to resolve all internal connections after the document is created. |
pool | The pool we are constructiong. (It hasn't been assigned to document yet.) |
std::invalid_argument | if required attributes are missing. |