xref: /trunk/main/autodoc/inc/ary/cpp/c_enum.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_CPP_C_ENUM_HXX
29 #define ARY_CPP_C_ENUM_HXX
30 
31 
32 
33 // USED SERVICES
34 	// BASE CLASSES
35 #include <ary/cpp/c_ce.hxx>
36 #include <ary/arygroup.hxx>
37 	// OTHER
38 #include <ary/cessentl.hxx>
39 #include <ary/cpp/c_types4cpp.hxx>
40 #include <ary/sequentialids.hxx>
41 
42 
43 
44 
45 
46 namespace ary
47 {
48 namespace cpp
49 {
50 
51 
52 /** A C++ enum declaration.
53 */
54 class Enum : public CodeEntity,
55              public AryGroup
56 {
57   public:
58     enum E_ClassId { class_id = 1002 };
59 
60     enum E_Slots
61     {
62         SLOT_Values = 1
63     };
64 
65     // LIFECYCLE
66                         Enum(
67                             const String  &     i_sLocalName,
68                             Ce_id               i_nOwner,
69                             E_Protection        i_eProtection,
70                             Lid                 i_nFile );
71                         ~Enum();
72 
73 	// OPERATIONS
74 	void				Add_Value(
75 							Ce_id               i_nId );
76 
77     // INQUIRY
78     E_Protection        Protection() const      { return eProtection; }
79 
80   private:
81     // Interface csv::ConstProcessorClient
82     virtual void        do_Accept(
83                             csv::ProcessorIfc & io_processor ) const;
84 
85     // Interface ary::cpp::CodeEntity
86 	virtual const String  &
87                         inq_LocalName() const;
88 	virtual Cid         inq_Owner() const;
89 	virtual Lid			inq_Location() const;
90 
91     // Interface ary::cpp::CppEntity
92     virtual ClassId     get_AryClass() const;
93 
94     // Interface ary::AryGroup
95 	virtual Gid 		inq_Id_Group() const;
96     virtual const cpp::CppEntity &
97                         inq_RE_Group() const;
98 	virtual const group::SlotList &
99                         inq_Slots() const;
100     virtual DYN Slot *  inq_Create_Slot(
101                             SlotAccessId        i_nSlot ) const;
102 
103     // DATA
104    	CeEssentials		aEssentials;
105     SequentialIds<Ce_id>
106                         aValues;
107 	E_Protection		eProtection;
108 };
109 
110 
111 
112 
113 
114 }   // namespace cpp
115 }   // namespace ary
116 #endif
117