xref: /trunk/main/autodoc/source/display/idl/hi_ary.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 ADC_DISPLAY_HI_ARY_HXX
29 #define ADC_DISPLAY_HI_ARY_HXX
30 
31 
32 // USED SERVICES
33     // BASE CLASSES
34     // COMPONENTS
35 #include <ary/idl/i_types4idl.hxx>
36     // PARAMETERS
37 #include <ary/idl/i_gate.hxx>
38 #include <ary/doc/d_docu.hxx>
39 #include <ary/doc/d_oldidldocu.hxx>
40 
41 
42 namespace ary
43 {
44 namespace idl
45 {
46     class Module;
47     class Gate;
48     class CePilot;
49     class TypePilot;
50 }
51 }
52 namespace output
53 {
54     class Position;
55 }
56 
57 
58 
59 
60 inline const ary::doc::OldIdlDocu *
61 Get_IdlDocu(const ary::doc::Documentation & i_doc)
62 {
63     return dynamic_cast< const ary::doc::OldIdlDocu* >(i_doc.Data());
64 }
65 
66 
67 
68 
69 
70 /** A helper class to wrap the access to data in the Autodoc Repository.
71 */
72 class AryAccess
73 {
74   public:
75     // LIFECYCLE
76                         AryAccess(
77                             const ary::idl::Gate &
78                                                 i_rGate );
79     // INQUIRY
80     const ary::idl::Module &
81                         GlobalNamespace() const;
82     const ary::idl::Module &
83                         Find_Module(
84                             ary::idl::Ce_id     i_ce ) const;
85     const ary::idl::CodeEntity &
86                         Find_Ce(
87                             ary::idl::Ce_id     i_ce ) const;
88     const ary::idl::Type &
89                         Find_Type(
90                             ary::idl::Type_id   i_type ) const;
91     ary::idl::Ce_id     CeFromType(
92                             ary::idl::Type_id   i_type ) const;
93     bool                IsBuiltInOrRelated(
94                             const ary::idl::Type &
95                                                 i_type ) const;
96     bool                Search_Ce(
97                             StringVector &      o_module,
98                             String &            o_mainEntity,
99                             String &            o_memberEntity,
100                             const char *        i_sText,
101                             const ary::idl::Module &
102                                                 i_referingScope ) const;
103     bool                Search_CesModule(
104                             StringVector &      o_module,
105                             const String &      i_scope,
106                             const String &      i_ce,
107                             const ary::idl::Module &
108                                                 i_referingScope ) const;
109     const ary::idl::Module *
110                         Search_Module(
111                             const StringVector &
112                                                 i_nameChain ) const;
113 
114     void                Get_CeText(
115                             StringVector &      o_module,
116                             String &            o_ce,
117                             String &            o_member,
118                             const ary::idl::CodeEntity &
119                                                 i_ce ) const;
120     void                Get_TypeText(
121                             StringVector &      o_module,
122                             String &            o_sCe,
123                             ary::idl::Ce_id  &  o_nCe,
124                             int &               o_sequenceCount,
125                             const ary::idl::Type &
126                                                 i_type ) const;
127     void                Get_IndexData(
128                             std::vector<ary::idl::Ce_id> &
129                                                 o_data,
130                             ary::idl::alphabetical_index::E_Letter
131                                                 i_letter ) const;
132 
133     const ary::idl::CePilot &
134                         Ces() const;
135   private:
136     const ary::idl::Module *
137                         find_SubModule(
138                             const ary::idl::Module &
139                                                 i_parent,
140                             const String &      i_name ) const;
141 
142     /// Gets "::"-separated names out of a string.
143     bool                nextName(
144                             const char * &      io_TextPtr,
145                             String &            o_name ) const;
146 
147 
148     const ary::idl::Gate &
149                         gate() const;
150     const ary::idl::CePilot &
151                         ces() const;
152     const ary::idl::TypePilot &
153                         types() const;
154     // DATA
155     const ary::idl::Gate &
156                         rGate;
157 };
158 
159 
160 #endif
161 
162 
163