DD4hep  1.38.0
Detector Description Toolkit for High Energy Physics
Public Types | Public Member Functions | Public Attributes | List of all members
dd4hep::xml::Handle_t Class Reference

Class to easily access the properties of single XmlElements. More...

#include <XMLElements.h>

Inheritance diagram for dd4hep::xml::Handle_t:
dd4hep::xml::Collection_t

Public Types

typedef XmlElement * Elt_t
 

Public Member Functions

 Handle_t (Elt_t e=0)
 Initializing constructor. More...
 
Elt_t operator-> () const
 Direct access to the XmlElement using the operator-> More...
 
 operator Elt_t () const
 Direct access to the XmlElement by dereferencing. More...
 
Elt_t ptr () const
 Direct access to the XmlElement by function. More...
 
Handle_t clone (XmlDocument *new_doc) const
 Clone the DOMelement - with the option of a deep copy. More...
 
const XmlChar * rawTag () const
 Unicode text access to the element's tag. Tis must be wrong .... More...
 
const XmlChar * rawText () const
 Unicode text access to the element's text. More...
 
const XmlChar * rawValue () const
 Unicode text access to the element's value. More...
 
std::string tag () const
 Text access to the element's tag. More...
 
std::string text () const
 Text access to the element's text. More...
 
std::string value () const
 Text access to the element's value. More...
 
void setValue (const XmlChar *text) const
 Set the element's value. More...
 
void setValue (const std::string &text) const
 Set the element's value. More...
 
void setText (const XmlChar *text) const
 Set the element's text. More...
 
void setText (const std::string &text) const
 Set the element's text. More...
 
const XmlChar * attr_name (const Attribute attr) const
 Access attribute name (throws exception if not present) More...
 
const XmlChar * attr_value (const Attribute attr) const
 Access attribute value by the attribute (throws exception if not present) More...
 
const XmlChar * attr_value (const XmlChar *attr) const
 Access attribute value by the attribute's unicode name (throws exception if not present) More...
 
const XmlChar * attr_value_nothrow (const XmlChar *attr) const
 Access attribute value by the attribute's unicode name (no exception thrown if not present) More...
 
Attribute attr_ptr (const XmlChar *attr) const
 Access attribute pointer by the attribute's unicode name (throws exception if not present) More...
 
Attribute attr_nothrow (const XmlChar *tag) const
 Access attribute pointer by the attribute's unicode name (no exception thrown if not present) More...
 
bool hasAttr (const XmlChar *t) const
 Check for the existence of a named attribute. More...
 
std::vector< Attribute > attributes () const
 Retrieve a collection of all attributes of this DOM element. More...
 
template<class T >
T attr (const Attribute a) const
 Access typed attribute value by the XmlAttr. More...
 
void removeAttrs () const
 Remove all attributes of this element. More...
 
void setAttrs (Handle_t e) const
 Set attributes as in argument handle. More...
 
template<class T >
T attr (const XmlChar *name) const
 Access typed attribute value by its unicode name. More...
 
template<class T >
T attr (const XmlChar *name, T default_value) const
 Access typed attribute value by its unicode name. If not existing returns default value. More...
 
Attribute setAttr (const XmlChar *t, const XmlChar *v) const
 Generic attribute setter with unicode value. More...
 
Attribute setAttr (const XmlChar *t, const Attribute v) const
 Generic attribute setter with XmlAttr value. More...
 
Attribute setAttr (const XmlChar *t, int val) const
 Generic attribute setter with integer value. More...
 
Attribute setAttr (const XmlChar *t, bool val) const
 Generic attribute setter with boolean value. More...
 
Attribute setAttr (const XmlChar *t, float val) const
 Generic attribute setter with floating point value. More...
 
Attribute setAttr (const XmlChar *t, double val) const
 Generic attribute setter with double precision floating point value. More...
 
Attribute setAttr (const XmlChar *t, const std::string &val) const
 Generic attribute setter with string value. More...
 
