\section{UserInfo Class Reference}
\label{classUserInfo}\index{UserInfo@{UserInfo}}
\doxyref{UserInfo}{p.}{classUserInfo} is an abstract is for internal purposes only. Use CompoundUserInfo$<$T$>$ or ValuedUserInfo$<$T$>$ instead. The raison d'etre of this class is to allow pointers to its templated descendants.  


{\tt \#include $<$userinfo.h$>$}

Inheritance diagram for UserInfo:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{classUserInfo__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for UserInfo:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=137pt]{classUserInfo__coll__graph}
\end{center}
\end{figure}
\subsection*{Static Public Member Functions}
\begin{CompactItemize}
\item 
{\footnotesize template$<$class T$>$ }\\static T $\ast$ {\bf Assembly} (DOMElement \&element, const string tagName)
\item 
{\footnotesize template$<$class T$>$ }\\static bool {\bf Disassembly} (T \&instance, DOMElement \&element, const string tagName, const string help)
\item 
{\footnotesize template$<$class T$>$ }\\static bool {\bf Disassembly} (T \&instance, DOMElement \&element, const string tagName)
\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
{\bf UserInfo} (const string \&userFriendlyTypeName, const string \&typeNameByRTTI)\label{classUserInfo_0bccb19c6b819cf9f763e985c573ae8f}

\begin{CompactList}\small\item\em default constructor \item\end{CompactList}\item 
string {\bf XMLCh2str} (const XMLCh $\ast$const XMLCh\_\-str)\label{classBindingFrame_2244bd5181c3d1e70f3a6be2b72e9424}

\begin{CompactList}\small\item\em function which transcodes Xerces' XMLCh-based strings into C++ strings \item\end{CompactList}\item 
string \textbf{removeSpaces} (const string \&{\bf str})\label{classBindingFrame_820e4df85c0dc545e3079e407fcdbbaa}

\item 
virtual void {\bf AssemblyComponentsFromXML} (DOMElement \&element)=0\label{classBindingFrame_c6d068c261d4fc3a0a4d1305ade1483d}

\begin{CompactList}\small\item\em This method parse DOMElement, finds proper DOMNode and fills binded data accordingly. \item\end{CompactList}\item 
virtual void {\bf ReleaseMemory} ()\label{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}

\begin{CompactList}\small\item\em A method for releasing memory allocated within the 'AssemblyComponentsFromXML()' method. \item\end{CompactList}\item 
virtual bool {\bf DisassemblyComponentsToXML} (DOMElement \&element)=0
\end{CompactItemize}
\subsection*{Classes}
\begin{CompactItemize}
\item 
class \textbf{StringToUIMap}
\end{CompactItemize}


\subsection{Detailed Description}
\doxyref{UserInfo}{p.}{classUserInfo} is an abstract is for internal purposes only. Use CompoundUserInfo$<$T$>$ or ValuedUserInfo$<$T$>$ instead. The raison d'etre of this class is to allow pointers to its templated descendants. 

Also, the main functions of the whole \doxyref{UserInfo}{p.}{classUserInfo} library are included within this class, see static methods 'Assembly' and 'Disassembly'. 

\subsection{Member Function Documentation}
\index{UserInfo@{UserInfo}!Assembly@{Assembly}}
\index{Assembly@{Assembly}!UserInfo@{UserInfo}}
\subsubsection[Assembly]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ static T$\ast$ UserInfo::Assembly (DOMElement \& {\em element}, \/  const string {\em tagName})\hspace{0.3cm}{\tt  [inline, static]}}\label{classUserInfo_0f090c6525a3e8fb11634a553f467ede}


This methods tries to assembly a new instance of type T (or some of its descendant types) according to a data stored in a DOMNode named tagName within a child nodes of the passed element. If an error occurs, it returns a NULL pointer. 

References Attribute::Get(), and Attribute::type.\index{UserInfo@{UserInfo}!Disassembly@{Disassembly}}
\index{Disassembly@{Disassembly}!UserInfo@{UserInfo}}
\subsubsection[Disassembly]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ static bool UserInfo::Disassembly (T \& {\em instance}, \/  DOMElement \& {\em element}, \/  const string {\em tagName}, \/  const string {\em help})\hspace{0.3cm}{\tt  [inline, static]}}\label{classUserInfo_1d402661b82feccb5265a70f65c242e1}


This methods tries to disassembly an instance of type T (or some of its descendant types) and build DOM tree accordingly. Then, it creates a new DOMNode named according tagName and connecti it to the passed DOMElement as a new child node (with a help attribute filled). 

References Attribute::help, Attribute::Set(), and Attribute::type.

Referenced by Disassembly(), and CompoundUserInfo$<$ T $>$::BindedElement$<$ U $>$::DisassemblyComponentsToXML().\index{UserInfo@{UserInfo}!Disassembly@{Disassembly}}
\index{Disassembly@{Disassembly}!UserInfo@{UserInfo}}
\subsubsection[Disassembly]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ static bool UserInfo::Disassembly (T \& {\em instance}, \/  DOMElement \& {\em element}, \/  const string {\em tagName})\hspace{0.3cm}{\tt  [inline, static]}}\label{classUserInfo_917b2257abc31b94c89ef3cd270e4a42}


This methods tries to disassembly an instance of type T (or some of its descendant types) and build DOM tree accordingly. Then, it creates a new DOMNode named according tagName and connecti it to the passed DOMElement as a new child node. 

References Disassembly().\index{UserInfo@{UserInfo}!DisassemblyComponentsToXML@{DisassemblyComponentsToXML}}
\index{DisassemblyComponentsToXML@{DisassemblyComponentsToXML}!UserInfo@{UserInfo}}
\subsubsection[DisassemblyComponentsToXML]{\setlength{\rightskip}{0pt plus 5cm}virtual bool BindingFrame::DisassemblyComponentsToXML (DOMElement \& {\em element})\hspace{0.3cm}{\tt  [pure virtual, inherited]}}\label{classBindingFrame_0c207ed6e5a4c975ed5bc9a758a063ca}


This method reads binded data, fill them into a new DOMNode, which then appends to the passed DOMElement 

Implemented in {\bf CompoundUserInfo$<$ T $>$::BindedElement$<$ U $>$} \doxyref{}{p.}{classCompoundUserInfo_1_1BindedElement_6ef55cedb98f5d2dbcf92730f2fed939}.

The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
work/git/mixpp/bdm/userinfo.h\end{CompactItemize}
