LibreOffice Module codemaker (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
codemaker::ExceptionTree Class Reference

Represents the hierarchy formed by a set of UNO exception types. More...

#include <exceptiontree.hxx>

Collaboration diagram for codemaker::ExceptionTree:
[legend]

Public Member Functions

 ExceptionTree ()
 
void add (rtl::OString const &name, rtl::Reference< TypeManager > const &manager)
 Builds the exception hierarchy, by adding one exception type at a time. More...
 
ExceptionTreeNode const & getRoot () const
 Gives access to the resultant exception hierarchy. More...
 

Private Member Functions

 ExceptionTree (ExceptionTree const &)=delete
 
ExceptionTreeoperator= (const ExceptionTree &)=delete
 

Private Attributes

ExceptionTreeNode m_root
 

Detailed Description

Represents the hierarchy formed by a set of UNO exception types.

The hierarchy is rooted at com.sun.star.uno.Exception. For each exception E from the given set S, the hierarchy from com.sun.star.uno.Exception to the first supertype E' of E which is itself a member of S is represented (i.e., subtypes that are hidden by supertypes are pruned from the hierarchy). The exception com.sun.star.uno.RuntimeException and its subtypes are pruned completely from the hierarchy. Each node of the hierarchy is represented by an instance of ExceptionTreeNode, where name gives the name of the UNO exception type, present is true iff the given exception type is a member of the set S, and children contains all the relevant direct subtypes of the given exception type, in no particular order (for nodes other than the root node it holds that children is non-empty iff present is false).

Definition at line 79 of file exceptiontree.hxx.

Constructor & Destructor Documentation

◆ ExceptionTree() [1/2]

codemaker::ExceptionTree::ExceptionTree ( )
inline

Definition at line 81 of file exceptiontree.hxx.

◆ ExceptionTree() [2/2]

codemaker::ExceptionTree::ExceptionTree ( ExceptionTree const &  )
privatedelete

Member Function Documentation

◆ add()

void ExceptionTree::add ( rtl::OString const &  name,
rtl::Reference< TypeManager > const &  manager 
)

Builds the exception hierarchy, by adding one exception type at a time.

This function can be called more than once for the same exception name.

Parameters
namethe name of a UNO exception type; it is an error if the given name does not represent a UNO exception type
managera type manager, used to resolve type names; it is an error if different calls to this member function use different, incompatible type managers

Definition at line 46 of file exceptiontree.cxx.

References codemaker::ExceptionTreeNode::add(), b2u(), codemaker::ExceptionTreeNode::children, codemaker::UnoType::Exception, i, m_root, manager, n, name, codemaker::ExceptionTreeNode::present, codemaker::ExceptionTreeNode::setPresent(), and u2b().

◆ getRoot()

ExceptionTreeNode const & codemaker::ExceptionTree::getRoot ( ) const
inline

Gives access to the resultant exception hierarchy.

Returns
a reference to the root of the exception hierarchy, as formed by all previous calls to add; it is an error if any calls to add follow the first call to getRoot

Definition at line 106 of file exceptiontree.hxx.

References m_root.

◆ operator=()

ExceptionTree & codemaker::ExceptionTree::operator= ( const ExceptionTree )
privatedelete

Member Data Documentation

◆ m_root

ExceptionTreeNode codemaker::ExceptionTree::m_root
private

Definition at line 112 of file exceptiontree.hxx.

Referenced by add(), and getRoot().


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