\hypertarget{classValuedUserInfo}{
\section{ValuedUserInfo$<$ T $>$ Class Template Reference}
\label{classValuedUserInfo}\index{ValuedUserInfo@{ValuedUserInfo}}
}
The main userinfo template class. It should be derived whenever you need a new userinfo of a class which does not contain any subelements. It is the case of basic classes(or types) like int, string, double, etc.  


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

Inheritance diagram for ValuedUserInfo$<$ T $>$:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{classValuedUserInfo__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for ValuedUserInfo$<$ T $>$:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=151pt]{classValuedUserInfo__coll__graph}
\end{center}
\end{figure}
\subsection*{Static Public Member Functions}
\begin{CompactItemize}
\item 
{\footnotesize template$<$class T$>$ }\\static T $\ast$ \hyperlink{classUserInfo_0f090c6525a3e8fb11634a553f467ede}{Assembly} (DOMElement \&element, const string tagName)
\item 
{\footnotesize template$<$class T$>$ }\\static bool \hyperlink{classUserInfo_1d402661b82feccb5265a70f65c242e1}{Disassembly} (T \&\hyperlink{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{instance}, DOMElement \&element, const string tagName, const string help)
\item 
{\footnotesize template$<$class T$>$ }\\static bool \hyperlink{classUserInfo_917b2257abc31b94c89ef3cd270e4a42}{Disassembly} (T \&\hyperlink{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{instance}, DOMElement \&element, const string tagName)
\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
\hypertarget{classValuedUserInfo_86897fcfe4666183bcecf16a23715cdb}{
\textbf{ValuedUserInfo} (string userFriendlyTypeName)}
\label{classValuedUserInfo_86897fcfe4666183bcecf16a23715cdb}

\item 
\hypertarget{classBindingFrame_2244bd5181c3d1e70f3a6be2b72e9424}{
string \hyperlink{classBindingFrame_2244bd5181c3d1e70f3a6be2b72e9424}{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 
\hypertarget{classBindingFrame_820e4df85c0dc545e3079e407fcdbbaa}{
string \textbf{removeSpaces} (const string \&\hyperlink{classstr}{str})}
\label{classBindingFrame_820e4df85c0dc545e3079e407fcdbbaa}

\item 
\hypertarget{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}{
virtual void \hyperlink{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}{ReleaseMemory} ()}
\label{classBindingFrame_8d4dc5902ee71a473983d6a8fa3c8b7a}

\begin{CompactList}\small\item\em A method for releasing memory allocated within the 'AssemblyComponentsFromXML()' method. \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
\hypertarget{classValuedUserInfo_10a0acb3696018386451881ebcc797ea}{
string \hyperlink{classValuedUserInfo_10a0acb3696018386451881ebcc797ea}{value}}
\label{classValuedUserInfo_10a0acb3696018386451881ebcc797ea}

\begin{CompactList}\small\item\em string variable which is automatically binded to a proper DOMElement attribute \item\end{CompactList}\end{CompactItemize}
\subsection*{Static Protected Attributes}
\begin{CompactItemize}
\item 
static const \hyperlink{classTypedUserInfo}{TypedUserInfo}$<$ T $>$ \& \hyperlink{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{instance}
\end{CompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T$>$ class ValuedUserInfo$<$ T $>$}

The main userinfo template class. It should be derived whenever you need a new userinfo of a class which does not contain any subelements. It is the case of basic classes(or types) like int, string, double, etc. 

The only thing left is to translate its public string attribute 'value' into a value of type T and also implement conversion in the other way round. For that, an overloading of methods T$\ast$ AssemblyInstance() / bool DisassemblyInstance(T  \&instance) is fruitful. See some valued userinfo below as an example. 

\subsection{Member Function Documentation}
\hypertarget{classUserInfo_0f090c6525a3e8fb11634a553f467ede}{
\index{ValuedUserInfo@{ValuedUserInfo}!Assembly@{Assembly}}
\index{Assembly@{Assembly}!ValuedUserInfo@{ValuedUserInfo}}
\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  \mbox{[}inline, static, inherited\mbox{]}}}}
\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.\hypertarget{classUserInfo_1d402661b82feccb5265a70f65c242e1}{
\index{ValuedUserInfo@{ValuedUserInfo}!Disassembly@{Disassembly}}
\index{Disassembly@{Disassembly}!ValuedUserInfo@{ValuedUserInfo}}
\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  \mbox{[}inline, static, inherited\mbox{]}}}}
\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 UserInfo::Disassembly(), and CompoundUserInfo$<$ T $>$::BindedElement$<$ U $>$::DisassemblyComponentsToXML().\hypertarget{classUserInfo_917b2257abc31b94c89ef3cd270e4a42}{
\index{ValuedUserInfo@{ValuedUserInfo}!Disassembly@{Disassembly}}
\index{Disassembly@{Disassembly}!ValuedUserInfo@{ValuedUserInfo}}
\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  \mbox{[}inline, static, inherited\mbox{]}}}}
\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 UserInfo::Disassembly().

\subsection{Member Data Documentation}
\hypertarget{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}{
\index{ValuedUserInfo@{ValuedUserInfo}!instance@{instance}}
\index{instance@{instance}!ValuedUserInfo@{ValuedUserInfo}}
\subsubsection[instance]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ const {\bf TypedUserInfo}$<$T$>$\& {\bf TypedUserInfo}$<$ T $>$::{\bf instance}\hspace{0.3cm}{\tt  \mbox{[}static, protected, inherited\mbox{]}}}}
\label{classTypedUserInfo_c7ad10a9ff002383518155c965ade85c}


the only instance of this class (each type T has its own instance) which is used as a factory for processing related userinfos 

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