bool hasAttr (const char *t) const
 Check for the existence of a named attribute. More...
 
template<class T >
T attr (const char *name) const
 Access typed attribute value by its name. More...
 
template<class T >
T attr (const char *name, const T &default_value) const
 Access typed attribute value by its name. More...
 
Attribute setAttr (const XmlChar *t, const char *v) const
 Generic attribute setter with text value. More...
 
Handle_t setRef (const XmlChar *tag, const XmlChar *ref)
 Add reference child as a new child node. The obj must have the "name" attribute! More...
 
Handle_t setRef (const XmlChar *tag, const std::string &ref)
 Add reference child as a new child node. The obj must have the "name" attribute! More...
 
bool hasChild (const XmlChar *tag) const
 Check the existence of a child with a given tag name. More...
 
Handle_t child (const XmlChar *tag, bool throw_exception=true) const
 Access a single child by its tag name (unicode) More...
 
NodeList children (const XmlChar *tag) const
 Access a group of children identified by the same tag name. More...
 
size_t numChildren (const XmlChar *tag, bool throw_exception) const
 Access the number of children of this DOM element with a given tag name. More...
 
Handle_t remove (Handle_t e) const
 Remove a single child node identified by its handle from the tree of the element. More...
 
void removeChildren (const XmlChar *tag) const
 Remove children with a given tag name from the DOM node. More...
 
void append (Handle_t e) const
 Append a DOM element to the current node. More...
 
Handle_t parent () const
 Access the element's parent element. More...
 
unsigned int checksum (unsigned int param, unsigned int(fcn)(unsigned int param, const XmlChar *, size_t)=0) const
 Checksum (sub-)tree of a xml document/tree. Default will pick up the adler32 checksum. More...
 
template<>
INLINE Attribute attr (const XmlChar *tag_value) const
 
template<>
INLINE cpXmlChar attr (const XmlChar *tag_value) const
 
template<>
INLINE bool attr (const XmlChar *tag_value) const
 
template<>
INLINE int attr (const XmlChar *tag_value) const
 
template<>
INLINE unsigned int attr (const XmlChar *tag_value) const
 
template<>
INLINE long attr (const XmlChar *tag_value) const
 
template<>
INLINE unsigned long attr (const XmlChar *tag_value) const
 
template<>
INLINE float attr (const XmlChar *tag_value) const
 
template<>
INLINE double attr (const XmlChar *tag_value) const
 
template<>
INLINE Attribute attr (const XmlChar *tag_value, Attribute default_value) const
 
template<>
INLINE bool attr (const XmlChar *tag_value, bool default_value) const
 
template<>
INLINE int attr (const XmlChar *tag_value, int default_value) const
 
template<>
INLINE unsigned int attr (const XmlChar *tag_value, unsigned int default_value) const
 
template<>
INLINE long attr (const XmlChar *tag_value, long default_value) const
 
template<>
INLINE unsigned long attr (const XmlChar *tag_value, unsigned long default_value) const
 
template<>
INLINE float attr (const XmlChar *tag_value, float default_value) const
 
template<>
INLINE double attr (const XmlChar *tag_value, double default_value) const
 

Public Attributes

Elt_t m_node
 The pointer to the XmlElement. More...
 

Detailed Description

Class to easily access the properties of single XmlElements.

Note: The assignmant operator as well as the copy constructor do not have to be implemented, they are aut-generated by the compiler!

Author
M.Frank
Version
1.0

Definition at line 380 of file XMLElements.h.

Member Typedef Documentation

◆ Elt_t

typedef XmlElement* dd4hep::xml::Handle_t::Elt_t

Definition at line 383 of file XMLElements.h.

Constructor & Destructor Documentation

◆ Handle_t()

dd4hep::xml::Handle_t::Handle_t ( Elt_t  e = 0)
inline

Initializing constructor.

Definition at line 389 of file XMLElements.h.

