1------------------------------------------------------------------------------ 2-- -- 3-- Matreshka Project -- 4-- -- 5-- Ada Modeling Framework -- 6-- -- 7-- Runtime Library Component -- 8-- -- 9------------------------------------------------------------------------------ 10-- -- 11-- Copyright © 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: 2846 $ $Date: 2012-04-12 22:11:45 +0400 (Thu, 12 Apr 2012) $ 43------------------------------------------------------------------------------ 44-- This file is generated, don't edit it. 45------------------------------------------------------------------------------ 46with AMF.Internals.Elements; 47with AMF.Internals.Helpers; 48with AMF.Internals.Links; 49with AMF.Internals.Tables.Primitive_Types_Metamodel; 50 51package body AMF.Internals.Factories.Primitive_Types_Factories is 52 53 function Convert_Boolean_To_String 54 (Value : League.Holders.Holder) return League.Strings.Universal_String 55 is separate; 56 57 function Create_Boolean_From_String 58 (Image : League.Strings.Universal_String) return League.Holders.Holder 59 is separate; 60 61 function Convert_Integer_To_String 62 (Value : League.Holders.Holder) return League.Strings.Universal_String 63 is separate; 64 65 function Create_Integer_From_String 66 (Image : League.Strings.Universal_String) return League.Holders.Holder 67 is separate; 68 69 function Convert_Real_To_String 70 (Value : League.Holders.Holder) return League.Strings.Universal_String 71 is separate; 72 73 function Create_Real_From_String 74 (Image : League.Strings.Universal_String) return League.Holders.Holder 75 is separate; 76 77 function Convert_String_To_String 78 (Value : League.Holders.Holder) return League.Strings.Universal_String 79 is separate; 80 81 function Create_String_From_String 82 (Image : League.Strings.Universal_String) return League.Holders.Holder 83 is separate; 84 85 function Convert_Unlimited_Natural_To_String 86 (Value : League.Holders.Holder) return League.Strings.Universal_String 87 is separate; 88 89 function Create_Unlimited_Natural_From_String 90 (Image : League.Strings.Universal_String) return League.Holders.Holder 91 is separate; 92 93 ----------------- 94 -- Constructor -- 95 ----------------- 96 97 function Constructor 98 (Extent : AMF.Internals.AMF_Extent) 99 return not null AMF.Factories.Factory_Access is 100 begin 101 return new Primitive_Types_Factory'(Extent => Extent); 102 end Constructor; 103 104 ----------------------- 105 -- Convert_To_String -- 106 ----------------------- 107 108 overriding function Convert_To_String 109 (Self : not null access Primitive_Types_Factory; 110 Data_Type : not null access AMF.CMOF.Data_Types.CMOF_Data_Type'Class; 111 Value : League.Holders.Holder) return League.Strings.Universal_String 112 is 113 pragma Unreferenced (Self); 114 115 DT : constant AMF.Internals.CMOF_Element 116 := AMF.Internals.Elements.Element_Base'Class (Data_Type.all).Element; 117 118 begin 119 if DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Boolean then 120 return Convert_Boolean_To_String (Value); 121 122 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Integer then 123 return Convert_Integer_To_String (Value); 124 125 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Real then 126 return Convert_Real_To_String (Value); 127 128 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_String then 129 return Convert_String_To_String (Value); 130 131 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Unlimited_Natural then 132 return Convert_Unlimited_Natural_To_String (Value); 133 134 else 135 raise Program_Error; 136 end if; 137 end Convert_To_String; 138 139 ------------ 140 -- Create -- 141 ------------ 142 143 overriding function Create 144 (Self : not null access Primitive_Types_Factory; 145 Meta_Class : not null access AMF.CMOF.Classes.CMOF_Class'Class) 146 return not null AMF.Elements.Element_Access is 147 begin 148 raise Program_Error; 149 return null; 150 end Create; 151 152 ------------------------ 153 -- Create_From_String -- 154 ------------------------ 155 156 overriding function Create_From_String 157 (Self : not null access Primitive_Types_Factory; 158 Data_Type : not null access AMF.CMOF.Data_Types.CMOF_Data_Type'Class; 159 Image : League.Strings.Universal_String) return League.Holders.Holder 160 is 161 pragma Unreferenced (Self); 162 163 use type League.Strings.Universal_String; 164 165 DT : constant AMF.Internals.CMOF_Element 166 := AMF.Internals.Elements.Element_Base'Class (Data_Type.all).Element; 167 168 begin 169 if DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Boolean then 170 return Create_Boolean_From_String (Image); 171 172 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Integer then 173 return Create_Integer_From_String (Image); 174 175 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Real then 176 return Create_Real_From_String (Image); 177 178 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_String then 179 return Create_String_From_String (Image); 180 181 elsif DT = AMF.Internals.Tables.Primitive_Types_Metamodel.MC_Primitive_Types_Unlimited_Natural then 182 return Create_Unlimited_Natural_From_String (Image); 183 184 else 185 raise Program_Error; 186 end if; 187 end Create_From_String; 188 189 ----------------- 190 -- Create_Link -- 191 ----------------- 192 193 overriding function Create_Link 194 (Self : not null access Primitive_Types_Factory; 195 Association : 196 not null access AMF.CMOF.Associations.CMOF_Association'Class; 197 First_Element : not null AMF.Elements.Element_Access; 198 Second_Element : not null AMF.Elements.Element_Access) 199 return not null AMF.Links.Link_Access 200 is 201 pragma Unreferenced (Self); 202 203 begin 204 return 205 AMF.Internals.Links.Proxy 206 (AMF.Internals.Links.Create_Link 207 (AMF.Internals.Elements.Element_Base'Class 208 (Association.all).Element, 209 AMF.Internals.Helpers.To_Element (First_Element), 210 AMF.Internals.Helpers.To_Element (Second_Element))); 211 end Create_Link; 212 213 ----------------- 214 -- Get_Package -- 215 ----------------- 216 217 overriding function Get_Package 218 (Self : not null access constant Primitive_Types_Factory) 219 return AMF.CMOF.Packages.Collections.Set_Of_CMOF_Package 220 is 221 pragma Unreferenced (Self); 222 223 begin 224 return Result : AMF.CMOF.Packages.Collections.Set_Of_CMOF_Package do 225 Result.Add (Get_Package); 226 end return; 227 end Get_Package; 228 229 ----------------- 230 -- Get_Package -- 231 ----------------- 232 233 function Get_Package return not null AMF.CMOF.Packages.CMOF_Package_Access is 234 begin 235 return 236 AMF.CMOF.Packages.CMOF_Package_Access 237 (AMF.Internals.Helpers.To_Element 238 (AMF.Internals.Tables.Primitive_Types_Metamodel.MM_Primitive_Types_Primitive_Types)); 239 end Get_Package; 240 241end AMF.Internals.Factories.Primitive_Types_Factories; 242