1------------------------------------------------------------------------------ 2-- -- 3-- Matreshka Project -- 4-- -- 5-- Ada Modeling Framework -- 6-- -- 7-- Runtime Library Component -- 8-- -- 9------------------------------------------------------------------------------ 10-- -- 11-- Copyright © 2011-2012, 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: 2714 $ $Date: 2012-03-24 10:29:08 +0400 (Sat, 24 Mar 2012) $ 43------------------------------------------------------------------------------ 44-- This file is generated, don't edit it. 45------------------------------------------------------------------------------ 46-- A multiplicity is a definition of an inclusive interval of non-negative 47-- integers beginning with a lower bound and ending with a (possibly 48-- infinite) upper bound. A multiplicity element embeds this information to 49-- specify the allowable cardinalities for an instantiation of this element. 50------------------------------------------------------------------------------ 51with AMF.UML.Elements; 52limited with AMF.UML.Value_Specifications; 53 54package AMF.UML.Multiplicity_Elements is 55 56 pragma Preelaborate; 57 58 type UML_Multiplicity_Element is limited interface 59 and AMF.UML.Elements.UML_Element; 60 61 type UML_Multiplicity_Element_Access is 62 access all UML_Multiplicity_Element'Class; 63 for UML_Multiplicity_Element_Access'Storage_Size use 0; 64 65 not overriding function Get_Is_Ordered 66 (Self : not null access constant UML_Multiplicity_Element) 67 return Boolean is abstract; 68 -- Getter of MultiplicityElement::isOrdered. 69 -- 70 -- For a multivalued multiplicity, this attribute specifies whether the 71 -- values in an instantiation of this element are sequentially ordered. 72 73 not overriding procedure Set_Is_Ordered 74 (Self : not null access UML_Multiplicity_Element; 75 To : Boolean) is abstract; 76 -- Setter of MultiplicityElement::isOrdered. 77 -- 78 -- For a multivalued multiplicity, this attribute specifies whether the 79 -- values in an instantiation of this element are sequentially ordered. 80 81 not overriding function Get_Is_Unique 82 (Self : not null access constant UML_Multiplicity_Element) 83 return Boolean is abstract; 84 -- Getter of MultiplicityElement::isUnique. 85 -- 86 -- For a multivalued multiplicity, this attributes specifies whether the 87 -- values in an instantiation of this element are unique. 88 89 not overriding procedure Set_Is_Unique 90 (Self : not null access UML_Multiplicity_Element; 91 To : Boolean) is abstract; 92 -- Setter of MultiplicityElement::isUnique. 93 -- 94 -- For a multivalued multiplicity, this attributes specifies whether the 95 -- values in an instantiation of this element are unique. 96 97 not overriding function Get_Lower 98 (Self : not null access constant UML_Multiplicity_Element) 99 return AMF.Optional_Integer is abstract; 100 -- Getter of MultiplicityElement::lower. 101 -- 102 -- Specifies the lower bound of the multiplicity interval. 103 104 not overriding procedure Set_Lower 105 (Self : not null access UML_Multiplicity_Element; 106 To : AMF.Optional_Integer) is abstract; 107 -- Setter of MultiplicityElement::lower. 108 -- 109 -- Specifies the lower bound of the multiplicity interval. 110 111 not overriding function Get_Lower_Value 112 (Self : not null access constant UML_Multiplicity_Element) 113 return AMF.UML.Value_Specifications.UML_Value_Specification_Access is abstract; 114 -- Getter of MultiplicityElement::lowerValue. 115 -- 116 -- The specification of the lower bound for this multiplicity. 117 118 not overriding procedure Set_Lower_Value 119 (Self : not null access UML_Multiplicity_Element; 120 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access) is abstract; 121 -- Setter of MultiplicityElement::lowerValue. 122 -- 123 -- The specification of the lower bound for this multiplicity. 124 125 not overriding function Get_Upper 126 (Self : not null access constant UML_Multiplicity_Element) 127 return AMF.Optional_Unlimited_Natural is abstract; 128 -- Getter of MultiplicityElement::upper. 129 -- 130 -- Specifies the upper bound of the multiplicity interval. 131 132 not overriding procedure Set_Upper 133 (Self : not null access UML_Multiplicity_Element; 134 To : AMF.Optional_Unlimited_Natural) is abstract; 135 -- Setter of MultiplicityElement::upper. 136 -- 137 -- Specifies the upper bound of the multiplicity interval. 138 139 not overriding function Get_Upper_Value 140 (Self : not null access constant UML_Multiplicity_Element) 141 return AMF.UML.Value_Specifications.UML_Value_Specification_Access is abstract; 142 -- Getter of MultiplicityElement::upperValue. 143 -- 144 -- The specification of the upper bound for this multiplicity. 145 146 not overriding procedure Set_Upper_Value 147 (Self : not null access UML_Multiplicity_Element; 148 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access) is abstract; 149 -- Setter of MultiplicityElement::upperValue. 150 -- 151 -- The specification of the upper bound for this multiplicity. 152 153 not overriding function Compatible_With 154 (Self : not null access constant UML_Multiplicity_Element; 155 Other : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access) 156 return Boolean is abstract; 157 -- Operation MultiplicityElement::compatibleWith. 158 -- 159 -- The operation compatibleWith takes another multiplicity as input. It 160 -- checks if one multiplicity is compatible with another. 161 162 not overriding function Includes_Cardinality 163 (Self : not null access constant UML_Multiplicity_Element; 164 C : Integer) 165 return Boolean is abstract; 166 -- Operation MultiplicityElement::includesCardinality. 167 -- 168 -- The query includesCardinality() checks whether the specified 169 -- cardinality is valid for this multiplicity. 170 171 not overriding function Includes_Multiplicity 172 (Self : not null access constant UML_Multiplicity_Element; 173 M : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access) 174 return Boolean is abstract; 175 -- Operation MultiplicityElement::includesMultiplicity. 176 -- 177 -- The query includesMultiplicity() checks whether this multiplicity 178 -- includes all the cardinalities allowed by the specified multiplicity. 179 180 not overriding function Iss 181 (Self : not null access constant UML_Multiplicity_Element; 182 Lowerbound : Integer; 183 Upperbound : Integer) 184 return Boolean is abstract; 185 -- Operation MultiplicityElement::is. 186 -- 187 -- The operation is determines if the upper and lower bound of the ranges 188 -- are the ones given. 189 190 not overriding function Is_Multivalued 191 (Self : not null access constant UML_Multiplicity_Element) 192 return Boolean is abstract; 193 -- Operation MultiplicityElement::isMultivalued. 194 -- 195 -- The query isMultivalued() checks whether this multiplicity has an upper 196 -- bound greater than one. 197 198 not overriding function Lower 199 (Self : not null access constant UML_Multiplicity_Element) 200 return AMF.Optional_Integer is abstract; 201 -- Operation MultiplicityElement::lower. 202 -- 203 -- The derived lower attribute must equal the lowerBound. 204 205 not overriding function Lower_Bound 206 (Self : not null access constant UML_Multiplicity_Element) 207 return AMF.Optional_Integer is abstract; 208 -- Operation MultiplicityElement::lowerBound. 209 -- 210 -- The query lowerBound() returns the lower bound of the multiplicity as 211 -- an integer. 212 213 not overriding function Upper 214 (Self : not null access constant UML_Multiplicity_Element) 215 return AMF.Optional_Unlimited_Natural is abstract; 216 -- Operation MultiplicityElement::upper. 217 -- 218 -- The derived upper attribute must equal the upperBound. 219 220 not overriding function Upper_Bound 221 (Self : not null access constant UML_Multiplicity_Element) 222 return AMF.Optional_Unlimited_Natural is abstract; 223 -- Operation MultiplicityElement::upperBound. 224 -- 225 -- The query upperBound() returns the upper bound of the multiplicity for 226 -- a bounded multiplicity as an unlimited natural. 227 228end AMF.UML.Multiplicity_Elements; 229