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-- ValueSpecification specializes ParameterableElement to specify that a 47-- value specification can be exposed as a formal template parameter, and 48-- provided as an actual parameter in a binding of a template. 49-- 50-- A value specification is the specification of a (possibly empty) set of 51-- instances, including both objects and data values. 52------------------------------------------------------------------------------ 53with AMF.UML.Packageable_Elements; 54limited with AMF.UML.Parameterable_Elements; 55with AMF.UML.Typed_Elements; 56 57package AMF.UML.Value_Specifications is 58 59 pragma Preelaborate; 60 61 type UML_Value_Specification is limited interface 62 and AMF.UML.Typed_Elements.UML_Typed_Element 63 and AMF.UML.Packageable_Elements.UML_Packageable_Element; 64 65 type UML_Value_Specification_Access is 66 access all UML_Value_Specification'Class; 67 for UML_Value_Specification_Access'Storage_Size use 0; 68 69 not overriding function Boolean_Value 70 (Self : not null access constant UML_Value_Specification) 71 return AMF.Optional_Boolean is abstract; 72 -- Operation ValueSpecification::booleanValue. 73 -- 74 -- The query booleanValue() gives a single Boolean value when one can be 75 -- computed. 76 77 not overriding function Integer_Value 78 (Self : not null access constant UML_Value_Specification) 79 return AMF.Optional_Integer is abstract; 80 -- Operation ValueSpecification::integerValue. 81 -- 82 -- The query integerValue() gives a single Integer value when one can be 83 -- computed. 84 85 overriding function Is_Compatible_With 86 (Self : not null access constant UML_Value_Specification; 87 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 88 return Boolean is abstract; 89 -- Operation ValueSpecification::isCompatibleWith. 90 -- 91 -- The query isCompatibleWith() determines if this parameterable element 92 -- is compatible with the specified parameterable element. By default 93 -- parameterable element P is compatible with parameterable element Q if 94 -- the kind of P is the same or a subtype as the kind of Q. In addition, 95 -- for ValueSpecification, the type must be conformant with the type of 96 -- the specified parameterable element. 97 98 not overriding function Is_Computable 99 (Self : not null access constant UML_Value_Specification) 100 return Boolean is abstract; 101 -- Operation ValueSpecification::isComputable. 102 -- 103 -- The query isComputable() determines whether a value specification can 104 -- be computed in a model. This operation cannot be fully defined in OCL. 105 -- A conforming implementation is expected to deliver true for this 106 -- operation for all value specifications that it can compute, and to 107 -- compute all of those for which the operation is true. A conforming 108 -- implementation is expected to be able to compute the value of all 109 -- literals. 110 111 not overriding function Is_Null 112 (Self : not null access constant UML_Value_Specification) 113 return Boolean is abstract; 114 -- Operation ValueSpecification::isNull. 115 -- 116 -- The query isNull() returns true when it can be computed that the value 117 -- is null. 118 119 not overriding function Real_Value 120 (Self : not null access constant UML_Value_Specification) 121 return AMF.Optional_Real is abstract; 122 -- Operation ValueSpecification::realValue. 123 -- 124 -- The query realValue() gives a single Real value when one can be 125 -- computed. 126 127 not overriding function String_Value 128 (Self : not null access constant UML_Value_Specification) 129 return AMF.Optional_String is abstract; 130 -- Operation ValueSpecification::stringValue. 131 -- 132 -- The query stringValue() gives a single String value when one can be 133 -- computed. 134 135 not overriding function Unlimited_Value 136 (Self : not null access constant UML_Value_Specification) 137 return AMF.Optional_Unlimited_Natural is abstract; 138 -- Operation ValueSpecification::unlimitedValue. 139 -- 140 -- The query unlimitedValue() gives a single UnlimitedNatural value when 141 -- one can be computed. 142 143end AMF.UML.Value_Specifications; 144