xref: /trunk/main/autodoc/inc/ary/doc/d_oldcppdocu.hxx (revision cdf0e10c)
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