1------------------------------------------------------------------------------ 2-- -- 3-- Matreshka Project -- 4-- -- 5-- Ada Modeling Framework -- 6-- -- 7-- Runtime Library Component -- 8-- -- 9------------------------------------------------------------------------------ 10-- -- 11-- Copyright © 2011, Vadim Godunko <vgodunko@gmail.com> -- 12-- All rights reserved. -- 13-- -- 14-- Redistribution and use in source and binary forms, with or without -- 15-- modification, are permitted provided that the following conditions -- 16-- are met: -- 17-- -- 18-- * Redistributions of source code must retain the above copyright -- 19-- notice, this list of conditions and the following disclaimer. -- 20-- -- 21-- * Redistributions in binary form must reproduce the above copyright -- 22-- notice, this list of conditions and the following disclaimer in the -- 23-- documentation and/or other materials provided with the distribution. -- 24-- -- 25-- * Neither the name of the Vadim Godunko, IE nor the names of its -- 26-- contributors may be used to endorse or promote products derived from -- 27-- this software without specific prior written permission. -- 28-- -- 29-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -- 30-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -- 31-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -- 32-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -- 33-- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -- 34-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -- 35-- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -- 36-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -- 37-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -- 38-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- 39-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- 40-- -- 41------------------------------------------------------------------------------ 42-- $Revision: 2324 $ $Date: 2011-12-03 13:24:03 +0400 (Sat, 03 Dec 2011) $ 43------------------------------------------------------------------------------ 44-- This file is generated, don't edit it. 45------------------------------------------------------------------------------ 46-- A classifier is a classification of instances - it describes a set of 47-- instances that have features in common. A classifier can specify a 48-- generalization hierarchy by referencing its general classifiers. 49------------------------------------------------------------------------------ 50limited with AMF.CMOF.Classifiers.Collections; 51limited with AMF.CMOF.Features.Collections; 52limited with AMF.CMOF.Named_Elements.Collections; 53with AMF.CMOF.Namespaces; 54limited with AMF.CMOF.Properties.Collections; 55with AMF.CMOF.Types; 56 57package AMF.CMOF.Classifiers is 58 59 pragma Preelaborate; 60 61 type CMOF_Classifier is limited interface 62 and AMF.CMOF.Namespaces.CMOF_Namespace 63 and AMF.CMOF.Types.CMOF_Type; 64 65 type CMOF_Classifier_Access is 66 access all CMOF_Classifier'Class; 67 for CMOF_Classifier_Access'Storage_Size use 0; 68 69 not overriding function Get_Attribute 70 (Self : not null access constant CMOF_Classifier) 71 return AMF.CMOF.Properties.Collections.Set_Of_CMOF_Property is abstract; 72 -- Getter of Classifier::attribute. 73 -- 74 -- Refers to all of the Properties that are direct (i.e. not inherited or 75 -- imported) attributes of the classifier. 76 77 not overriding function Get_Feature 78 (Self : not null access constant CMOF_Classifier) 79 return AMF.CMOF.Features.Collections.Set_Of_CMOF_Feature is abstract; 80 -- Getter of Classifier::feature. 81 -- 82 -- Note that there may be members of the Classifier that are of the type 83 -- Feature but are not included in this association, e.g. inherited 84 -- features. 85 86 not overriding function Get_General 87 (Self : not null access constant CMOF_Classifier) 88 return AMF.CMOF.Classifiers.Collections.Set_Of_CMOF_Classifier is abstract; 89 -- Getter of Classifier::general. 90 -- 91 -- References the general classifier in the Generalization relationship. 92 93 not overriding function Get_Inherited_Member 94 (Self : not null access constant CMOF_Classifier) 95 return AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element is abstract; 96 -- Getter of Classifier::inheritedMember. 97 -- 98 -- Specifies all elements inherited by this classifier from the general 99 -- classifiers. 100 101 not overriding function Get_Is_Final_Specialization 102 (Self : not null access constant CMOF_Classifier) 103 return Boolean is abstract; 104 -- Getter of Classifier::isFinalSpecialization. 105 -- 106 -- If true, the Classifier cannot be specialized by generalization. Note 107 -- that this property is preserved through package merge operations; that 108 -- is, the capability to specialize a Classifier (i.e., 109 -- isFinalSpecialization =false) must be preserved in the resulting 110 -- Classifier of a package merge operation where a Classifier with 111 -- isFinalSpecialization =false is merged with a matching Classifier with 112 -- isFinalSpecialization =true: the resulting Classifier will have 113 -- isFinalSpecialization =false. 114 115 not overriding procedure Set_Is_Final_Specialization 116 (Self : not null access CMOF_Classifier; 117 To : Boolean) is abstract; 118 -- Setter of Classifier::isFinalSpecialization. 119 -- 120 -- If true, the Classifier cannot be specialized by generalization. Note 121 -- that this property is preserved through package merge operations; that 122 -- is, the capability to specialize a Classifier (i.e., 123 -- isFinalSpecialization =false) must be preserved in the resulting 124 -- Classifier of a package merge operation where a Classifier with 125 -- isFinalSpecialization =false is merged with a matching Classifier with 126 -- isFinalSpecialization =true: the resulting Classifier will have 127 -- isFinalSpecialization =false. 128 129 not overriding function Conforms_To 130 (Self : not null access constant CMOF_Classifier; 131 Other : AMF.CMOF.Classifiers.CMOF_Classifier_Access) 132 return Boolean is abstract; 133 -- Operation Classifier::conformsTo. 134 -- 135 -- The query conformsTo() gives true for a classifier that defines a type 136 -- that conforms to another. This is used, for example, in the 137 -- specification of signature conformance for operations. 138 139 not overriding function All_Features 140 (Self : not null access constant CMOF_Classifier) 141 return AMF.CMOF.Features.Collections.Set_Of_CMOF_Feature is abstract; 142 -- Operation Classifier::allFeatures. 143 -- 144 -- The query allFeatures() gives all of the features in the namespace of 145 -- the classifier. In general, through mechanisms such as inheritance, 146 -- this will be a larger set than feature. 147 148 not overriding function General 149 (Self : not null access constant CMOF_Classifier) 150 return AMF.CMOF.Classifiers.Collections.Set_Of_CMOF_Classifier is abstract; 151 -- Operation Classifier::general. 152 -- 153 -- The general classifiers are the classifiers referenced by the 154 -- generalization relationships. 155 156 not overriding function Parents 157 (Self : not null access constant CMOF_Classifier) 158 return AMF.CMOF.Classifiers.Collections.Set_Of_CMOF_Classifier is abstract; 159 -- Operation Classifier::parents. 160 -- 161 -- The query parents() gives all of the immediate ancestors of a 162 -- generalized Classifier. 163 164 not overriding function Inherited_Member 165 (Self : not null access constant CMOF_Classifier) 166 return AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element is abstract; 167 -- Operation Classifier::inheritedMember. 168 -- 169 -- The inheritedMember association is derived by inheriting the 170 -- inheritable members of the parents. 171 172 not overriding function All_Parents 173 (Self : not null access constant CMOF_Classifier) 174 return AMF.CMOF.Classifiers.Collections.Set_Of_CMOF_Classifier is abstract; 175 -- Operation Classifier::allParents. 176 -- 177 -- The query allParents() gives all of the direct and indirect ancestors 178 -- of a generalized Classifier. 179 180 not overriding function Inheritable_Members 181 (Self : not null access constant CMOF_Classifier; 182 C : AMF.CMOF.Classifiers.CMOF_Classifier_Access) 183 return AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element is abstract; 184 -- Operation Classifier::inheritableMembers. 185 -- 186 -- The query inheritableMembers() gives all of the members of a classifier 187 -- that may be inherited in one of its descendants, subject to whatever 188 -- visibility restrictions apply. 189 190 not overriding function Has_Visibility_Of 191 (Self : not null access constant CMOF_Classifier; 192 N : AMF.CMOF.Named_Elements.CMOF_Named_Element_Access) 193 return Boolean is abstract; 194 -- Operation Classifier::hasVisibilityOf. 195 -- 196 -- The query hasVisibilityOf() determines whether a named element is 197 -- visible in the classifier. By default all are visible. It is only 198 -- called when the argument is something owned by a parent. 199 200 not overriding function Inherit 201 (Self : not null access constant CMOF_Classifier; 202 Inhs : AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element) 203 return AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element is abstract; 204 -- Operation Classifier::inherit. 205 -- 206 -- The inherit operation is overridden to exclude redefined properties. 207 208 not overriding function May_Specialize_Type 209 (Self : not null access constant CMOF_Classifier; 210 C : AMF.CMOF.Classifiers.CMOF_Classifier_Access) 211 return Boolean is abstract; 212 -- Operation Classifier::maySpecializeType. 213 -- 214 -- The query maySpecializeType() determines whether this classifier may 215 -- have a generalization relationship to classifiers of the specified 216 -- type. By default a classifier may specialize classifiers of the same or 217 -- a more general type. It is intended to be redefined by classifiers that 218 -- have different specialization constraints. 219 220end AMF.CMOF.Classifiers; 221