Member Function Documentation

◆ append()

void Handle_t::append ( Handle_t  e) const

Append a DOM element to the current node.

Definition at line 730 of file XMLElements.cpp.

◆ attr() [1/22]

template<class T >
T dd4hep::xml::Handle_t::attr ( const Attribute  a) const
inline

Access typed attribute value by the XmlAttr.

Definition at line 454 of file XMLElements.h.

◆ attr() [2/22]

template<class T >
T dd4hep::xml::Handle_t::attr ( const char *  name) const
inline

Access typed attribute value by its name.

Definition at line 486 of file XMLElements.h.

◆ attr() [3/22]

template<class T >
T dd4hep::xml::Handle_t::attr ( const char *  name,
const T &  default_value 
) const
inline

Access typed attribute value by its name.

Definition at line 490 of file XMLElements.h.

◆ attr() [4/22]

template<class T >
T dd4hep::xml::Handle_t::attr ( const XmlChar *  name) const

Access typed attribute value by its unicode name.

◆ attr() [5/22]

template<class T >
T dd4hep::xml::Handle_t::attr ( const XmlChar *  name,
T  default_value 
) const

Access typed attribute value by its unicode name. If not existing returns default value.

◆ attr() [6/22]

template<>
INLINE Attribute dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 528 of file XMLElements.h.

◆ attr() [7/22]

template<>
INLINE cpXmlChar dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 532 of file XMLElements.h.

◆ attr() [8/22]

template<>
INLINE bool dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 536 of file XMLElements.h.

◆ attr() [9/22]

template<>
INLINE int dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 540 of file XMLElements.h.

◆ attr() [10/22]

template<>
INLINE unsigned int dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 544 of file XMLElements.h.

◆ attr() [11/22]

template<>
INLINE long dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 548 of file XMLElements.h.

◆ attr() [12/22]

template<>
INLINE unsigned long dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 552 of file XMLElements.h.

◆ attr() [13/22]

template<>
INLINE float dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 556 of file XMLElements.h.

◆ attr() [14/22]

template<>
INLINE double dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value) const

Definition at line 560 of file XMLElements.h.

◆ attr() [15/22]

template<>
INLINE Attribute dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
Attribute  default_value 
) const

Definition at line 568 of file XMLElements.h.

◆ attr() [16/22]

template<>
INLINE bool dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
bool  default_value 
) const

Definition at line 573 of file XMLElements.h.

◆ attr() [17/22]

template<>
INLINE double dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
double  default_value 
) const

Definition at line 603 of file XMLElements.h.

◆ attr() [18/22]

template<>
INLINE float dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
float  default_value 
) const

Definition at line 598 of file XMLElements.h.

◆ attr() [19/22]

template<>
INLINE int dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
int  default_value 
) const

Definition at line 578 of file XMLElements.h.

◆ attr() [20/22]

template<>
INLINE long dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
long  default_value 
) const

Definition at line 588 of file XMLElements.h.

◆ attr() [21/22]

template<>
INLINE unsigned int dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
unsigned int  default_value 
) const

Definition at line 583 of file XMLElements.h.

◆ attr() [22/22]

template<>
INLINE unsigned long dd4hep::xml::Handle_t::attr ( const XmlChar *  tag_value,
unsigned long  default_value 
) const

Definition at line 593 of file XMLElements.h.

◆ attr_name()

const XmlChar * Handle_t::attr_name ( const Attribute  attr) const

Access attribute name (throws exception if not present)

Definition at line 854 of file XMLElements.cpp.

◆ attr_nothrow()

Attribute Handle_t::attr_nothrow ( const XmlChar *  tag) const

Access attribute pointer by the attribute's unicode name (no exception thrown if not present)

Definition at line 671 of file XMLElements.cpp.

◆ attr_ptr()

Attribute Handle_t::attr_ptr ( const XmlChar *  attr) const

Access attribute pointer by the attribute's unicode name (throws exception if not present)

