source: ruby/trunk/models/am/archetype/constraint_model/primitive.rb@ 21

Last change on this file since 21 was 21, checked in by Tatsukawa, Akimichi, 16 years ago

created an experimental openehr_models gem package

File size: 2.1 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_accessor :assumed_value
25 def initialize(true_valid, false_valid, assumed_value)
26 binary_consistency(true_valid, false_valid)
27 @true_valid = true_valid
28 @false_valid = false_valid
29 @assumed_value = assumed_value
30 end
31 def set_true_valid(true_valid)
32 binary_consistency(true_valid, @false_valid)
33 @true_valid = true_valid
34 end
35 def set_false_valid(false_valid)
36 binary_consistency(@true_valid,false_valid)
37 @false_valid = false_valid
38 end
39 def true_valid?
40 @true_valid
41 end
42 def false_valid?
43 @false_valid
44 end
45 def valid_value?
46
47 end
48 def default_value(a_value=nil)
49 if a_value == nil
50 @true_valid
51 else
52 (a_value && @true_valid) || (!a_value && @false_valid)
53 end
54 end
55
56 private
57
58 def binary_consistency(true_valid, false_valid)
59 if !true_valid && !false_valid
60 raise ArgumentError, "Either true_valid or false_valid must be true"
61 end
62 end
63 end # of C_Boolean
64
65 class C_Integer < C_Primitive
66
67 end
68 end # of Primitive
69 end # of Constraint_Model
70 end # of Archetype
71 end # of AM
72end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.