Changeset 393 for ruby/trunk


Ignore:
Timestamp:
Jan 5, 2010, 10:50:38 AM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #71

Location:
ruby/trunk
Files:
2 added
2 edited

Legend:

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

    r392 r393  
    1 
    2 
     1# Ticket #71
    32module OpenEHR
    43  module AM
    54    module Archetype
    6       module Primitive
    7         class CPrimitive
    8           attr_reader :default_value
    9           attr_accessor :assumed_value
     5      module ConstraintModel
     6        module Primitive
     7          class CPrimitive
     8            attr_reader :default_value
     9            attr_accessor :assumed_value
    1010
    11           def initialize(args = { })
    12             self.default_value = args[:default_value]
    13             self.assumed_value = args[:assumed_value]
     11            def initialize(args = { })
     12              self.default_value = args[:default_value]
     13              self.assumed_value = args[:assumed_value]
     14            end
     15
     16            def default_value=(default_value)
     17              if default_value.nil?
     18                raise ArgumentError, 'default_value is mandatory'
     19              end
     20              @default_value = default_value
     21            end
     22
     23            def has_assumed_value?
     24              return !assumed_value.nil?
     25            end
    1426          end
    1527
    16           def default_value=(default_value)
    17             if default_value.nil?
    18               raise ArgumentError, 'default_value is mandatory'
     28          class CBoolean < CPrimitive
     29            attr_reader :true_valid, :false_valid
     30
     31            def initialize(args = { })
     32              binary_consistency(args[:true_valid], args[:false_valid])
     33              @true_valid = args[:true_valid]
     34              @false_valid = args[:false_valid]
     35              super(args)
    1936            end
    20             @default_value = default_value
     37
     38            def default_value=(default_value)
     39              super
     40              default_value_consistency(default_value)
     41            end
     42
     43            def true_valid=(true_valid)
     44              binary_consistency(true_valid, @false_valid)
     45              @true_valid = true_valid
     46            end
     47
     48            def false_valid=(false_valid)
     49              binary_consistency(@true_valid, false_valid)
     50              @false_valid = false_valid
     51            end
     52
     53            def true_valid?
     54              return @true_valid
     55            end
     56
     57            def false_valid?
     58              return @false_valid
     59            end
     60
     61            private
     62            def binary_consistency(true_valid, false_valid)
     63              if (true_valid == false) && (false_valid == false)
     64                raise ArgumentError, 'true_valid or false_valid should be true'
     65              end
     66            end
     67
     68            def default_value_consistency(default_value)
     69              if (!@true_valid && default_value) || (!@false_valid && !default_value)
     70                raise ArgumentError, 'default value inconsistency'
     71              end
     72            end
    2173          end
    22 
    23           def has_assumed_value?
    24             return !assumed_value.nil?
    25           end
    26         end
    27       end # of Primitive
     74        end # of Primitive
     75      end # of CostraintModel
    2876    end # of Archetype
    2977  end # of AM
  • ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/c_primitive_object_spec.rb

    r381 r393  
    11require File.dirname(__FILE__) + '/../../../../../spec_helper'
    22include OpenEHR::AM::Archetype::ConstraintModel
    3 include OpenEHR::AM::Archetype::Primitive
     3include OpenEHR::AM::Archetype::ConstraintModel::Primitive
    44include OpenEHR::AssumedLibraryTypes
    55
Note: See TracChangeset for help on using the changeset viewer.