source: ruby/trunk/models/assumed_library_types.rb@ 4

Last change on this file since 4 was 4, checked in by KOBAYASHI, Shinji, 16 years ago

restructuring repository tree

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 def set_lower(lower)
13 check_lower_upper(lower, @upper)
14 end
15 def set_upper(upper)
16 check_lower_upper(@lower, upper)
17 end
18 def set_lower_included(lower_included)
19 if (lower == nil) && (lower_included != nil)
20 raise ArgumentError, "lower is not set"
21 end
22 @lower_included = lower_included
23 end
24 def set_upper_included(upper_included)
25 @upper_included = upper_included
26 if (upper == nil) && (upper_included != nil)
27 raise ArgumentError, "upper is not set"
28 end
29 end
30 def has?(value)
31 if ((@lower < value) && (value < @upper) ||
32 (@lower_included == true) && (@lower == value) ||
33 (@upper_included == true) && (@upper == value))
34 true
35 else
36 false
37 end
38 end
39 private
40 def check_lower_upper(lower, upper)
41 if (lower == nil) && (upper == nil)
42 raise ArgumentError, "Either lower or upper must be assigned"
43 end
44 if (lower == nil) && (upper != nil)
45 @lower_unbounded = true
46 elsif (lower != nil) && (upper == nil)
47 @upper_unbounded = true
48 elsif lower > upper
49 raise ArgumentError, "Upper must be larger than lower."
50 end
51 @lower = lower
52 @upper = upper
53 end
54 end
55 end
56end
Note: See TracBrowser for help on using the repository browser.