@@ -102,5 +102,48 @@ Moves widgets datasources into Mobile folder</Description>
102102 Return $$$OK
103103]]> </Implementation >
104104</Method >
105+
106+ <Method name =" DynamicObjects" >
107+ <ClassMethod >1</ClassMethod >
108+ <Implementation ><![CDATA[
109+ #define IsNewVersion $S($System.Version.GetMajor()>2015:"1",$System.Version.GetMajor()=2015:$S($System.Version.GetMinor()>=3:"1",1:"0"),1:"0")
110+ #define NewDynObj ##Expression($S($$$IsNewVersion=1:"##class(%Object).%New()",1:"##class(%ZEN.proxyObject).%New()"))
111+ #define NewDynObjList ##Expression($S($$$IsNewVersion=1:"##class(%Array).%New()",1:"##class(%ListOfObjects).%New()"))
112+ #define NewDynDTList ##Expression($S($$$IsNewVersion=1:"##class(%Array).%New()",1:"##class(%ListOfDataTypes).%New()"))
113+ //#define Insert(%element) ##Expression($S($$$IsNewVersion=1:%element,1:b))
114+ #define InsertWrap(%obj,%element) ##Expression(S($$$IsNewVersion=1:$$$InsertOther(%obj,%element),1:$$$InsertOther(%obj,%element)))
115+ #define isq(%element) ##Expression($S($d(%element)=1:1,1:0))
116+ #define InsertOther(%obj,%element) $S($$$IsNewVersion=1:"do %obj.$push(%element)",1:"do %obj.Insert(%element)")
117+ //#define CallClass(%element) ##Expression(##class(MDX2JSON.Tests).A(%element))
118+ #define q(%element) $S($d(%element)="""":"""",1:"")
119+ #define Insert(%obj,%element) ##Expression($S($$$IsNewVersion=1:"do %obj.$push(%element)",1:"do %obj.Insert(%element)"))
120+
121+ //$$$InsertNew(%element),1:$$$InsertOld(%element)))
122+ #define InsertNew(%element) $push(%element)
123+ #define InsertOld(%element) Insert(%element)
124+ #define DynObjToJSON(%obj) ##Expression($S($$$IsNewVersion=1:"do %obj.$toJSON()",1:"do %obj.%ToJSON()"))
125+
126+ set obj = $$$NewDynObj
127+ set obj.prop = "val"
128+ $$$DynObjToJSON(obj)
129+
130+ set dtList = $$$NewDynDTList
131+ //do objList.$push("a")
132+ //do objList.Insert("a")
133+ //do objList.$$$Insert("a")
134+ $$$Insert(dtList,a)
135+ //w $$$CallClass("a")
136+ //w $$$isq("a")
137+ ]]> </Implementation >
138+ </Method >
139+
140+ <Method name =" A" >
141+ <ClassMethod >1</ClassMethod >
142+ <FormalSpec >a</FormalSpec >
143+ <Implementation ><![CDATA[
144+ set ^test($h)=a
145+ return "ololo"
146+ ]]> </Implementation >
147+ </Method >
105148</Class >
106149</Export >
0 commit comments