Definition at line 841 of file XMLElements.cpp.

◆ attr_value() [1/2]

const XmlChar * Handle_t::attr_value ( const Attribute  attr) const

Access attribute value by the attribute (throws exception if not present)

Definition at line 867 of file XMLElements.cpp.

◆ attr_value() [2/2]

const XmlChar * Handle_t::attr_value ( const XmlChar *  attr) const

Access attribute value by the attribute's unicode name (throws exception if not present)

Definition at line 862 of file XMLElements.cpp.

◆ attr_value_nothrow()

const XmlChar * Handle_t::attr_value_nothrow ( const XmlChar *  attr) const

Access attribute value by the attribute's unicode name (no exception thrown if not present)

Definition at line 872 of file XMLElements.cpp.

◆ attributes()

std::vector< Attribute > Handle_t::attributes ( ) const

Retrieve a collection of all attributes of this DOM element.

Definition at line 681 of file XMLElements.cpp.

◆ checksum()

unsigned int Handle_t::checksum ( unsigned int  param,
unsigned   intfcn)(unsigned int param, const XmlChar *, size_t = 0 
) const

Checksum (sub-)tree of a xml document/tree. Default will pick up the adler32 checksum.

Definition at line 993 of file XMLElements.cpp.

◆ child()

Handle_t Handle_t::child ( const XmlChar *  tag,
bool  throw_exception = true 
) const

Access a single child by its tag name (unicode)

Remove a single child node identified by its handle from the tree of the element.

Definition at line 713 of file XMLElements.cpp.

◆ children()

NodeList Handle_t::children ( const XmlChar *  tag) const

Access a group of children identified by the same tag name.

Definition at line 725 of file XMLElements.cpp.

◆ clone()

Handle_t Handle_t::clone ( XmlDocument *  new_doc) const

Clone the DOMelement - with the option of a deep copy.

Definition at line 649 of file XMLElements.cpp.

◆ hasAttr() [1/2]

bool dd4hep::xml::Handle_t::hasAttr ( const char *  t) const
inline

Check for the existence of a named attribute.

Definition at line 482 of file XMLElements.h.

◆ hasAttr() [2/2]

bool Handle_t::hasAttr ( const XmlChar *  t) const

Check for the existence of a named attribute.

Definition at line 676 of file XMLElements.cpp.

◆ hasChild()

bool Handle_t::hasChild ( const XmlChar *  tag) const

Check the existence of a child with a given tag name.

Definition at line 767 of file XMLElements.cpp.

◆ numChildren()

size_t Handle_t::numChildren ( const XmlChar *  tag,
bool  throw_exception 
) const

Access the number of children of this DOM element with a given tag name.

Definition at line 698 of file XMLElements.cpp.

◆ operator Elt_t()

dd4hep::xml::Handle_t::operator Elt_t ( ) const
inline

Direct access to the XmlElement by dereferencing.

Definition at line 397 of file XMLElements.h.

◆ operator->()

Elt_t dd4hep::xml::Handle_t::operator-> ( ) const
inline

Direct access to the XmlElement using the operator->

Definition at line 393 of file XMLElements.h.

◆ parent()

Handle_t Handle_t::parent ( ) const

Access the element's parent element.

Definition at line 666 of file XMLElements.cpp.

◆ ptr()

Elt_t dd4hep::xml::Handle_t::ptr ( ) const
inline

Direct access to the XmlElement by function.

Definition at line 401 of file XMLElements.h.

◆ rawTag()

const XmlChar * Handle_t::rawTag ( ) const

Unicode text access to the element's tag. Tis must be wrong ....

Definition at line 634 of file XMLElements.cpp.

◆ rawText()

const XmlChar * Handle_t::rawText ( ) const

Unicode text access to the element's text.

Definition at line 639 of file XMLElements.cpp.

◆ rawValue()

const XmlChar * Handle_t::rawValue ( ) const

