forked from boo-lang/boo-extensions
-
Notifications
You must be signed in to change notification settings - Fork 1
/
attributes-1.boo
90 lines (77 loc) · 1.59 KB
/
attributes-1.boo
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
"""
[XmlElement('Person', Namespace: 'urn:foo:bar')]
class Person:
enum Status:
[description('Rich People')]
A
[description('SoSo People')]
B
[description('Poor People')]
C
[description('Les Miserable')]
D
[accessors(FirstName)]
_fname as string
[accessors(LastName)]
_lname as string
[accessors(DateOfBirth)]
_dof as date
[accessors(Status)]
_class as Status
def constructor([required] (fname as string), [required] (lname as string)):
_fname = fname
_lname = lname
[memoize]
[before((null != _fname)), before((null != _lname))]
def GetName() ([capitalize] as string):
return '\${_fname} \${_lname}'
[XmlAttribute]
Age as int:
[memoize]
get:
return (((_dof - (date . Now))) . TotalDays)
[XmlIgnore]
Property[[required] (key as string)]:
get:
return null
"""
[XmlElement("Person", Namespace: "urn:foo:bar")]
class Person:
enum Status:
[description("Rich People")]
A
[description("SoSo People")]
B
[description("Poor People")]
C
[description("Les Miserable")]
D
[accessors(FirstName)]
_fname as string
[accessors(LastName)]
_lname as string
[accessors(DateOfBirth)]
_dof as date
[accessors(Status)]
_class as Status
def constructor(
[required] fname as string,
[required] lname as string):
_fname = fname
_lname = lname
[memoize]
[
before(null != _fname),
before(null != _lname)
]
def GetName() [capitalize] as string:
return "${_fname} ${_lname}"
[XmlAttribute]
Age as int:
[memoize]
get:
return (_dof - date.Now).TotalDays
[XmlIgnore]
Property[[required] key as string]:
get:
return null