Changeset 375


Ignore:
Timestamp:
Dec 20, 2009, 5:23:02 PM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #74

Location:
ruby/trunk
Files:
3 added
2 edited

Legend:

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

    r374 r375  
    5050            @is_unique = args[:is_unique]
    5151          end
     52
     53          def is_ordered?
     54            return @is_ordered
     55          end
     56         
     57          alias ordered? is_ordered?
     58
     59          def is_unique?
     60            return @is_unique
     61          end
     62
     63          alias unique? is_unique?
     64
     65          def is_set?
     66            return !@is_ordered && @is_unique
     67          end
     68
     69          alias set? is_set?
     70
     71          def is_list?
     72            return @is_ordered && !@is_unique
     73          end
     74
     75          alias list? is_list?
     76
     77          def is_bag?
     78            return !@is_ordered && !@is_unique
     79          end
     80
     81          alias bag? is_bag?
    5282        end
    5383
    5484        class CObject < ArchetypeConstraint
    55           attr_accessor :node_id, :occurrences, :rm_type_name
    56 
    57           def initialize(args = { })
    58             @node_id = args[:node_id] if args[:node_id]
    59             @occurrences = args[:occurrences] if args[:occurrences]
    60             @rm_type_name = args[:rm_type_name] if args[:rm_type_name]
     85          attr_reader :rm_type_name, :node_id, :occurrences
     86
     87          def initialize(args = { })
     88            super(args)
     89            self.rm_type_name = args[:rm_type_name]
     90            self.node_id = args[:node_id]
     91            self.occurrences = args[:occurrences]
     92
     93          end
     94
     95          def rm_type_name=(rm_type_name)
     96            if rm_type_name.nil? || rm_type_name.empty?
     97              raise ArgumentError, 'invalid rm_type_name'
     98            end
     99            @rm_type_name = rm_type_name
     100          end
     101
     102          def node_id=(node_id)
     103            if node_id.nil? || node_id.empty?
     104              raise ArgumentError, 'invalid node_id'
     105            end
     106            @node_id = node_id
     107          end
     108
     109          def occurrences=(occurrences)
     110            if occurrences.nil?
     111              raise ArgumentError, 'invaild occurrences'
     112            end
     113            @occurrences = occurrences
    61114          end
    62115
     
    71124
    72125        class CAttribute < ArchetypeConstraint
    73           attr_accessor :rm_attribute_name, :existence, :children
    74 
    75           def initialize(args = { })
    76             @rm_attribute_name = args[:rm_attribute_name] if args[:rm_attribute_name]
    77             @existence = args[:existence] if args[:existence]
    78             @children = args[:children] ? args[:children] : []
    79            
     126          attr_reader :rm_attribute_name, :existence
     127          attr_accessor :children
     128
     129          def initialize(args = { })
     130            super(args)
     131            self.rm_attribute_name = args[:rm_attribute_name]
     132            self.existence = args[:existence]
     133            self.children = args[:children]
     134          end
     135
     136          def rm_attribute_name=(rm_attribute_name)
     137            if rm_attribute_name.nil? or rm_attribute_name.empty?
     138              raise ArgumentError, 'invalid rm_attribute_name'
     139            end
     140            @rm_attribute_name = rm_attribute_name
     141          end
     142
     143          def existence=(existence)
     144            if existence.nil? || existence.lower < 0 || existence.upper > 1
     145              raise ArgumentError, 'invalid existence'
     146            end
     147            @existence = existence
    80148          end
    81149        end
  • ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/c_primitive_object_spec.rb

    r374 r375  
    11require File.dirname(__FILE__) + '/../../../../../spec_helper'
     2include OpenEHR::AM::Archetype::ConstraintModel
     3include OpenEHR::AssumedLibraryTypes
    24
    35describe CPrimitiveObject do
    46  before(:each) do
    5     @c_primitive_object = CPrimitiveObject.new
     7    interval = Interval.new(:lower => 0, :upper => 1)
     8    @c_primitive_object = CPrimitiveObject.new(:path => 'event/test',
     9                                               :rm_type_name => 'DV_TEXT',
     10                                               :node_id => 'ac0001',
     11                                               :occurrences => interval)
    612  end
    713
Note: See TracChangeset for help on using the changeset viewer.