Ignore:
Timestamp:
Jun 23, 2009, 11:12:16 AM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

ref #50
DV_Quantified finished

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/models/rm/data_types/quantity.rb

    r142 r144  
    5656
    5757        class DV_Quantified < DV_Ordered
    58 
    59           def initialize(normal_range=nil, normal_status = nil,
     58          attr_reader :magnitude, :accuracy, :magnitude_status
     59
     60          def initialize(magnitude, magnitude_status=nil,
     61                         normal_range=nil, normal_status = nil,
    6062                         other_reference_ranges=nil)
    6163            super(normal_range, normal_status, other_reference_ranges)
    62           end
    63 
    64           def magnitude
    65            
     64            self.magnitude = magnitude
     65            self.magnitude_status = magnitude_status
    6666          end
    6767
     
    7070          end
    7171
    72           def valid_magnitude_status(s)
    73 
     72          def magnitude=(magnitude)
     73            raise ArgumentError, 'magnitude should not be nil' if magnitude.nil?
     74            @magnitude = magnitude
     75          end
     76
     77          def magnitude_status=(magnitude_status)
     78            if magnitude_status.nil?
     79              @magnitude_status = '='
     80            elsif DV_Quantified.valid_magnitude_status?(magnitude_status)
     81              @magnitude_status = magnitude_status
     82            else
     83              raise ArgumentError, 'magnitude_status invalid'
     84            end
     85          end
     86
     87          def accuracy=(accuracy)
     88            raise NotImplementedError, 'subclasses need to implemented'
     89          end
     90
     91          def accuracy_unknown?
     92            return accuracy.nil?
     93          end
     94
     95          def self.valid_magnitude_status?(s)
     96            if s == '=' || s == '>' || s == '<' || s == '<=' ||
     97                s == '>=' || s == '~'
     98              return true
     99            else
     100              return false
     101            end
    74102          end
    75103        end
     
    153181
    154182        class Reference_Range
    155           attr_reader :meaning
    156 
    157           def initialize(meaning)
     183          attr_reader :meaning, :range
     184
     185          def initialize(meaning, range)
    158186            self.meaning = meaning
     187            self.range = range
    159188          end
    160189
     
    164193            end
    165194            @meaning = meaning
     195          end
     196
     197          def range=(range)
     198            if range.nil?
     199              raise ArgumentError, 'range should not be nil'
     200            end
     201            @range = range
     202          end
     203
     204          def is_in_range?(val)
     205            return @range.has?(val)
    166206          end
    167207        end
Note: See TracChangeset for help on using the changeset viewer.