xref: /AOO41X/main/xml2cmp/source/xcd/xmltree.hxx (revision 8809db7a87f97847b57a57f4cd2b0104b2b83182)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef X2C_XMLTREE_HXX
25 #define X2C_XMLTREE_HXX
26 
27 
28 
29 // USED SERVICES
30     // BASE CLASSES
31 #include "xmlelem.hxx"
32     // COMPONENTS
33 #include "../support/sistr.hxx"
34 #include "../support/list.hxx"
35     // PARAMETERS
36 
37 
38 class CompDescrList;
39 
40 class ModuleDescription : public SequenceElement
41 {
42   public:
43                         ModuleDescription();
44 
45     const Simstr &      ModuleName() const;
46     void                Get_SupportedServices(    /// @return also the children of component-description.
47                             List< const MultipleTextElement * > &
48                                                 o_rServices ) const;
49     void                Get_Types(
50                             List< const MultipleTextElement * > &
51                                                 o_rTypes ) const;
52     void                Get_ServiceDependencies(
53                             List< const MultipleTextElement * > &
54                                                 o_rServices ) const;
55   private:
56     SglTextElement *    pModuleName;
57     CompDescrList *     pCdList;
58     MultipleTextElement *
59                         pTypes;
60     MultipleTextElement *
61                         pServiceDependencies;
62 };
63 
64 
65 class ComponentDescription : public SequenceElement
66 {
67   public:
68                         ComponentDescription();
69 
70     const Simstr &      ComponentName() const   { return pComponentName->Data(); }
71     const MultipleTextElement &
72                         SupportedServices() const
73                                                 { return *pSupportedServices; }
74     const MultipleTextElement &
75                         Types() const           { return *pTypes; }
76     const MultipleTextElement &
77                         ServiceDependencies() const
78                                                 { return *pServiceDependencies; }
79   private:
80     SglTextElement *    pComponentName;
81     MultipleTextElement *
82                         pSupportedServices;
83     MultipleTextElement *
84                         pTypes;
85     MultipleTextElement *
86                         pServiceDependencies;
87 };
88 
89 class CompDescrList : public ListElement
90 {
91   public:
92                         CompDescrList();
93     virtual void        Write2Html(
94                             HtmlCreator &       io_rHC ) const;
95     virtual XmlElement *
96                         Create_and_Add_NewElement();
97 
98     void                Get_SupportedServices(
99                             List< const MultipleTextElement * > &
100                                                 o_rResult ) const;
101     void                Get_Types(
102                             List< const MultipleTextElement * > &
103                                                 o_rResult ) const;
104     void                Get_ServiceDependencies(
105                             List< const MultipleTextElement * > &
106                                                 o_rResult ) const;
107   private:
108     List< ComponentDescription * >
109                         aCDs;
110 };
111 
112 class MdName : public SglTextElement
113 {
114   public:
115                         MdName();
116     virtual void        Write2Html(
117                             HtmlCreator &       io_rHC ) const;
118 };
119 
120 class CdName : public SglTextElement
121 {
122   public:
123                         CdName();
124     virtual void        Write2Html(
125                             HtmlCreator &       io_rHC ) const;
126 };
127 
128 class SupportedService : public MultipleTextElement
129 {
130   public:
131                         SupportedService();
132 
133     virtual void        Insert2Index(
134                             Index &             o_rIndex ) const;
135 };
136 
137 
138 // IMPLEMENTATION
139 
140 
141 #endif
142 
143