source: ruby/trunk/lib/open_ehr/am/archetype/assertion.rb@ 385

Last change on this file since 385 was 385, checked in by KOBAYASHI, Shinji, 14 years ago

refs #73
Merry Xmass

File size: 1.9 KB
Line 
1module OpenEHR
2 module AM
3 module Archetype
4 module Assertion
5 class Assertion
6 attr_reader :expression, :tag
7 attr_accessor :string_expression, :variables
8
9 def initialize(args = { })
10 self.expression = args[:expression]
11 self.tag = args[:tag]
12 self.string_expression = args[:string_expression]
13 self.variables = args[:variables]
14 end
15
16 def expression=(expression)
17 if expression.nil? or expression.type.upcase != 'BOOLEAN'
18 raise ArgumentError, 'invalid expression'
19 end
20 @expression = expression
21 end
22
23 def tag=(tag)
24 if !tag.nil? && tag.empty?
25 raise ArgumentError, 'tag should not be empty'
26 end
27 @tag = tag
28 end
29 end
30
31 class ExprItem
32 attr_reader :type
33
34 def initialize(args = { })
35 self.type = args[:type]
36 end
37
38 def type=(type)
39 if type.nil? or type.empty?
40 raise ArgumentError, 'type is mandatory'
41 end
42 @type = type
43 end
44 end
45
46 class ExprLeaf < ExprItem
47 attr_reader :item, :reference_type
48
49 def initialize(args = { })
50 super
51 self.item = args[:item]
52 self.reference_type = args[:reference_type]
53 end
54
55 def item=(item)
56 if item.nil?
57 raise ArgumentError, 'item is mandatory'
58 end
59 @item = item
60 end
61
62 def reference_type=(reference_type)
63 if reference_type.nil?
64 raise ArgumentError, 'reference_type is mandatory'
65 end
66 @reference_type = reference_type
67 end
68 end
69 end # of Assetion
70 end # of Archtype
71 end #of AM
72end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.