xref: /trunk/main/autodoc/inc/ary/doc/d_oldcppdocu.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef ARY_DOC_D_OLDCPPDOCU_HXX
29 #define ARY_DOC_D_OLDCPPDOCU_HXX
30 //  KORR_DEPRECATED_3.0
31 
32 // BASE CLASSES
33 #include <ary/doc/d_node.hxx>
34 // USED SERVICES
35 #include <ary/info/inftypes.hxx>
36 #include <ary/ary_disp.hxx>
37 
38 namespace ary
39 {
40 namespace info
41 {
42     class AtTag;
43     class DocuStore;
44 }
45 }
46 
47 
48 
49 
50 namespace ary
51 {
52 namespace doc
53 {
54     using ::ary::info::AtTag;
55     using ::ary::info::E_AtTagId;
56 
57 
58 /** Wrapper class for old C++ documentation format.
59 
60     To be replaced by using the standard format.
61 */
62 class OldCppDocu : public Node
63 {
64   public:
65     typedef std::vector< DYN AtTag * >  TagList;
66 
67     // LIFECYCLE
68                         OldCppDocu();
69     virtual             ~OldCppDocu();
70 
71     void                Store2(
72                             info::DocuStore &   o_rDocuStore );
73 
74     virtual AtTag *     Create_StdTag(
75                             E_AtTagId           i_eId );
76     virtual AtTag *     CheckIn_BaseTag();
77     virtual AtTag *     CheckIn_ExceptionTag();
78     virtual AtTag *     Create_ImplementsTag();
79     virtual AtTag *     Create_KeywordTag();
80     virtual AtTag *     CheckIn_ParameterTag();
81     virtual AtTag *     CheckIn_SeeTag();
82     virtual AtTag *     CheckIn_TemplateTag();
83     virtual AtTag *     Create_LabelTag();
84     virtual AtTag *     Create_DefaultTag();
85     virtual AtTag *     Create_SinceTag();          /// @return always the first one created.
86 
87     virtual void        Replace_AtShort_By_AtDescr();
88 
89     virtual void        Set_Obsolete();
90     virtual void        Set_Internal();
91     virtual void        Set_Interface()         { bIsInterface = true; }
92 
93   // INQUIRY
94     const TagList &     Tags() const            { return aTags; }
95     const AtTag &       Short() const;
96     bool                IsObsolete() const      { return bIsObsolete; }
97     virtual bool        IsInternal() const;
98     virtual bool        IsInterface() const;
99 
100   private:
101     // Interface csv::ConstProcessorClient:
102     virtual void        do_Accept(
103                             csv::ProcessorIfc & io_processor ) const;
104     // DATA
105     unsigned char       nTags[ary::info::C_eAtTag_NrOfClasses];
106 
107     /** Creates a new AtTag at the end of aTags.
108         The index of this new AtTag is inserted in nTags at position
109         i_nIndex.
110     */
111     AtTag * &           NewTag(
112                             UINT8               i_nIndex );
113     /** Returns the Tag with the position nTags[i_nIndex]
114         in aTags.
115     */
116     AtTag &             GetTag(
117                             UINT8               i_nIndex );
118 
119     TagList             aTags;
120     bool                bIsObsolete;
121     bool                bIsInternal;
122     bool                bIsInterface;
123 };
124 
125 
126 
127 
128 }   // namespace doc
129 }   // namespace ary
130 #endif
131