source: ruby/branches/0.0/models/am/archetype/constraint_model/primitive.rb@ 167

Last change on this file since 167 was 167, checked in by KOBAYASHI, Shinji, 15 years ago

adjust for rails

File size: 2.7 KB
Line 
1module OpenEhr
2 module AM
3 module Archetype
4 module Constraint_Model
5
6 module Primitive
7
8 class C_PRIMITIVE
9 def assumed_value
10 raise NotImplementedError, "assumed_value should be implemented"
11 end
12 def default_value
13 raise NotImplementedError, "assumed_value should be implemented"
14 end
15 def has_assumed_value?
16 assumed_value != nil
17 end
18 def valid_value?
19 raise NotImplementedError, "valid_value? should be implemented"
20 end
21 end
22
23 class C_BOOLEAN < C_PRIMITIVE
24 attr_reader :true_valid, :false_valid, :assumed_value
25
26 def initialize(args = { })
27 @true_valid = args[:true_valid] ? args[:true_valid] : false
28 @false_valid = args[:false_valid] ? args[:false_valid] : false
29 @assumed_value = args[:assumed_value] ? args[:assumed_value] : false
30 binary_consistency(@true_valid, @false_valid)
31 end
32
33 def true_valid=(true_valid)
34 binary_consistency(true_valid, @false_valid)
35 @true_valid = true_valid
36 end
37
38 def false_valid=(false_valid)
39 binary_consistency(@true_valid,false_valid)
40 @false_valid = false_valid
41 end
42
43 def valid_value?
44
45 end
46
47 def default_value(a_value = nil)
48 if a_value == nil
49 @true_valid
50 else
51 (a_value && @true_valid) || (!a_value && @false_valid)
52 end
53 end
54
55 private
56
57 def binary_consistency(true_valid, false_valid)
58 if !true_valid && !false_valid
59 raise ArgumentError, "Either true_valid or false_valid must be true"
60 end
61 end
62 end # of C_Boolean
63
64 class C_STRING < C_PRIMITIVE
65
66 end
67
68 class C_INTEGER < C_PRIMITIVE
69
70 end
71
72 class C_REAL < C_PRIMITIVE
73
74 end
75
76 class C_TIME < C_PRIMITIVE
77
78 end
79
80 class C_DATE < C_PRIMITIVE
81
82 end
83
84 class C_DATE_TIME < C_PRIMITIVE
85
86 end
87
88 class C_DURATION < C_PRIMITIVE
89 attr_accessor :years_allowed, :months_allowed, :weeks_allowed, :days_allowed, :hours_allowed, :minutes_allowed, :seconds_allowed, :fractional_seconds_allowed, :range, :assumed_value
90 end
91
92
93
94 end # of Primitive
95 end # of Constraint_Model
96 end # of Archetype
97 end # of AM
98end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.