forked from objectscript/declarative-cos
/
App.cls
42 lines (32 loc) · 923 Bytes
/
App.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Class Demo.App Extends DeclarativeOS.RegistryHelper
{
/// @Declarative("examples:isEven")
ClassMethod IsEven(number As %Numeric) As %Boolean
{
return number # 2 = 0
}
ClassMethod RunWithDeclarativeOS()
{
set numbers = ##class(%ListOfDataTypes).%New()
for i=1:1:4 { do numbers.Insert(i) }
set evenNumbers = $zfilter(numbers, "examples:isEven")
write "Even numbers: " _ $zjoin(evenNumbers, " ")
}
ClassMethod RunWithLegacyCode()
{
set numbers = ##class(%ListOfDataTypes).%New()
for i=1:1:4 { do numbers.Insert(i) }
set evenNumbers = ##class(%ListOfDataTypes).%New()
set index = ""
for {
set index = numbers.Next(index)
quit:index=""
set item = numbers.GetAt(index)
if (item # 2 = 0) {
do evenNumbers.Insert(item)
}
}
write "Even numbers: "
for i=1:1:evenNumbers.Count() { write evenNumbers.GetAt(i) _ " " }
}
}