diff --git a/src/ocl_library.sml b/src/ocl_library.sml index 1b991c7..77ef834 100644 --- a/src/ocl_library.sml +++ b/src/ocl_library.sml @@ -53,7 +53,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="count", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -63,7 +63,7 @@ val oclLib = arguments=[], isQuery=true, name="notEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -73,7 +73,7 @@ val oclLib = arguments=[], isQuery=true, name="size", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -83,7 +83,7 @@ val oclLib = arguments=[], isQuery=true, name="isEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -93,7 +93,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -103,7 +103,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -113,7 +113,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="~=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -123,7 +123,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="~==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -133,7 +133,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="~=~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -143,7 +143,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="~==~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -153,7 +153,7 @@ val oclLib = arguments=[("s",Sequence(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -163,7 +163,7 @@ val oclLib = arguments=[], isQuery=true, name="flatten", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -173,7 +173,7 @@ val oclLib = arguments=[("object", TemplateParameter "T")], isQuery=true, name="append", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -183,7 +183,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="prepend", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -193,7 +193,7 @@ val oclLib = arguments=[("index",Integer), ("object",TemplateParameter "T")], isQuery=true,name="insertAt", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -203,7 +203,7 @@ val oclLib = arguments=[("lower",Integer), ("upper",Integer)], isQuery=true, - name="subSequence",postcondition=[], + name="subSequence",body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -213,7 +213,7 @@ val oclLib = arguments=[("i",Integer)], isQuery=true, name="at", - postcondition=[], + body=[],postcondition=[], precondition=[], result=TemplateParameter "T", scope=XMI.InstanceScope, @@ -223,7 +223,7 @@ val oclLib = arguments=[("obj",TemplateParameter "T")], isQuery=true, name="indexOf", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -233,7 +233,7 @@ val oclLib = arguments=[], isQuery=true, name="first", - postcondition=[], + body=[],postcondition=[], precondition=[], result=TemplateParameter "T", scope=XMI.InstanceScope, @@ -243,7 +243,7 @@ val oclLib = arguments=[], isQuery=true, name="last", - postcondition=[], + body=[],postcondition=[], precondition=[], result=TemplateParameter "T", scope=XMI.InstanceScope, @@ -253,7 +253,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="including", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -263,7 +263,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="excluding", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -273,7 +273,7 @@ val oclLib = arguments=[], isQuery=true, name="asSet", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -283,7 +283,7 @@ val oclLib = arguments=[], isQuery=true, name="asSequence", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -293,7 +293,7 @@ val oclLib = arguments=[], isQuery=true, name="asBag", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -319,7 +319,7 @@ val oclLib = { arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true,name="=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -329,7 +329,7 @@ val oclLib = arguments=[], isQuery=true, name="size", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -339,7 +339,7 @@ val oclLib = arguments=[], isQuery=true, name="notEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -349,7 +349,7 @@ val oclLib = arguments=[], isQuery=true, name="isEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -359,7 +359,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -369,7 +369,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="~=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -379,7 +379,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="~==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -389,7 +389,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="~=~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -399,7 +399,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="~==~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -409,7 +409,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -419,7 +419,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="intersection", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -429,7 +429,7 @@ val oclLib = arguments=[("set",Set(TemplateParameter "T"))], isQuery=true, name="intersection", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -439,7 +439,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="including", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -449,7 +449,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="excluding", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -459,7 +459,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="count", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -469,7 +469,7 @@ val oclLib = arguments=[], isQuery=true, name="flatten", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -479,7 +479,7 @@ val oclLib = arguments=[], isQuery=true, name="asSet", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -489,7 +489,7 @@ val oclLib = arguments=[], isQuery=true, name="asSequence", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -499,7 +499,7 @@ val oclLib = arguments=[], isQuery=true, name="asBag", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -524,7 +524,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -534,7 +534,7 @@ val oclLib = arguments=[], isQuery=true, name="notEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -544,7 +544,7 @@ val oclLib = arguments=[], isQuery=true, name="size", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -554,7 +554,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -564,7 +564,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -574,7 +574,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -584,7 +584,7 @@ val oclLib = arguments=[], isQuery=true, name="isEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -594,7 +594,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="~=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -604,7 +604,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="~==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -614,7 +614,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="~=~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -624,7 +624,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="~==~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -634,7 +634,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="intersection", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -644,7 +644,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="intersection", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -654,7 +654,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="-", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -664,7 +664,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="including", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -674,7 +674,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="excluding", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -684,7 +684,7 @@ val oclLib = arguments=[("s",Set(TemplateParameter "T"))], isQuery=true, name="symmetricDifference", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -694,7 +694,7 @@ val oclLib = arguments=[("object",TemplateParameter "T")], isQuery=true, name="count", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -704,7 +704,7 @@ val oclLib = arguments=[], isQuery=true, name="flatten", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -714,7 +714,7 @@ val oclLib = arguments=[], isQuery=true, name="asSet", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Set(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -724,7 +724,7 @@ val oclLib = arguments=[], isQuery=true, name="asSequence", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -735,7 +735,7 @@ val oclLib = arguments=[], isQuery=true, name="asBag", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -746,7 +746,7 @@ val oclLib = arguments=[("set",Set(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -771,7 +771,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=OrderedSet(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -781,7 +781,7 @@ val oclLib = arguments=[], isQuery=true, name="notEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -791,7 +791,7 @@ val oclLib = arguments=[], isQuery=true, name="size", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Integer, scope=XMI.InstanceScope, @@ -801,7 +801,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="union", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -810,7 +810,7 @@ val oclLib = { arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true,name="=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -820,7 +820,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -830,7 +830,7 @@ val oclLib = arguments=[], isQuery=true, name="isEmpty", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -839,7 +839,7 @@ val oclLib = { arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true,name="~=", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -849,7 +849,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="~==", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -859,7 +859,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="~=~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -870,7 +870,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="~==~", - postcondition=[], + body=[],postcondition=[], precondition=[], result=Boolean, scope=XMI.InstanceScope, @@ -880,7 +880,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="intersection", - postcondition=[], + body=[],postcondition=[], precondition=[], result=OrderedSet(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -890,7 +890,7 @@ val oclLib = arguments=[("bag",Bag(TemplateParameter "T"))], isQuery=true, name="intersection", - postcondition=[], + body=[],postcondition=[], precondition=[], result=OrderedSet(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -900,7 +900,7 @@ val oclLib = arguments=[("s",OrderedSet(TemplateParameter "T"))], isQuery=true, name="-", - postcondition=[], + body=[],postcondition=[], precondition=[], result=OrderedSet(TemplateParameter "T"), scope=XMI.InstanceScope, @@ -908,54 +908,54 @@ val oclLib = }, { arguments=[("object",TemplateParameter "T")], - isQuery=true,name="including",postcondition=[], + isQuery=true,name="including",body=[],postcondition=[], precondition=[],result=Set(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("object",TemplateParameter "T")], - isQuery=true,name="excluding",postcondition=[], + isQuery=true,name="excluding",body=[],postcondition=[], precondition=[],result=Set(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("s",OrderedSet(TemplateParameter "T"))], - isQuery=true,name="symmetricDifference",postcondition=[], + isQuery=true,name="symmetricDifference",body=[],postcondition=[], precondition=[],result=Set(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("object",TemplateParameter "T")], - isQuery=true,name="count",postcondition=[],precondition=[], + isQuery=true,name="count",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="flatten",postcondition=[], + arguments=[],isQuery=true,name="flatten",body=[],postcondition=[], precondition=[],result=Set(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="asSet",postcondition=[], + arguments=[],isQuery=true,name="asSet",body=[],postcondition=[], precondition=[],result=Set(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[],isQuery=true,name="asSequence", - postcondition=[],precondition=[], + body=[],postcondition=[],precondition=[], result=Sequence(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="asBag",postcondition=[], + arguments=[],isQuery=true,name="asBag",body=[],postcondition=[], precondition=[],result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("oset",OrderedSet(TemplateParameter "T"))], - isQuery=true,name="union",postcondition=[],precondition=[], + isQuery=true,name="union",body=[],postcondition=[],precondition=[], result=Bag(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public}],parent=NONE, stereotypes=[],thyname=NONE @@ -972,65 +972,65 @@ val oclLib = interfaces=[],invariant=[],name=Collection(TemplateParameter "T"), operations=[ { - arguments=[],isQuery=true,name="size",postcondition=[], + arguments=[],isQuery=true,name="size",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[],isQuery=true,name="modifiedOnly", - postcondition=[],precondition=[], + body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",TemplateParameter "T")], - isQuery=true,name="includes",postcondition=[], + isQuery=true,name="includes",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("object",TemplateParameter "T")], - isQuery=true,name="excludes",postcondition=[], + isQuery=true,name="excludes",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("object",TemplateParameter "T")], - isQuery=true,name="count",postcondition=[],precondition=[], + isQuery=true,name="count",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("c",Collection(TemplateParameter "T"))], - isQuery=true,name="includesAll",postcondition=[], + isQuery=true,name="includesAll",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("c",Collection(TemplateParameter "T"))], - isQuery=true,name="excludesAll",postcondition=[], + isQuery=true,name="excludesAll",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="isEmpty",postcondition=[], + arguments=[],isQuery=true,name="isEmpty",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="notEmpty",postcondition=[], + arguments=[],isQuery=true,name="notEmpty",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="sum",postcondition=[], + arguments=[],isQuery=true,name="sum",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("c2", Collection(TemplateParameter "T"))], - isQuery=true,name="product",postcondition=[], + isQuery=true,name="product",body=[],postcondition=[], precondition=[],result=Set(TemplateParameter "T"), scope=XMI.InstanceScope,visibility=XMI.public}],parent=NONE, stereotypes=[],thyname=NONE @@ -1056,71 +1056,71 @@ val oclLib = operations=[ { arguments=[("object",OclAny)], - isQuery=true,name="=",postcondition=[],precondition=[], + isQuery=true,name="=",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",OclAny)], - isQuery=true,name="==",postcondition=[],precondition=[], + isQuery=true,name="==",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",OclAny)], - isQuery=true,name="~=",postcondition=[],precondition=[], + isQuery=true,name="~=",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",OclAny)], - isQuery=true,name="~==",postcondition=[],precondition=[], + isQuery=true,name="~==",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",OclAny)], - isQuery=true,name="~=~",postcondition=[],precondition=[], + isQuery=true,name="~=~",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",OclAny)], - isQuery=true,name="~==~",postcondition=[],precondition=[], + isQuery=true,name="~==~",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("object",OclAny)], - isQuery=true,name="<>",postcondition=[],precondition=[], + isQuery=true,name="<>",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="oclIsNew",postcondition=[], + arguments=[],isQuery=true,name="oclIsNew",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[],isQuery=true,name="oclIsUndefined", - postcondition=[],precondition=[], + body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="atPre",postcondition=[], + arguments=[],isQuery=true,name="atPre",body=[],postcondition=[], precondition=[],result=OclAny, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("statename",Classifier ["OclState"])], - isQuery=true,name="oclIsInState",postcondition=[], + isQuery=true,name="oclIsInState",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[],isQuery=true,name="allInstances", - postcondition=[],precondition=[], + body=[],postcondition=[],precondition=[], result=Set(OclAny), scope=XMI.ClassifierScope,visibility=XMI.public}],parent=NONE, stereotypes=[],thyname=NONE @@ -1130,41 +1130,41 @@ val oclLib = associationends=[],interfaces=[],invariant=[],name=String, operations=[ { - arguments=[],isQuery=true,name="size",postcondition=[], + arguments=[],isQuery=true,name="size",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("s",String)], - isQuery=true,name="concat",postcondition=[], + isQuery=true,name="concat",body=[],postcondition=[], precondition=[],result=String, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("lower",Integer), ("upper",Integer)], - isQuery=true,name="substring",postcondition=[], + isQuery=true,name="substring",body=[],postcondition=[], precondition=[],result=String, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[],isQuery=true,name="toInteger", - postcondition=[],precondition=[], + body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="toReal",postcondition=[], + arguments=[],isQuery=true,name="toReal",body=[],postcondition=[], precondition=[],result=Real, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="toUpper",postcondition=[], + arguments=[],isQuery=true,name="toUpper",body=[],postcondition=[], precondition=[],result=String, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="toLower",postcondition=[], + arguments=[],isQuery=true,name="toLower",body=[],postcondition=[], precondition=[],result=String, scope=XMI.InstanceScope,visibility=XMI.public}], parent= SOME OclAny, @@ -1177,66 +1177,66 @@ val oclLib = operations=[ { arguments=[("b",Boolean)], - isQuery=true,name="or",postcondition=[],precondition=[], + isQuery=true,name="or",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="xor",postcondition=[],precondition=[], + isQuery=true,name="xor",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="and",postcondition=[],precondition=[], + isQuery=true,name="and",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="implies",postcondition=[], + isQuery=true,name="implies",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="not",postcondition=[], + arguments=[],isQuery=true,name="not",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="sor",postcondition=[],precondition=[], + isQuery=true,name="sor",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="sxor",postcondition=[],precondition=[], + isQuery=true,name="sxor",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="sand",postcondition=[],precondition=[], + isQuery=true,name="sand",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="simplies",postcondition=[], + isQuery=true,name="simplies",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="implies1",postcondition=[], + isQuery=true,name="implies1",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("b",Boolean)], - isQuery=true,name="implies2",postcondition=[], + isQuery=true,name="implies2",body=[],postcondition=[], precondition=[],result=Boolean, scope=XMI.InstanceScope,visibility=XMI.public}], parent= SOME OclAny, @@ -1249,59 +1249,59 @@ val oclLib = operations=[ { arguments=[("i",Integer)], - isQuery=true,name="+",postcondition=[],precondition=[], + isQuery=true,name="+",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="-",postcondition=[],precondition=[], + isQuery=true,name="-",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="*",postcondition=[],precondition=[], + isQuery=true,name="*",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="-",postcondition=[], + arguments=[],isQuery=true,name="-",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="/",postcondition=[],precondition=[], + isQuery=true,name="/",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="div",postcondition=[],precondition=[], + isQuery=true,name="div",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="abs",postcondition=[], + arguments=[],isQuery=true,name="abs",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="mod",postcondition=[],precondition=[], + isQuery=true,name="mod",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="max",postcondition=[],precondition=[], + isQuery=true,name="max",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("i",Integer)], - isQuery=true,name="min",postcondition=[],precondition=[], + isQuery=true,name="min",body=[],postcondition=[],precondition=[], result=Integer,scope=XMI.InstanceScope, visibility=XMI.public}], parent= SOME Real, @@ -1314,81 +1314,81 @@ val oclLib = operations=[ { arguments=[("r",Real)], - isQuery=true,name="+",postcondition=[],precondition=[], + isQuery=true,name="+",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="-",postcondition=[],precondition=[], + isQuery=true,name="-",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="*",postcondition=[],precondition=[], + isQuery=true,name="*",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="-",postcondition=[], + arguments=[],isQuery=true,name="-",body=[],postcondition=[], precondition=[],result=Real, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="/",postcondition=[],precondition=[], + isQuery=true,name="/",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { - arguments=[],isQuery=true,name="abs",postcondition=[], + arguments=[],isQuery=true,name="abs",body=[],postcondition=[], precondition=[],result=Real, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="floor",postcondition=[], + arguments=[],isQuery=true,name="floor",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { - arguments=[],isQuery=true,name="round",postcondition=[], + arguments=[],isQuery=true,name="round",body=[],postcondition=[], precondition=[],result=Integer, scope=XMI.InstanceScope,visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="max",postcondition=[],precondition=[], + isQuery=true,name="max",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="min",postcondition=[],precondition=[], + isQuery=true,name="min",body=[],postcondition=[],precondition=[], result=Real,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="<",postcondition=[],precondition=[], + isQuery=true,name="<",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name=">",postcondition=[],precondition=[], + isQuery=true,name=">",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name="<=",postcondition=[],precondition=[], + isQuery=true,name="<=",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public }, { arguments=[("r",Real)], - isQuery=true,name=">=",postcondition=[],precondition=[], + isQuery=true,name=">=",body=[],postcondition=[],precondition=[], result=Boolean,scope=XMI.InstanceScope, visibility=XMI.public}], parent= SOME OclAny, diff --git a/src/rep_core.sml b/src/rep_core.sml index cd27699..55759ca 100644 --- a/src/rep_core.sml +++ b/src/rep_core.sml @@ -30,6 +30,7 @@ type Visibility type operation = { name : string, precondition : (string option * Rep_OclTerm.OclTerm) list, postcondition : (string option * Rep_OclTerm.OclTerm) list, + body : (string option * Rep_OclTerm.OclTerm) list, arguments : (string * Rep_OclType.OclType) list, result : Rep_OclType.OclType, isQuery : bool, @@ -127,6 +128,7 @@ val activity_graphs_of: Classifier -> Rep_ActivityGraph.ActivityGraph list val arguments_of_op : operation -> (string * Rep_OclType.OclType) list val precondition_of_op : operation -> (string option * Rep_OclTerm.OclTerm) list +val body_of_op : operation -> (string option * Rep_OclTerm.OclTerm) list val result_of_op : operation -> Rep_OclType.OclType val postcondition_of_op : operation -> (string option * Rep_OclTerm.OclTerm) list val name_of_op : operation -> string @@ -161,6 +163,7 @@ type Scope = XMI_DataTypes.ScopeKind type operation = { name : string, precondition : (string option * Rep_OclTerm.OclTerm) list, postcondition : (string option * Rep_OclTerm.OclTerm) list, + body : (string option * Rep_OclTerm.OclTerm) list, arguments : (string * Rep_OclType.OclType) list, result : Rep_OclType.OclType, isQuery : bool, @@ -483,14 +486,14 @@ fun update_operations operations' (Class{name,parent,attributes,invariant,operat -fun update_precondition pre' ({name,precondition,postcondition,arguments,result,isQuery,scope,visibility}:operation) +fun update_precondition pre' ({name,precondition,postcondition,body,arguments,result,isQuery,scope,visibility}:operation) = ({name=name,precondition=pre',postcondition=postcondition, - arguments=arguments,result=result,isQuery=isQuery,scope=scope, + arguments=arguments,body=body,result=result,isQuery=isQuery,scope=scope, visibility=visibility}:operation) -fun update_postcondition post' ({name,precondition,postcondition,arguments,result,isQuery,scope,visibility}:operation) +fun update_postcondition post' ({name,precondition,postcondition,body,arguments,result,isQuery,scope,visibility}:operation) = ({name=name,precondition=precondition,postcondition=post', - arguments=arguments,result=result,isQuery=isQuery,scope=scope, + arguments=arguments,body=body,result=result,isQuery=isQuery,scope=scope, visibility=visibility}:operation) @@ -635,6 +638,7 @@ fun precondition_of_op ({precondition,...}:operation) = case precondition of [] => [(NONE, Rep_OclTerm.Literal ("true",Rep_OclType.Boolean))] | il => il +fun body_of_op ({body,...}:operation) = body fun postcondition_of_op ({postcondition, ...}:operation) = case postcondition of [] => [(NONE, Rep_OclTerm.Literal ("true",Rep_OclType.Boolean))] diff --git a/src/rep_parser.sml b/src/rep_parser.sml index aad702e..497ea74 100644 --- a/src/rep_parser.sml +++ b/src/rep_parser.sml @@ -218,6 +218,7 @@ fun transform_operation t {xmiid,name,isQuery,parameter,visibility, (find_constraint t)) (filter_bodyconstraint t checked_constraints)], result = result_type, + body = [], visibility = visibility, scope = ownerScope, isQuery = isQuery (* FIX *) diff --git a/src/rep_su2holocl.sml b/src/rep_su2holocl.sml index fd56d32..6755c21 100644 --- a/src/rep_su2holocl.sml +++ b/src/rep_su2holocl.sml @@ -87,13 +87,14 @@ fun deep_atpre (t as Literal _) = t (* FIXME: find appropriate name for this function *) -fun transform_postconds {name, precondition, postcondition, arguments, result, +fun transform_postconds {name, precondition, postcondition, body,arguments, result, isQuery, scope, visibility} = { name=name, precondition=precondition, postcondition=map (fn (s,t) => (s,deep_atpre t)) postcondition, arguments=arguments, result=result, + body=body, isQuery=isQuery, scope=scope, visibility=visibility @@ -208,6 +209,7 @@ fun replace_attcalls (t as Literal _) = t fun create_getter c {name,attr_type,visibility,scope,stereotypes,init} = { name="get"^(capitalize name), precondition=nil, + body=nil, (* post: result=self.att *) postcondition=[(SOME ("generated_getter_for_"^name), ocl_eq (result attr_type) @@ -233,6 +235,7 @@ fun create_setter c {name,attr_type,visibility,scope,stereotypes,init} = in { name="set"^(capitalize name), precondition=nil, + body=nil, postcondition=[(SOME ("generated_setter_for_"^name), ocl_and (ocl_eq self_att (Variable ("arg", attr_type))) @@ -251,7 +254,7 @@ fun create_setter c {name,attr_type,visibility,scope,stereotypes,init} = * calls to appropriate getter functions, and operation calls with calls * to corresponding "secured" operations. *) -fun create_secured {name, precondition, postcondition, arguments, result, +fun create_secured {name, body,precondition, postcondition, arguments, result, isQuery, scope, visibility} = { name=name^"_sec", precondition=precondition, @@ -259,6 +262,7 @@ fun create_secured {name, precondition, postcondition, arguments, result, postcondition, arguments=arguments, result=result, + body=body, isQuery=isQuery, scope=scope, visibility=public @@ -344,6 +348,7 @@ fun add_operations c = ocl_and (ocl_isNew (result self_type)) (ocl_modifiedOnly (ocl_set [res] (self_type)))) ], + body = [], arguments=nil, result=Classifier (name_of c), isQuery=false, @@ -351,6 +356,7 @@ fun add_operations c = visibility=public} val destructor = {name="delete", precondition=nil, + body=nil, (* post: self.oclIsUndefined() and self@pre->modifiedOnly() *) postcondition=[(SOME "generated_destructor", ocl_and (ocl_isUndefined (self self_type)) @@ -394,6 +400,7 @@ val role = name="getRoleByName", postcondition=[], precondition=[], + body=[], result=Classifier ["AuthorizationEnvironment","Role"], scope=ClassifierScope, visibility=public}], @@ -473,6 +480,7 @@ val static_auth_env = [ name="isInRole", postcondition=[], precondition=[], + body=[], result=Boolean, scope=InstanceScope, visibility=public}],