xref: /trunk/main/autodoc/inc/udm/xml/xmlitem.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*11c03c6dSDamjan Jovanovic /**************************************************************
2*11c03c6dSDamjan Jovanovic  *
3*11c03c6dSDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4*11c03c6dSDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5*11c03c6dSDamjan Jovanovic  * distributed with this work for additional information
6*11c03c6dSDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7*11c03c6dSDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8*11c03c6dSDamjan Jovanovic  * "License"); you may not use this file except in compliance
9*11c03c6dSDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10*11c03c6dSDamjan Jovanovic  *
11*11c03c6dSDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12*11c03c6dSDamjan Jovanovic  *
13*11c03c6dSDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14*11c03c6dSDamjan Jovanovic  * software distributed under the License is distributed on an
15*11c03c6dSDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*11c03c6dSDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17*11c03c6dSDamjan Jovanovic  * specific language governing permissions and limitations
18*11c03c6dSDamjan Jovanovic  * under the License.
19*11c03c6dSDamjan Jovanovic  *
20*11c03c6dSDamjan Jovanovic  *************************************************************/
21*11c03c6dSDamjan Jovanovic 
22*11c03c6dSDamjan Jovanovic 
23*11c03c6dSDamjan Jovanovic 
24*11c03c6dSDamjan Jovanovic #ifndef CSI_XML_XMLITEM_HXX
25*11c03c6dSDamjan Jovanovic #define CSI_XML_XMLITEM_HXX
26*11c03c6dSDamjan Jovanovic 
27*11c03c6dSDamjan Jovanovic // USED SERVICES
28*11c03c6dSDamjan Jovanovic     // BASE CLASSES
29*11c03c6dSDamjan Jovanovic     // COMPONENTS
30*11c03c6dSDamjan Jovanovic #include <cosv/tpl/swelist.hxx>
31*11c03c6dSDamjan Jovanovic #include <cosv/tpl/dyn.hxx>
32*11c03c6dSDamjan Jovanovic     // PARAMETERS
33*11c03c6dSDamjan Jovanovic 
34*11c03c6dSDamjan Jovanovic namespace csv
35*11c03c6dSDamjan Jovanovic {
36*11c03c6dSDamjan Jovanovic     class bostream;
37*11c03c6dSDamjan Jovanovic }
38*11c03c6dSDamjan Jovanovic 
39*11c03c6dSDamjan Jovanovic 
40*11c03c6dSDamjan Jovanovic namespace csi
41*11c03c6dSDamjan Jovanovic {
42*11c03c6dSDamjan Jovanovic namespace xml
43*11c03c6dSDamjan Jovanovic {
44*11c03c6dSDamjan Jovanovic 
45*11c03c6dSDamjan Jovanovic 
46*11c03c6dSDamjan Jovanovic /*  Basics:
47*11c03c6dSDamjan Jovanovic     Item, Attribute, Element, TextContext
48*11c03c6dSDamjan Jovanovic */
49*11c03c6dSDamjan Jovanovic 
50*11c03c6dSDamjan Jovanovic class Item
51*11c03c6dSDamjan Jovanovic {
52*11c03c6dSDamjan Jovanovic   public:
~Item()53*11c03c6dSDamjan Jovanovic     virtual             ~Item() {}
54*11c03c6dSDamjan Jovanovic     void                WriteOut(
55*11c03c6dSDamjan Jovanovic                             csv::bostream &     io_aFile ) const;
56*11c03c6dSDamjan Jovanovic   private:
57*11c03c6dSDamjan Jovanovic     virtual void        do_WriteOut(
58*11c03c6dSDamjan Jovanovic                             csv::bostream &     io_aFile ) const = 0;
59*11c03c6dSDamjan Jovanovic };
60*11c03c6dSDamjan Jovanovic 
61*11c03c6dSDamjan Jovanovic typedef csv::SweList_dyn< Item >            ItemList;
62*11c03c6dSDamjan Jovanovic 
63*11c03c6dSDamjan Jovanovic class Attribute
64*11c03c6dSDamjan Jovanovic {
65*11c03c6dSDamjan Jovanovic   public:
~Attribute()66*11c03c6dSDamjan Jovanovic     virtual             ~Attribute() {}
67*11c03c6dSDamjan Jovanovic 
68*11c03c6dSDamjan Jovanovic     void                WriteOut(
69*11c03c6dSDamjan Jovanovic                             csv::bostream &     io_aFile ) const;
70*11c03c6dSDamjan Jovanovic 
71*11c03c6dSDamjan Jovanovic     const ::csv::String& Name() const;
72*11c03c6dSDamjan Jovanovic     const ::csv::String& Value() const;
73*11c03c6dSDamjan Jovanovic 
74*11c03c6dSDamjan Jovanovic   private:
75*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
76*11c03c6dSDamjan Jovanovic                         inq_Name() const = 0;
77*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
78*11c03c6dSDamjan Jovanovic                         inq_Value() const = 0;
79*11c03c6dSDamjan Jovanovic };
80*11c03c6dSDamjan Jovanovic 
81*11c03c6dSDamjan Jovanovic typedef csv::SweList_dyn< Attribute >   AttrList;
82*11c03c6dSDamjan Jovanovic 
83*11c03c6dSDamjan Jovanovic 
84*11c03c6dSDamjan Jovanovic class Element : public Item
85*11c03c6dSDamjan Jovanovic {
86*11c03c6dSDamjan Jovanovic   public:
87*11c03c6dSDamjan Jovanovic     Element &           operator<<(             /// For multiple content items.
88*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
89*11c03c6dSDamjan Jovanovic     Element &           operator<<(             /// For multiple content items.
90*11c03c6dSDamjan Jovanovic                             const ::csv::String& let_drText );
91*11c03c6dSDamjan Jovanovic     Element &           operator<<(             /// For multiple content items.
92*11c03c6dSDamjan Jovanovic                             const char *        let_dpText );
93*11c03c6dSDamjan Jovanovic     Element &           operator<<(
94*11c03c6dSDamjan Jovanovic                             DYN Attribute *     let_dpAttr );
95*11c03c6dSDamjan Jovanovic 
96*11c03c6dSDamjan Jovanovic     Element &           operator>>(             /// For multiple content items. @return the child Element.
97*11c03c6dSDamjan Jovanovic                             DYN Element &       let_drElement );
98*11c03c6dSDamjan Jovanovic 
99*11c03c6dSDamjan Jovanovic 
100*11c03c6dSDamjan Jovanovic     Item *              SetContent(             /// For only one content item.
101*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );       /// Replaces previous content. May be 0, then all content is deleted.
102*11c03c6dSDamjan Jovanovic   private:
103*11c03c6dSDamjan Jovanovic     // Interface Item:
104*11c03c6dSDamjan Jovanovic     virtual void        do_WriteOut(
105*11c03c6dSDamjan Jovanovic                             csv::bostream &     io_aFile ) const;
106*11c03c6dSDamjan Jovanovic     // Local
107*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(
108*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem ) = 0;
109*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(
110*11c03c6dSDamjan Jovanovic                             DYN Attribute *     let_dpAttr ) = 0;
111*11c03c6dSDamjan Jovanovic 
112*11c03c6dSDamjan Jovanovic     virtual void        do_SetContent(
113*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem ) = 0;
114*11c03c6dSDamjan Jovanovic     // Helpers
115*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
116*11c03c6dSDamjan Jovanovic                         inq_TagName() const = 0;
117*11c03c6dSDamjan Jovanovic     virtual const Item *
118*11c03c6dSDamjan Jovanovic                         inq_Content() const = 0;
119*11c03c6dSDamjan Jovanovic     virtual const AttrList *
120*11c03c6dSDamjan Jovanovic                         inq_Attrs() const = 0;
121*11c03c6dSDamjan Jovanovic 
122*11c03c6dSDamjan Jovanovic     virtual bool        FinishEmptyTag_XmlStyle() const;    /// Defaulted to: true
123*11c03c6dSDamjan Jovanovic 
124*11c03c6dSDamjan Jovanovic     virtual bool        LineBreakAfterBeginTag() const;     /// Defaulted to: false
125*11c03c6dSDamjan Jovanovic     virtual bool        LineBreakAfterEndTag() const;       /// Defaulted to: true, if LineBreakAfterBeginTag()
126*11c03c6dSDamjan Jovanovic };
127*11c03c6dSDamjan Jovanovic 
128*11c03c6dSDamjan Jovanovic class TextContent : public Item
129*11c03c6dSDamjan Jovanovic {
130*11c03c6dSDamjan Jovanovic };
131*11c03c6dSDamjan Jovanovic 
132*11c03c6dSDamjan Jovanovic 
133*11c03c6dSDamjan Jovanovic /*  Implementation simplifiers:
134*11c03c6dSDamjan Jovanovic     EmptyElement, PureElement, SglTag
135*11c03c6dSDamjan Jovanovic */
136*11c03c6dSDamjan Jovanovic 
137*11c03c6dSDamjan Jovanovic class EmptyElement : public Element
138*11c03c6dSDamjan Jovanovic {
139*11c03c6dSDamjan Jovanovic   private:
140*11c03c6dSDamjan Jovanovic     // Interface Element:
141*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(          /// does nothing
142*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
143*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(
144*11c03c6dSDamjan Jovanovic                             DYN Attribute *     let_dpAttr );
145*11c03c6dSDamjan Jovanovic     virtual void        do_SetContent(          /// does nothing
146*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
147*11c03c6dSDamjan Jovanovic     virtual const Item *
148*11c03c6dSDamjan Jovanovic                         inq_Content() const;    /// @return 0
149*11c03c6dSDamjan Jovanovic     virtual const AttrList *
150*11c03c6dSDamjan Jovanovic                         inq_Attrs() const;
151*11c03c6dSDamjan Jovanovic 
152*11c03c6dSDamjan Jovanovic     // Local
153*11c03c6dSDamjan Jovanovic     virtual AttrList &  inq_RefAttrs() = 0;
154*11c03c6dSDamjan Jovanovic };
155*11c03c6dSDamjan Jovanovic 
156*11c03c6dSDamjan Jovanovic class PureElement : public Element
157*11c03c6dSDamjan Jovanovic {
158*11c03c6dSDamjan Jovanovic   private:
159*11c03c6dSDamjan Jovanovic     // Interface Element:
160*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(
161*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
162*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(          /// does nothing
163*11c03c6dSDamjan Jovanovic                             DYN Attribute *     let_dpAttr );
164*11c03c6dSDamjan Jovanovic     virtual void        do_SetContent(
165*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
166*11c03c6dSDamjan Jovanovic     virtual const Item *
167*11c03c6dSDamjan Jovanovic                         inq_Content() const;
168*11c03c6dSDamjan Jovanovic     virtual const AttrList *
169*11c03c6dSDamjan Jovanovic                         inq_Attrs() const;      /// @return 0
170*11c03c6dSDamjan Jovanovic     // Local
171*11c03c6dSDamjan Jovanovic     virtual Dyn< Item > &
172*11c03c6dSDamjan Jovanovic                         inq_RefContent() = 0;
173*11c03c6dSDamjan Jovanovic };
174*11c03c6dSDamjan Jovanovic 
175*11c03c6dSDamjan Jovanovic class SglTag : public Element
176*11c03c6dSDamjan Jovanovic {
177*11c03c6dSDamjan Jovanovic   private:
178*11c03c6dSDamjan Jovanovic     // Interface Element:
179*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(          /// does nothing
180*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
181*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(          /// does nothing
182*11c03c6dSDamjan Jovanovic                             DYN Attribute *     let_dpAttr );
183*11c03c6dSDamjan Jovanovic     virtual void        do_SetContent(          /// does nothing
184*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
185*11c03c6dSDamjan Jovanovic     virtual const Item *
186*11c03c6dSDamjan Jovanovic                         inq_Content() const;    /// @return 0
187*11c03c6dSDamjan Jovanovic     virtual const AttrList *
188*11c03c6dSDamjan Jovanovic                         inq_Attrs() const;      /// @return 0
189*11c03c6dSDamjan Jovanovic };
190*11c03c6dSDamjan Jovanovic 
191*11c03c6dSDamjan Jovanovic 
192*11c03c6dSDamjan Jovanovic 
193*11c03c6dSDamjan Jovanovic /*  Standard Element implementations, if there are not any
194*11c03c6dSDamjan Jovanovic     specialized ones.
195*11c03c6dSDamjan Jovanovic */
196*11c03c6dSDamjan Jovanovic 
197*11c03c6dSDamjan Jovanovic class AnElement : public Element
198*11c03c6dSDamjan Jovanovic {
199*11c03c6dSDamjan Jovanovic   public:
200*11c03c6dSDamjan Jovanovic                         AnElement(
201*11c03c6dSDamjan Jovanovic                             const ::csv::String& i_sTagName );
202*11c03c6dSDamjan Jovanovic                         AnElement(
203*11c03c6dSDamjan Jovanovic                             const char *         i_sTagName );
204*11c03c6dSDamjan Jovanovic                         ~AnElement();
205*11c03c6dSDamjan Jovanovic   private:
206*11c03c6dSDamjan Jovanovic     // Interface Element
207*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(
208*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
209*11c03c6dSDamjan Jovanovic     virtual void        op_streamout(
210*11c03c6dSDamjan Jovanovic                             DYN Attribute *     let_dpAttr );
211*11c03c6dSDamjan Jovanovic     virtual void        do_SetContent(
212*11c03c6dSDamjan Jovanovic                             DYN Item *          let_dpItem );
213*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
214*11c03c6dSDamjan Jovanovic                         inq_TagName() const;
215*11c03c6dSDamjan Jovanovic     virtual const Item *
216*11c03c6dSDamjan Jovanovic                         inq_Content() const;
217*11c03c6dSDamjan Jovanovic     virtual const AttrList *
218*11c03c6dSDamjan Jovanovic                         inq_Attrs() const;
219*11c03c6dSDamjan Jovanovic     // DATA
220*11c03c6dSDamjan Jovanovic     ::csv::String       sTagName;
221*11c03c6dSDamjan Jovanovic     Dyn< Item >         pContent;
222*11c03c6dSDamjan Jovanovic     AttrList            aAttrs;
223*11c03c6dSDamjan Jovanovic };
224*11c03c6dSDamjan Jovanovic 
225*11c03c6dSDamjan Jovanovic 
226*11c03c6dSDamjan Jovanovic class AnEmptyElement : public EmptyElement
227*11c03c6dSDamjan Jovanovic {
228*11c03c6dSDamjan Jovanovic   public:
229*11c03c6dSDamjan Jovanovic                         AnEmptyElement(
230*11c03c6dSDamjan Jovanovic                             const ::csv::String & i_sTagName );
231*11c03c6dSDamjan Jovanovic                         AnEmptyElement(
232*11c03c6dSDamjan Jovanovic                             const char * i_sTagName );
233*11c03c6dSDamjan Jovanovic                         ~AnEmptyElement();
234*11c03c6dSDamjan Jovanovic   private:
235*11c03c6dSDamjan Jovanovic     // Interface Element:
236*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
237*11c03c6dSDamjan Jovanovic                         inq_TagName() const;
238*11c03c6dSDamjan Jovanovic     // Interface EmptyElement:
239*11c03c6dSDamjan Jovanovic     virtual AttrList &  inq_RefAttrs();
240*11c03c6dSDamjan Jovanovic 
241*11c03c6dSDamjan Jovanovic     // DATA
242*11c03c6dSDamjan Jovanovic     ::csv::String       sTagName;
243*11c03c6dSDamjan Jovanovic     AttrList            aAttrs;
244*11c03c6dSDamjan Jovanovic };
245*11c03c6dSDamjan Jovanovic 
246*11c03c6dSDamjan Jovanovic class APureElement : public PureElement
247*11c03c6dSDamjan Jovanovic {
248*11c03c6dSDamjan Jovanovic   public:
249*11c03c6dSDamjan Jovanovic                         APureElement(
250*11c03c6dSDamjan Jovanovic                             const ::csv::String &   i_sTagName );
251*11c03c6dSDamjan Jovanovic                         APureElement(
252*11c03c6dSDamjan Jovanovic                             const char *            i_sTagName );
253*11c03c6dSDamjan Jovanovic                         ~APureElement();
254*11c03c6dSDamjan Jovanovic   private:
255*11c03c6dSDamjan Jovanovic     // Interface Element:
256*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
257*11c03c6dSDamjan Jovanovic                         inq_TagName() const;
258*11c03c6dSDamjan Jovanovic     // Interface PureElement:
259*11c03c6dSDamjan Jovanovic     virtual Dyn< Item > &
260*11c03c6dSDamjan Jovanovic                         inq_RefContent();
261*11c03c6dSDamjan Jovanovic     // DATA
262*11c03c6dSDamjan Jovanovic     ::csv::String       sTagName;
263*11c03c6dSDamjan Jovanovic     Dyn< Item >         pContent;
264*11c03c6dSDamjan Jovanovic };
265*11c03c6dSDamjan Jovanovic 
266*11c03c6dSDamjan Jovanovic class ASglTag : public SglTag
267*11c03c6dSDamjan Jovanovic {
268*11c03c6dSDamjan Jovanovic   public:
269*11c03c6dSDamjan Jovanovic                         ASglTag(
270*11c03c6dSDamjan Jovanovic                             const ::csv::String & i_sTagName );
271*11c03c6dSDamjan Jovanovic                         ASglTag(
272*11c03c6dSDamjan Jovanovic                             const char *          i_sTagName );
273*11c03c6dSDamjan Jovanovic                         ~ASglTag();
274*11c03c6dSDamjan Jovanovic   private:
275*11c03c6dSDamjan Jovanovic     // Interface Element:
276*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
277*11c03c6dSDamjan Jovanovic                         inq_TagName() const;
278*11c03c6dSDamjan Jovanovic     // DATA
279*11c03c6dSDamjan Jovanovic     ::csv::String         sTagName;
280*11c03c6dSDamjan Jovanovic };
281*11c03c6dSDamjan Jovanovic 
282*11c03c6dSDamjan Jovanovic 
283*11c03c6dSDamjan Jovanovic /* Standard Attribute implementation
284*11c03c6dSDamjan Jovanovic */
285*11c03c6dSDamjan Jovanovic class AnAttribute : public Attribute
286*11c03c6dSDamjan Jovanovic {
287*11c03c6dSDamjan Jovanovic   public:
288*11c03c6dSDamjan Jovanovic                         AnAttribute(
289*11c03c6dSDamjan Jovanovic                             const ::csv::String & i_sName,
290*11c03c6dSDamjan Jovanovic                             const ::csv::String & i_sValue );
291*11c03c6dSDamjan Jovanovic                         AnAttribute(
292*11c03c6dSDamjan Jovanovic                             const char *          i_sName,
293*11c03c6dSDamjan Jovanovic                             const char *          i_sValue );
294*11c03c6dSDamjan Jovanovic                         ~AnAttribute();
295*11c03c6dSDamjan Jovanovic   private:
296*11c03c6dSDamjan Jovanovic     // Interface Attribute:
297*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
298*11c03c6dSDamjan Jovanovic                         inq_Name() const;
299*11c03c6dSDamjan Jovanovic     virtual const ::csv::String &
300*11c03c6dSDamjan Jovanovic                         inq_Value() const;
301*11c03c6dSDamjan Jovanovic     // DATA
302*11c03c6dSDamjan Jovanovic     ::csv::String         sName;
303*11c03c6dSDamjan Jovanovic     ::csv::String         sValue;
304*11c03c6dSDamjan Jovanovic };
305*11c03c6dSDamjan Jovanovic 
306*11c03c6dSDamjan Jovanovic 
307*11c03c6dSDamjan Jovanovic 
308*11c03c6dSDamjan Jovanovic /*  Implementations of TextContent:
309*11c03c6dSDamjan Jovanovic 
310*11c03c6dSDamjan Jovanovic     Text        ( reserved characters will be replaced and appear unchanged )
311*11c03c6dSDamjan Jovanovic     XmlCode     ( reserved characters stay and are interpreted
312*11c03c6dSDamjan Jovanovic                   by the XML-viewer )
313*11c03c6dSDamjan Jovanovic */
314*11c03c6dSDamjan Jovanovic class Text : public TextContent
315*11c03c6dSDamjan Jovanovic {
316*11c03c6dSDamjan Jovanovic   public:
317*11c03c6dSDamjan Jovanovic                         Text(
318*11c03c6dSDamjan Jovanovic                             const ::csv::String & i_sText );
319*11c03c6dSDamjan Jovanovic                         Text(
320*11c03c6dSDamjan Jovanovic                             const char *        i_sText );
321*11c03c6dSDamjan Jovanovic                         ~Text();
322*11c03c6dSDamjan Jovanovic   private:
323*11c03c6dSDamjan Jovanovic     virtual void        do_WriteOut(
324*11c03c6dSDamjan Jovanovic                             csv::bostream &     io_aFile ) const;
325*11c03c6dSDamjan Jovanovic     // DATA
326*11c03c6dSDamjan Jovanovic     ::csv::String         sText;
327*11c03c6dSDamjan Jovanovic };
328*11c03c6dSDamjan Jovanovic 
329*11c03c6dSDamjan Jovanovic 
330*11c03c6dSDamjan Jovanovic class XmlCode : public TextContent
331*11c03c6dSDamjan Jovanovic {
332*11c03c6dSDamjan Jovanovic   public:
333*11c03c6dSDamjan Jovanovic                         XmlCode(
334*11c03c6dSDamjan Jovanovic                             const ::csv::String & i_sText );
335*11c03c6dSDamjan Jovanovic                         XmlCode(
336*11c03c6dSDamjan Jovanovic                             const char *          i_sText );
337*11c03c6dSDamjan Jovanovic                         ~XmlCode();
338*11c03c6dSDamjan Jovanovic   private:
339*11c03c6dSDamjan Jovanovic     virtual void        do_WriteOut(
340*11c03c6dSDamjan Jovanovic                             csv::bostream &     io_aFile ) const;
341*11c03c6dSDamjan Jovanovic     // DATA
342*11c03c6dSDamjan Jovanovic     ::csv::String         sText;
343*11c03c6dSDamjan Jovanovic };
344*11c03c6dSDamjan Jovanovic 
345*11c03c6dSDamjan Jovanovic 
346*11c03c6dSDamjan Jovanovic 
347*11c03c6dSDamjan Jovanovic // IMPLEMENTATION
348*11c03c6dSDamjan Jovanovic 
349*11c03c6dSDamjan Jovanovic inline void
WriteOut(csv::bostream & io_aFile) const350*11c03c6dSDamjan Jovanovic Item::WriteOut( csv::bostream & io_aFile ) const
351*11c03c6dSDamjan Jovanovic     { do_WriteOut(io_aFile); }
352*11c03c6dSDamjan Jovanovic 
353*11c03c6dSDamjan Jovanovic inline const ::csv::String &
Name() const354*11c03c6dSDamjan Jovanovic Attribute::Name() const
355*11c03c6dSDamjan Jovanovic     { return inq_Name(); }
356*11c03c6dSDamjan Jovanovic inline const ::csv::String &
Value() const357*11c03c6dSDamjan Jovanovic Attribute::Value() const
358*11c03c6dSDamjan Jovanovic     { return inq_Value(); }
359*11c03c6dSDamjan Jovanovic 
360*11c03c6dSDamjan Jovanovic inline Element &
operator <<(DYN Item * let_dpItem)361*11c03c6dSDamjan Jovanovic Element::operator<<( DYN Item * let_dpItem )
362*11c03c6dSDamjan Jovanovic     { op_streamout(let_dpItem); return *this; }
363*11c03c6dSDamjan Jovanovic inline Element &
operator <<(const::csv::String & let_drText)364*11c03c6dSDamjan Jovanovic Element::operator<<( const ::csv::String & let_drText )
365*11c03c6dSDamjan Jovanovic     { op_streamout( new Text(let_drText) ); return *this; }
366*11c03c6dSDamjan Jovanovic inline Element &
operator <<(const char * let_drText)367*11c03c6dSDamjan Jovanovic Element::operator<<( const char * let_drText )
368*11c03c6dSDamjan Jovanovic     { op_streamout( new Text(let_drText) ); return *this; }
369*11c03c6dSDamjan Jovanovic inline Element &
operator <<(DYN Attribute * let_dpAttr)370*11c03c6dSDamjan Jovanovic Element::operator<<( DYN Attribute * let_dpAttr )
371*11c03c6dSDamjan Jovanovic     { op_streamout(let_dpAttr); return *this; }
372*11c03c6dSDamjan Jovanovic inline Element &
operator >>(DYN Element & let_drElement)373*11c03c6dSDamjan Jovanovic Element::operator>>( DYN Element & let_drElement )
374*11c03c6dSDamjan Jovanovic     { op_streamout(&let_drElement); return let_drElement; }
375*11c03c6dSDamjan Jovanovic inline Item *
SetContent(DYN Item * let_dpItem)376*11c03c6dSDamjan Jovanovic Element::SetContent( DYN Item * let_dpItem )
377*11c03c6dSDamjan Jovanovic     { do_SetContent(let_dpItem); return let_dpItem; }
378*11c03c6dSDamjan Jovanovic 
379*11c03c6dSDamjan Jovanovic 
380*11c03c6dSDamjan Jovanovic }   // namespace xml
381*11c03c6dSDamjan Jovanovic }   // namespace csi
382*11c03c6dSDamjan Jovanovic 
383*11c03c6dSDamjan Jovanovic #endif
384