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_HFIDMAIN_HXX
29 #define ADC_DISPLAY_HFIDMAIN_HXX
30 
31 
32 
33 // USED SERVICES
34     // BASE CLASSES
35 #include <cosv/tpl/processor.hxx>
36     // COMPONENTS
37 #include "hi_factory.hxx"
38     // PARAMETERS
39 
40 
41 class HtmlEnvironment_Idl;
42 class HtmlFactory_Idl;
43 class DocuFile_Html;
44 
45 namespace ary
46 {
47 namespace idl
48 {
49 
50     class Module;
51     class Service;
52     class SglIfcService;
53     class Interface;
54     class Struct;
55     class Exception;
56     class Enum;
57     class Typedef;
58     class ConstantsGroup;
59     class Singleton;
60     class SglIfcSingleton;
61 
62 }   // namespace idl
63 }   // namespace ary
64 
65 
66 class MainDisplay_Idl : public csv::ProcessorIfc,
67                         public csv::ConstProcessor<ary::idl::Module>,
68                         public csv::ConstProcessor<ary::idl::Service>,
69                         public csv::ConstProcessor<ary::idl::SglIfcService>,
70                         public csv::ConstProcessor<ary::idl::Interface>,
71                         public csv::ConstProcessor<ary::idl::Struct>,
72                         public csv::ConstProcessor<ary::idl::Exception>,
73                         public csv::ConstProcessor<ary::idl::Enum>,
74                         public csv::ConstProcessor<ary::idl::Typedef>,
75                         public csv::ConstProcessor<ary::idl::ConstantsGroup>,
76                         public csv::ConstProcessor<ary::idl::Singleton>,
77                         public csv::ConstProcessor<ary::idl::SglIfcSingleton>
78 {
79   public:
80                         MainDisplay_Idl(
81                             HtmlEnvironment_Idl &
82                                                 io_rEnv );
83     virtual             ~MainDisplay_Idl();
84 
85     void                WriteGlobalIndices();
86 
87     void                Display_NamedEntityHierarchy();
88 
89   private:
90     // Interface csv::ProcessorIfc:
91     virtual void        do_Process(
92                             const ary::idl::Module  &     i_client );
93     virtual void        do_Process(
94                             const ary::idl::Service &     i_client );
95     virtual void        do_Process(
96                             const ary::idl::SglIfcService &
97                                                           i_client );
98     virtual void        do_Process(
99                             const ary::idl::Interface &   i_client );
100     virtual void        do_Process(
101                             const ary::idl::Struct  &     i_client );
102     virtual void        do_Process(
103                             const ary::idl::Exception &   i_client );
104     virtual void        do_Process(
105                             const ary::idl::Enum &        i_client );
106     virtual void        do_Process(
107                             const ary::idl::Typedef &     i_client );
108     virtual void        do_Process(
109                             const ary::idl::ConstantsGroup &
110                                                 i_client );
111     virtual void        do_Process(
112                             const ary::idl::Singleton &   i_client );
113     virtual void        do_Process(
114                             const ary::idl::SglIfcSingleton &
115                                                 i_client );
116     // Locals
117     void                do_ServiceDescr(
118                             const ary::idl::CodeEntity &
119                                                 i_rData );
120     void                do_SglIfcServiceDescr(
121                             const ary::idl::CodeEntity &
122                                                 i_rData );
123     void                do_InterfaceDescr(
124                             const ary::idl::CodeEntity &
125                                                 i_rData );
126     void                do_StructDescr(
127                             const ary::idl::CodeEntity &
128                                                 i_rData );
129     void                do_ExceptionDescr(
130                             const ary::idl::CodeEntity &
131                                                 i_rData );
132     void                do_EnumDescr(
133                             const ary::idl::CodeEntity &
134                                                 i_rData );
135     void                do_TypedefDescr(
136                             const ary::idl::CodeEntity &
137                                                 i_rData );
138     void                do_SingletonDescr(
139                             const ary::idl::CodeEntity &
140                                                 i_rData );
141     void                do_Service2s(
142                             const ary::idl::CodeEntity &
143                                                 i_rData );
144     void                do_Interface2s(
145                             const ary::idl::CodeEntity &
146                                                 i_rData );
147     void                do_Struct2s(
148                             const ary::idl::CodeEntity &
149                                                 i_rData );
150     void                do_Exception2s(
151                             const ary::idl::CodeEntity &
152                                                 i_rData );
153     void                do_Enum2s(
154                             const ary::idl::CodeEntity &
155                                                 i_rData );
156     void                do_Typedef2s(
157                             const ary::idl::CodeEntity &
158                                                 i_rData );
159     void                do_Singleton2s(
160                             const ary::idl::CodeEntity &
161                                                 i_rData );
162 
163     const HtmlEnvironment_Idl &
164                         Env() const             { return *pEnv; }
165     HtmlEnvironment_Idl &
166                         Env()                   { return *pEnv; }
167     Xml::Element &      CurHtmlOut()            { return pCurFactory->CurOut(); }
168 
169     // DATA
170     HtmlEnvironment_Idl *
171                         pEnv;
172     Dyn<DocuFile_Html>  pMyFile;
173     HtmlFactory_Idl *   pCurFactory;
174 };
175 
176 
177 
178 #endif
179