38
34
<a name="l00022"></a>00022 <span class="preprocessor"></span>
39
35
<a name="l00023"></a>00023 <span class="preprocessor">#include <string></span>
40
36
<a name="l00024"></a>00024 <span class="preprocessor">#include "ParserEventGeneratorKit.h"</span>
41
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="messages_8hh.html">messages.hh</a>"</span>
42
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="libofx-0_88_82_2inc_2libofx_8h.html">libofx.h</a>"</span>
43
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="ofx__containers_8hh.html">ofx_containers.hh</a>"</span>
37
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="messages_8hh.html" title="Message IO functionality.">messages.hh</a>"</span>
38
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="libofx-0_89_80_2inc_2libofx_8h.html" title="Main header file containing the LibOfx API.">libofx.h</a>"</span>
39
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="ofx__containers_8hh.html" title="LibOFX internal object code.">ofx_containers.hh</a>"</span>
44
40
<a name="l00028"></a>00028
45
<a name="l00029"></a>00029 <span class="keyword">extern</span> <a class="code" href="classOfxMainContainer.html">OfxMainContainer</a> * <a class="code" href="ofc__sgml_8cpp.html#f3482b96aee7a01b5b8c94c441770c3c">MainContainer</a>;
41
<a name="l00029"></a>00029 <span class="keyword">extern</span> <a class="code" href="classOfxMainContainer.html" title="The root container. Created by the &lt;OFX&gt; OFX element or by the export functions...">OfxMainContainer</a> * <a class="code" href="ofc__sgml_8cpp.html#759a7d80c051f4f1adc2abae56002100">MainContainer</a>;
46
42
<a name="l00030"></a>00030
47
<a name="l00031"></a><a class="code" href="classOfxGenericContainer.html#e48e58d94a10dbe1d47c9aa63594c141">00031</a> <a class="code" href="classOfxGenericContainer.html#e48e58d94a10dbe1d47c9aa63594c141">OfxGenericContainer::OfxGenericContainer</a>(<a class="code" href="classLibofxContext.html">LibofxContext</a> *p_libofx_context)
43
<a name="l00031"></a><a class="code" href="classOfxGenericContainer.html#a304d5bef635e4771cc04f3d55b8faa0">00031</a> <a class="code" href="classOfxGenericContainer.html#a304d5bef635e4771cc04f3d55b8faa0">OfxGenericContainer::OfxGenericContainer</a>(<a class="code" href="classLibofxContext.html">LibofxContext</a> *p_libofx_context)
48
44
<a name="l00032"></a>00032 {
49
<a name="l00033"></a>00033 <a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a>=NULL;
50
<a name="l00034"></a>00034 <a class="code" href="classOfxGenericContainer.html#0008d81645273eedfdbd2ba59792b67c">type</a>=<span class="stringliteral">""</span>;
51
<a name="l00035"></a>00035 <a class="code" href="classOfxGenericContainer.html#42f7ea95e7298c4c3f84c115e106ce25">tag_identifier</a>=<span class="stringliteral">""</span>;
52
<a name="l00036"></a>00036 <a class="code" href="classOfxGenericContainer.html#dedbff16e5cf82496342a9f5a0048c46">libofx_context</a> = p_libofx_context;
45
<a name="l00033"></a>00033 <a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a>=NULL;
46
<a name="l00034"></a>00034 <a class="code" href="classOfxGenericContainer.html#2cad6fe32c79d320b8808d1e88b4e18a">type</a>=<span class="stringliteral">""</span>;
47
<a name="l00035"></a>00035 <a class="code" href="classOfxGenericContainer.html#2594ccb63eaf769a6b4b5d224411f031">tag_identifier</a>=<span class="stringliteral">""</span>;
48
<a name="l00036"></a>00036 <a class="code" href="classOfxGenericContainer.html#a2d199f4cd2a723ea2c935e83fbc340d">libofx_context</a> = p_libofx_context;
53
49
<a name="l00037"></a>00037 }
54
<a name="l00038"></a><a class="code" href="classOfxGenericContainer.html#49a8613c76ba89c27aad9ff33887f90f">00038</a> <a class="code" href="classOfxGenericContainer.html#e48e58d94a10dbe1d47c9aa63594c141">OfxGenericContainer::OfxGenericContainer</a>(<a class="code" href="classLibofxContext.html">LibofxContext</a> *p_libofx_context, <a class="code" href="classOfxGenericContainer.html">OfxGenericContainer</a> *para_parentcontainer)
50
<a name="l00038"></a><a class="code" href="classOfxGenericContainer.html#3439790d6565423746d460be7510b888">00038</a> <a class="code" href="classOfxGenericContainer.html#a304d5bef635e4771cc04f3d55b8faa0">OfxGenericContainer::OfxGenericContainer</a>(<a class="code" href="classLibofxContext.html">LibofxContext</a> *p_libofx_context, <a class="code" href="classOfxGenericContainer.html" title="A generic container for an OFX SGML element. Every container inherits from OfxGenericContainer...">OfxGenericContainer</a> *para_parentcontainer)
55
51
<a name="l00039"></a>00039 {
56
<a name="l00040"></a>00040 <a class="code" href="classOfxGenericContainer.html#dedbff16e5cf82496342a9f5a0048c46">libofx_context</a> = p_libofx_context;
57
<a name="l00041"></a>00041 <a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a> = para_parentcontainer;
58
<a name="l00042"></a>00042 <span class="keywordflow">if</span>(<a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a>!=NULL&&<a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a>-><a class="code" href="classOfxGenericContainer.html#0008d81645273eedfdbd2ba59792b67c">type</a>==<span class="stringliteral">"DUMMY"</span>){
59
<a name="l00043"></a>00043 <a class="code" href="messages_8cpp.html#99c5e187aa2ee7e5e08fb6e77d63bfe3">message_out</a>(<a class="code" href="messages_8hh.html#7a1786af43f15890c2e84ec7d6f0ea4e099c8c241f62f143c876690f7464e786">DEBUG</a>,<span class="stringliteral">"OfxGenericContainer(): The parent is a DummyContainer!"</span>);
52
<a name="l00040"></a>00040 <a class="code" href="classOfxGenericContainer.html#a2d199f4cd2a723ea2c935e83fbc340d">libofx_context</a> = p_libofx_context;
53
<a name="l00041"></a>00041 <a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a> = para_parentcontainer;
54
<a name="l00042"></a>00042 <span class="keywordflow">if</span>(<a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a>!=NULL&&<a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a>-><a class="code" href="classOfxGenericContainer.html#2cad6fe32c79d320b8808d1e88b4e18a">type</a>==<span class="stringliteral">"DUMMY"</span>){
55
<a name="l00043"></a>00043 <a class="code" href="messages_8cpp.html#6af6947c1ec6fcbefd793f80c26d90fa" title="Message output function.">message_out</a>(<a class="code" href="messages_8hh.html#7cd03dafa59895bc306bf220b7b85f690593585da9181e972974c1274d8f2b4f">DEBUG</a>,<span class="stringliteral">"OfxGenericContainer(): The parent is a DummyContainer!"</span>);
60
56
<a name="l00044"></a>00044 }
61
57
<a name="l00045"></a>00045 }
62
<a name="l00046"></a><a class="code" href="classOfxGenericContainer.html#5adffc48d493402fd48bbad937a692e6">00046</a> <a class="code" href="classOfxGenericContainer.html#e48e58d94a10dbe1d47c9aa63594c141">OfxGenericContainer::OfxGenericContainer</a>(<a class="code" href="classLibofxContext.html">LibofxContext</a> *p_libofx_context, <a class="code" href="classOfxGenericContainer.html">OfxGenericContainer</a> *para_parentcontainer, string para_tag_identifier)
58
<a name="l00046"></a><a class="code" href="classOfxGenericContainer.html#2767854a4bd914130650ce49eade8f81">00046</a> <a class="code" href="classOfxGenericContainer.html#a304d5bef635e4771cc04f3d55b8faa0">OfxGenericContainer::OfxGenericContainer</a>(<a class="code" href="classLibofxContext.html">LibofxContext</a> *p_libofx_context, <a class="code" href="classOfxGenericContainer.html" title="A generic container for an OFX SGML element. Every container inherits from OfxGenericContainer...">OfxGenericContainer</a> *para_parentcontainer, <span class="keywordtype">string</span> para_tag_identifier)
63
59
<a name="l00047"></a>00047 {
64
<a name="l00048"></a>00048 <a class="code" href="classOfxGenericContainer.html#dedbff16e5cf82496342a9f5a0048c46">libofx_context</a> = p_libofx_context;
65
<a name="l00049"></a>00049 <a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a> = para_parentcontainer;
66
<a name="l00050"></a>00050 <a class="code" href="classOfxGenericContainer.html#42f7ea95e7298c4c3f84c115e106ce25">tag_identifier</a> = para_tag_identifier;
67
<a name="l00051"></a>00051 <span class="keywordflow">if</span>(<a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a>!=NULL&&<a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a>-><a class="code" href="classOfxGenericContainer.html#0008d81645273eedfdbd2ba59792b67c">type</a>==<span class="stringliteral">"DUMMY"</span>){
68
<a name="l00052"></a>00052 <a class="code" href="messages_8cpp.html#99c5e187aa2ee7e5e08fb6e77d63bfe3">message_out</a>(<a class="code" href="messages_8hh.html#7a1786af43f15890c2e84ec7d6f0ea4e099c8c241f62f143c876690f7464e786">DEBUG</a>,<span class="stringliteral">"OfxGenericContainer(): The parent for this "</span>+<a class="code" href="classOfxGenericContainer.html#42f7ea95e7298c4c3f84c115e106ce25">tag_identifier</a>+<span class="stringliteral">" is a DummyContainer!"</span>);
60
<a name="l00048"></a>00048 <a class="code" href="classOfxGenericContainer.html#a2d199f4cd2a723ea2c935e83fbc340d">libofx_context</a> = p_libofx_context;
61
<a name="l00049"></a>00049 <a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a> = para_parentcontainer;
62
<a name="l00050"></a>00050 <a class="code" href="classOfxGenericContainer.html#2594ccb63eaf769a6b4b5d224411f031">tag_identifier</a> = para_tag_identifier;
63
<a name="l00051"></a>00051 <span class="keywordflow">if</span>(<a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a>!=NULL&&<a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a>-><a class="code" href="classOfxGenericContainer.html#2cad6fe32c79d320b8808d1e88b4e18a">type</a>==<span class="stringliteral">"DUMMY"</span>){
64
<a name="l00052"></a>00052 <a class="code" href="messages_8cpp.html#6af6947c1ec6fcbefd793f80c26d90fa" title="Message output function.">message_out</a>(<a class="code" href="messages_8hh.html#7cd03dafa59895bc306bf220b7b85f690593585da9181e972974c1274d8f2b4f">DEBUG</a>,<span class="stringliteral">"OfxGenericContainer(): The parent for this "</span>+<a class="code" href="classOfxGenericContainer.html#2594ccb63eaf769a6b4b5d224411f031">tag_identifier</a>+<span class="stringliteral">" is a DummyContainer!"</span>);
69
65
<a name="l00053"></a>00053 }
70
66
<a name="l00054"></a>00054 }
71
<a name="l00055"></a><a class="code" href="classOfxGenericContainer.html#e759f97dafd5f7cc55467d9b1de50159">00055</a> <span class="keywordtype">void</span> <a class="code" href="classOfxGenericContainer.html#e759f97dafd5f7cc55467d9b1de50159">OfxGenericContainer::add_attribute</a>(<span class="keyword">const</span> string identifier, <span class="keyword">const</span> string value)
67
<a name="l00055"></a><a class="code" href="classOfxGenericContainer.html#6168716a931dc8e74bcb534fdadaf778">00055</a> <span class="keywordtype">void</span> <a class="code" href="classOfxGenericContainer.html#6168716a931dc8e74bcb534fdadaf778" title="Add data to a container object.">OfxGenericContainer::add_attribute</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> identifier, <span class="keyword">const</span> <span class="keywordtype">string</span> value)
72
68
<a name="l00056"></a>00056 {
73
69
<a name="l00057"></a>00057 <span class="comment">/*If an attribute has made it all the way up to the Generic Container's add_attribute, </span>
74
70
<a name="l00058"></a>00058 <span class="comment"> we don't know what to do with it! */</span>
75
<a name="l00059"></a>00059 <a class="code" href="messages_8cpp.html#99c5e187aa2ee7e5e08fb6e77d63bfe3">message_out</a>(<a class="code" href="messages_8hh.html#7a1786af43f15890c2e84ec7d6f0ea4e64607d002c20e2489bd4d131ad466aa9">ERROR</a>, <span class="stringliteral">"WRITEME: "</span>+identifier+<span class="stringliteral">" ("</span>+value+<span class="stringliteral">") is not supported by the "</span>+<a class="code" href="classOfxGenericContainer.html#0008d81645273eedfdbd2ba59792b67c">type</a>+<span class="stringliteral">" container"</span>);
71
<a name="l00059"></a>00059 <a class="code" href="messages_8cpp.html#6af6947c1ec6fcbefd793f80c26d90fa" title="Message output function.">message_out</a>(<a class="code" href="messages_8hh.html#7cd03dafa59895bc306bf220b7b85f692fd6f336d08340583bd620a7f5694c90">ERROR</a>, <span class="stringliteral">"WRITEME: "</span>+identifier+<span class="stringliteral">" ("</span>+value+<span class="stringliteral">") is not supported by the "</span>+<a class="code" href="classOfxGenericContainer.html#2cad6fe32c79d320b8808d1e88b4e18a">type</a>+<span class="stringliteral">" container"</span>);
76
72
<a name="l00060"></a>00060 }
77
<a name="l00061"></a><a class="code" href="classOfxGenericContainer.html#2fb3838619459bcf9c9f378151c22f1e">00061</a> <a class="code" href="classOfxGenericContainer.html">OfxGenericContainer</a>* <a class="code" href="classOfxGenericContainer.html#2fb3838619459bcf9c9f378151c22f1e">OfxGenericContainer::getparent</a>()
73
<a name="l00061"></a><a class="code" href="classOfxGenericContainer.html#3d6e18d61e9e8f43a956e50cc5f90597">00061</a> <a class="code" href="classOfxGenericContainer.html" title="A generic container for an OFX SGML element. Every container inherits from OfxGenericContainer...">OfxGenericContainer</a>* <a class="code" href="classOfxGenericContainer.html#3d6e18d61e9e8f43a956e50cc5f90597" title="Returns the parent container object (the one representing the containing OFX SGML...">OfxGenericContainer::getparent</a>()
78
74
<a name="l00062"></a>00062 {
79
<a name="l00063"></a>00063 <span class="keywordflow">return</span> <a class="code" href="classOfxGenericContainer.html#a71e65ff8f141a4b2df1860c994551a8">parentcontainer</a>;
75
<a name="l00063"></a>00063 <span class="keywordflow">return</span> <a class="code" href="classOfxGenericContainer.html#ff401a93eb35ca34b1e028dab30887ba">parentcontainer</a>;
80
76
<a name="l00064"></a>00064 }
81
77
<a name="l00065"></a>00065
82
<a name="l00066"></a><a class="code" href="classOfxGenericContainer.html#71db0643fef8ccf62dddbadf5805c0eb">00066</a> <span class="keywordtype">int</span> <a class="code" href="classOfxGenericContainer.html#71db0643fef8ccf62dddbadf5805c0eb">OfxGenericContainer::gen_event</a>()
78
<a name="l00066"></a><a class="code" href="classOfxGenericContainer.html#a8ffd0a68bcea4f0048b392af5078105">00066</a> <span class="keywordtype">int</span> <a class="code" href="classOfxGenericContainer.html#a8ffd0a68bcea4f0048b392af5078105" title="Generate libofx.h events.">OfxGenericContainer::gen_event</a>()
83
79
<a name="l00067"></a>00067 {
84
80
<a name="l00068"></a>00068 <span class="comment">/* No callback is ever generated for pure virtual containers */</span>
85
81
<a name="l00069"></a>00069 <span class="keywordflow">return</span> <span class="keyword">false</span>;
86
82
<a name="l00070"></a>00070 }
87
83
<a name="l00071"></a>00071
88
<a name="l00072"></a><a class="code" href="classOfxGenericContainer.html#3ac7545c12ab5bfd3c47a946ccc69fc0">00072</a> <span class="keywordtype">int</span> <a class="code" href="classOfxGenericContainer.html#3ac7545c12ab5bfd3c47a946ccc69fc0">OfxGenericContainer::add_to_main_tree</a>()
84
<a name="l00072"></a><a class="code" href="classOfxGenericContainer.html#e9ddc283e5d9a2853d7e02b4d9584036">00072</a> <span class="keywordtype">int</span> <a class="code" href="classOfxGenericContainer.html#e9ddc283e5d9a2853d7e02b4d9584036" title="Add this container to the main tree.">OfxGenericContainer::add_to_main_tree</a>()
89
85
<a name="l00073"></a>00073 {
90
<a name="l00074"></a>00074 <span class="keywordflow">if</span>(<a class="code" href="ofc__sgml_8cpp.html#f3482b96aee7a01b5b8c94c441770c3c">MainContainer</a> != NULL)
86
<a name="l00074"></a>00074 <span class="keywordflow">if</span>(MainContainer != NULL)
91
87
<a name="l00075"></a>00075 {
92
<a name="l00076"></a>00076 <span class="keywordflow">return</span> <a class="code" href="ofc__sgml_8cpp.html#f3482b96aee7a01b5b8c94c441770c3c">MainContainer</a>-><a class="code" href="classOfxMainContainer.html#22a388d36a6fe2e30d99f1cc1b8e79d5">add_container</a>(<span class="keyword">this</span>);
88
<a name="l00076"></a>00076 <span class="keywordflow">return</span> MainContainer-><a class="code" href="classOfxMainContainer.html#bf9596f27e1f2382fe6f1054d2a00e1d">add_container</a>(<span class="keyword">this</span>);
93
89
<a name="l00077"></a>00077 }
94
90
<a name="l00078"></a>00078 <span class="keywordflow">else</span>
95
91
<a name="l00079"></a>00079 {