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 ADC_DISPLAY_HFI_PROPERTY_HXX
25 #define ADC_DISPLAY_HFI_PROPERTY_HXX
26 
27 
28 
29 // USED SERVICES
30     // BASE CLASSES
31 #include "hi_factory.hxx"
32     // COMPONENTS
33     // PARAMETERS
34 #include <ary/idl/i_comrela.hxx>
35 
36 class HF_SubTitleTable;
37 
38 class HF_IdlDataMember : public HtmlFactory_Idl
39 {
40   public:
41     void                Produce_byData(
42                             const client &      ce ) const;
43   protected:
44                         HF_IdlDataMember(
45                             Environment &       io_rEnv,
46                             HF_SubTitleTable &  o_table );
~HF_IdlDataMember()47     virtual             ~HF_IdlDataMember() {}
48 
49   private:
50     virtual void        write_Title(
51                             const client &      i_ce ) const;
52 
53     virtual void        write_Declaration(
54                             const client &      i_ce ) const = 0;
55 
56     virtual void        write_Description(
57                             const client &      i_ce ) const;
58 
59     void                enter_ContentCell() const;
60     void                leave_ContentCell() const;
61 };
62 
63 
64 
65 class HF_IdlProperty : public HF_IdlDataMember
66 {
67   public:
HF_IdlProperty(Environment & io_rEnv,HF_SubTitleTable & o_table)68                         HF_IdlProperty(
69                             Environment &       io_rEnv,
70                             HF_SubTitleTable &  o_table )
71                             :   HF_IdlDataMember(io_rEnv, o_table) {}
72     virtual             ~HF_IdlProperty();
73   private:
74     virtual void        write_Declaration(
75                             const client &      i_ce ) const;
76 };
77 
78 class HF_IdlAttribute : public HF_IdlDataMember
79 {
80   public:
HF_IdlAttribute(Environment & io_rEnv,HF_SubTitleTable & o_table)81                         HF_IdlAttribute(
82                             Environment &       io_rEnv,
83                             HF_SubTitleTable &  o_table )
84                             :   HF_IdlDataMember(io_rEnv, o_table) {}
85     virtual             ~HF_IdlAttribute();
86 
87   private:
88     virtual void        write_Declaration(
89                             const client &      i_ce ) const;
90 };
91 
92 
93 class HF_IdlEnumValue : public HF_IdlDataMember
94 {
95   public:
HF_IdlEnumValue(Environment & io_rEnv,HF_SubTitleTable & o_table)96                         HF_IdlEnumValue(
97                             Environment &       io_rEnv,
98                             HF_SubTitleTable &  o_table )
99                             :   HF_IdlDataMember(io_rEnv, o_table) {}
100     virtual             ~HF_IdlEnumValue();
101 
102   private:
103     virtual void        write_Declaration(
104                             const client &      i_ce ) const;
105 };
106 
107 class HF_IdlConstant : public HF_IdlDataMember
108 {
109   public:
HF_IdlConstant(Environment & io_rEnv,HF_SubTitleTable & o_table)110                         HF_IdlConstant(
111                             Environment &       io_rEnv,
112                             HF_SubTitleTable &  o_table )
113                             :   HF_IdlDataMember(io_rEnv, o_table) {}
114     virtual             ~HF_IdlConstant();
115 
116   private:
117     virtual void        write_Declaration(
118                             const client &      i_ce ) const;
119 };
120 
121 
122 class HF_IdlStructElement : public HF_IdlDataMember
123 {
124   public:
HF_IdlStructElement(Environment & io_rEnv,HF_SubTitleTable & o_table)125                         HF_IdlStructElement(
126                             Environment &       io_rEnv,
127                             HF_SubTitleTable &  o_table )
128                             :   HF_IdlDataMember(io_rEnv, o_table) {}
129     virtual             ~HF_IdlStructElement();
130 
131   private:
132     virtual void        write_Declaration(
133                             const client &      i_ce ) const;
134 };
135 
136 class HF_IdlCommentedRelationElement : public HF_IdlDataMember
137 {
138   public:
HF_IdlCommentedRelationElement(Environment & io_rEnv,HF_SubTitleTable & o_table,const ary::idl::CommentedRelation & i_relation)139                         HF_IdlCommentedRelationElement(
140                             Environment &                       io_rEnv,
141                             HF_SubTitleTable &                  o_table,
142                             const ary::idl::CommentedRelation&  i_relation )
143                             :   HF_IdlDataMember(io_rEnv, o_table)
144                             ,   m_relation( i_relation )
145                         {
146                         }
147     virtual             ~HF_IdlCommentedRelationElement();
148 
149     typedef ::ary::idl::CommentedRelation       comref;
150 
151     static void         produce_LinkDoc(
152                             Environment &   io_env,
153                             const client &  i_ce,
154                             Xml::Element &  io_context,
155                             const comref &  i_commentedRef,
156                             const E_DocType i_docType );
157 
158   private:
159     virtual void        write_Title(
160                             const client &      i_ce ) const;
161     virtual void        write_Declaration(
162                             const client &      i_ce ) const;
163     virtual void        write_Description(
164                             const client &      i_ce ) const;
165   private:
166     static void         produce_Summary( Environment &  io_env,
167                                          Xml::Element & io_context,
168                                          const comref & i_commentedRef,
169 									     const client & i_rScopeGivingCe );
170 
171     static String       get_LocalLinkName( Environment &  io_env,
172                                            const comref & i_commentedRef );
173 
174   private:
175     const ary::idl::CommentedRelation&  m_relation;
176 };
177 
178 #endif
179