|
10 | 10 | #define Private '$$$Public |
11 | 11 |
|
12 | 12 | #; For work with dynamic objects |
13 | | -#define IsNewVersion $S($System.Version.GetMajor()>2015:"1",$System.Version.GetMajor()=2015:$S($System.Version.GetMinor()>=3:"1",1:"0"),1:"0") |
14 | | -#define NewDynObj ##Expression($S($$$IsNewVersion=1:"##class(%Object).%New()",1:"##class(%ZEN.proxyObject).%New()")) |
15 | | -#define NewDynObjList ##Expression($S($$$IsNewVersion=1:"##class(%Array).%New()",1:"##class(%ListOfObjects).%New()")) |
16 | | -#define NewDynDTList ##Expression($S($$$IsNewVersion=1:"##class(%Array).%New()",1:"##class(%ListOfDataTypes).%New()")) |
17 | | -#define Insert(%obj,%element) ##Expression($S($$$IsNewVersion=1:"do %obj.$push(%element)",1:"do %obj.Insert(%element)")) |
18 | | -#define InsertQuoted(%obj,%element) ##Expression($S($$$IsNewVersion=1:"do %obj.$push("%element")",1:"do %obj.Insert("%element")")) |
19 | | -#define DynObjToJSON(%obj) ##Expression($S($$$IsNewVersion=1:"do %obj.$toJSON()",1:"do %obj.%ToJSON()")) |
20 | | -#define ListToJSON(%obj) ##Expression($S($$$IsNewVersion=1:"do %obj.$toJSON()",1:"do ##class(%ZEN.Auxiliary.jsonProvider).%ObjectToJSON(%obj)")) |
| 13 | +#if $$$comClassDefined("%Library.Array") |
| 14 | + #define NewDynObj ##class(%Object).%New() |
| 15 | + #define NewDynDTList ##class(%Array).%New() |
| 16 | + #define NewDynObjList $$$NewDynDTList |
| 17 | + #define Insert(%obj,%element) do %obj.$push(%element) |
| 18 | + #define DynObjToJSON(%obj) do %obj.$toJSON() |
| 19 | + #define ListToJSON(%obj) $$$DynObjToJSON(%obj) |
| 20 | +#else |
| 21 | + #define NewDynObj ##class(%ZEN.proxyObject).%New() |
| 22 | + #define NewDynDTList ##class(%ListOfDataTypes).%New() |
| 23 | + #define NewDynObjList ##class(%ListOfObjects).%New() |
| 24 | + #define Insert(%obj,%element) do %obj.Insert(%element) |
| 25 | + #define DynObjToJSON(%obj) do %obj.%ToJSON() |
| 26 | + #define ListToJSON(%obj) do ##class(%ZEN.Auxiliary.jsonProvider).%ObjectToJSON(%obj) |
| 27 | +#endif |
21 | 28 |
|
22 | 29 | ]]></Routine> |
23 | 30 | </Export> |
0 commit comments