source: ruby/trunk/lib/models/assumed_library_types.rb@ 41

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

created an experimental openehr_models gem package

File size: 1.8 KB
Line 
1module OpenEHR
2 module Assumed_Library_Types
3 class Interval
4 attr_reader :lower, :lower_included, :lower_unbounded
5 attr_reader :upper, :upper_included, :upper_unbounded
6 def initialize(lower, upper,
7 lower_included = nil, upper_included = nil)
8 check_lower_upper(lower, upper)
9 set_lower_included(lower_included)
10 set_upper_included(upper_included)
11 end
12
13 def set_lower(lower)
14 check_lower_upper(lower, @upper)
15 end
16
17 def set_upper(upper)
18 check_lower_upper(@lower, upper)
19 end
20
21 def set_lower_included(lower_included)
22 if (lower == nil) && (lower_included != nil)
23 raise ArgumentError, "lower is not set"
24 end
25 @lower_included = lower_included
26 end
27
28 def set_upper_included(upper_included)
29 @upper_included = upper_included
30 if (upper == nil) && (upper_included != nil)
31 raise ArgumentError, "upper is not set"
32 end
33 end
34
35 def has?(value)
36 if ((@lower < value) && (value < @upper) ||
37 (@lower_included == true) && (@lower == value) ||
38 (@upper_included == true) && (@upper == value))
39 true
40 else
41 false
42 end
43 end
44
45 private
46
47 def check_lower_upper(lower, upper)
48 if (lower == nil) && (upper == nil)
49 raise ArgumentError, "Either lower or upper must be assigned"
50 end
51 if (lower == nil) && (upper != nil)
52 @lower_unbounded = true
53 elsif (lower != nil) && (upper == nil)
54 @upper_unbounded = true
55 elsif lower > upper
56 raise ArgumentError, "Upper must be larger than lower."
57 end
58 @lower = lower
59 @upper = upper
60 end
61 end
62 end
63end
Note: See TracBrowser for help on using the repository browser.