Ignore:
Timestamp:
Jan 19, 2010, 8:54:57 PM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #71

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb

    r396 r397  
    133133          end
    134134
    135          
     135          class CDate < CPrimitive
     136            attr_accessor :range, :timezone_validity
     137            attr_reader :month_validity, :day_validity
     138
     139            def initialize(args = { })
     140              super(args)
     141              self.range = args[:range]
     142              consistency_validity(args[:month_validity], args[:day_validity])
     143              @month_validity = args[:month_validity]
     144              @day_validity = args[:day_validity]
     145              self.timezone_validity = args[:timezone_validity]
     146            end
     147
     148            def month_validity=(month_validity)
     149              consistency_validity(month_validity, @day_validity)
     150              @month_validity = month_validity
     151            end
     152
     153            def day_validity=(day_validity)
     154              consistency_validity(@month_validity, day_validity)
     155              @day_validity = day_validity
     156            end
     157
     158            def validity_is_range?
     159              return !@range.nil?
     160            end
     161
     162            private
     163            def consistency_validity(month_validity, day_validity)
     164              if (month_validity == ValidityKind::OPTIONAL) &&
     165                  !((day_validity == ValidityKind::OPTIONAL) ||
     166                    (day_validity == ValidityKind::DISALLOWED))
     167                raise ArgumentError, 'month_validity inconsistent'
     168              end
     169              if (month_validity == ValidityKind::DISALLOWED) &&
     170                  !(day_validity == ValidityKind::DISALLOWED)
     171                raise ArgumentError, 'month validity disallowed'
     172              end
     173            end
     174          end
    136175        end # of Primitive
    137176      end # of CostraintModel
Note: See TracChangeset for help on using the changeset viewer.