Unicode text access to the element's value.

Definition at line 644 of file XMLElements.cpp.

◆ remove()

Handle_t Handle_t::remove ( Handle_t  e) const

Remove a single child node identified by its handle from the tree of the element.

Definition at line 735 of file XMLElements.cpp.

◆ removeAttrs()

void Handle_t::removeAttrs ( ) const

Remove all attributes of this element.

Definition at line 804 of file XMLElements.cpp.

◆ removeChildren()

void Handle_t::removeChildren ( const XmlChar *  tag) const

Remove children with a given tag name from the DOM node.

Definition at line 755 of file XMLElements.cpp.

◆ setAttr() [1/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
bool  val 
) const

Generic attribute setter with boolean value.

Definition at line 885 of file XMLElements.cpp.

◆ setAttr() [2/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
const Attribute  v 
) const

Generic attribute setter with XmlAttr value.

Definition at line 917 of file XMLElements.cpp.

◆ setAttr() [3/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
const char *  v 
) const

Generic attribute setter with text value.

Definition at line 911 of file XMLElements.cpp.

◆ setAttr() [4/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
const std::string &  val 
) const

Generic attribute setter with string value.

Definition at line 906 of file XMLElements.cpp.

◆ setAttr() [5/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
const XmlChar *  v 
) const

Generic attribute setter with unicode value.

Definition at line 922 of file XMLElements.cpp.

◆ setAttr() [6/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
double  val 
) const

Generic attribute setter with double precision floating point value.

Definition at line 899 of file XMLElements.cpp.

◆ setAttr() [7/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
float  val 
) const

Generic attribute setter with floating point value.

Definition at line 892 of file XMLElements.cpp.

◆ setAttr() [8/8]

Attribute Handle_t::setAttr ( const XmlChar *  t,
int  val 
) const

Generic attribute setter with integer value.

Definition at line 878 of file XMLElements.cpp.

◆ setAttrs()

void Handle_t::setAttrs ( Handle_t  e) const

Set attributes as in argument handle.

Definition at line 826 of file XMLElements.cpp.

◆ setRef() [1/2]

Handle_t Handle_t::setRef ( const XmlChar *  tag,
const std::string &  ref 
)

Add reference child as a new child node. The obj must have the "name" attribute!

Definition at line 949 of file XMLElements.cpp.

◆ setRef() [2/2]

Handle_t Handle_t::setRef ( const XmlChar *  tag,
const XmlChar *  ref 
)

Add reference child as a new child node. The obj must have the "name" attribute!

Definition at line 940 of file XMLElements.cpp.

◆ setText() [1/2]

void Handle_t::setText ( const std::string &  text) const

Set the element's text.

Definition at line 795 of file XMLElements.cpp.

◆ setText() [2/2]

void Handle_t::setText ( const XmlChar *  text) const

Set the element's text.

Definition at line 786 of file XMLElements.cpp.

◆ setValue() [1/2]

void Handle_t::setValue ( const std::string &  text) const

Set the element's value.

Definition at line 777 of file XMLElements.cpp.

◆ setValue() [2/2]

void Handle_t::setValue ( const XmlChar *  text) const

Set the element's value.

Definition at line 772 of file XMLElements.cpp.

◆ tag()

std::string dd4hep::xml::Handle_t::tag ( ) const
inline

Text access to the element's tag.

Definition at line 414 of file XMLElements.h.

◆ text()

std::string dd4hep::xml::Handle_t::text ( ) const
inline

Text access to the element's text.

Definition at line 418 of file XMLElements.h.

◆ value()

std::string dd4hep::xml::Handle_t::value ( ) const
inline

Text access to the element's value.

Definition at line 422 of file XMLElements.h.

Member Data Documentation

◆ m_node

Elt_t dd4hep::xml::Handle_t::m_node
mutable

The pointer to the XmlElement.

Definition at line 386 of file XMLElements.h.


The documentation for this class was generated from the following files: