Changeset 98


Ignore:
Timestamp:
Aug 17, 2008, 7:47:10 PM (16 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #39
fixed Party_Ref

Location:
ruby/trunk/lib/models
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/models/rm/support/identification.rb

    r97 r98  
    169169        end
    170170
     171        class Party_Ref < Object_Ref
     172          TYPE = ['PERSON', 'ORGANISATION', 'GROUP', 'AGENT', 'ROLE',' PARTY', 'ACTOR']
     173          def initialize(namespace, type, id)
     174            super(namespace, type, id)
     175          end
     176
     177          def type=(type)
     178            raise ArgumentError, 'type mismatch' if !TYPE.include? type
     179            @type = type
     180          end
     181        end
    171182        class Hier_Object_ID < UID_Based_ID
    172183
    173184        end
    174185
     186        class Version_Tree_ID
     187          attr_reader :value, :trunk_version, :branch_number, :branch_version
     188
     189          def initialize(value)
     190            self.value = value
     191          end
     192
     193          def value=(value)
     194            raise ArgumentError, 'value invalid' if value.nil? or value.empty?
     195            @value = value
     196            (trunk_version, branch_number, branch_version) = value.split '.'
     197            self.trunk_version =trunk_version
     198          end
     199
     200          def trunk_version=(trunk_version)
     201            Raise ArgumentError, 'trunk_version invalid' if trunk_version.nil? and trunk_version.to_i >= 0
     202            @trunk_version = trunk_version
     203          end
     204
     205          def branch_number=(branch_number)
     206            Raise ArgumentError, 'branch number invalid' if branch_nmuber.nil?
     207          end
     208
     209          def is_branch?
     210            !@branch_version.nil?
     211          end
     212          private
     213          def value_valid
     214           
     215          end
     216        end
     217
     218        class UID
     219          attr_reader :value
     220
     221          def initialize(value)
     222            self.value = value
     223          end
     224
     225          def value=(value)
     226            raise ArgumentError if value.nil? or value.empty?
     227            @value = value
     228          end
     229        end
     230
     231        class UUID < UID
     232
     233        end
     234
     235        class Internet_ID <UID
     236         
     237        end
     238
     239        class ISO_OID <UID
     240
     241        end
    175242      end # of Identification
    176243    end # of Support
  • ruby/trunk/lib/models/tests/test_reference_model.rb

    r97 r98  
    154154    assert_nothing_raised(Exception){@hier_object_id = OpenEHR::RM::Support::Identification::Hier_Object_ID.new('0.0.4')}
    155155    assert_nothing_raised(Exception){@locatable_ref = OpenEHR::RM::Support::Identification::Locatable_Ref.new('unknown', 'PERSON', @uid_based_id, 'data/event[at0001, standing]')}
     156    assert_nothing_raised(Exception){@party_ref = OpenEHR::RM::Support::Identification::Party_Ref.new('unknown', 'ORGANISATION', @object_id)}
    156157  end
    157158 
     
    166167    assert_instance_of OpenEHR::RM::Support::Identification::Hier_Object_ID, @hier_object_id
    167168    assert_instance_of OpenEHR::RM::Support::Identification::Locatable_Ref, @locatable_ref
     169    assert_instance_of OpenEHR::RM::Support::Identification::Party_Ref, @party_ref
    168170  end
    169171
     
    347349
    348350  def test_locatable_ref
    349 # test constructor function
     351# test constructorpp
    350352    assert_equal 'unknown', @locatable_ref.namespace
    351353    assert_equal 'PERSON', @locatable_ref.type
     
    358360    assert_equal 'ehr://rrip::0.0.3/data/event[at0002, tilting]', @locatable_ref.as_uri
    359361  end
     362
     363  def test_party_ref
     364# test constructor
     365    assert_equal 'unknown', @party_ref.namespace
     366    assert_equal 'ORGANISATION', @party_ref.type
     367    assert_equal @object_id, @party_ref.id
     368# test type validation
     369    assert_raise(ArgumentError){@party_ref.type = 'GUIDELINE'}
     370    assert_nothing_raised(Exception){@party_ref.type = 'PERSON'}
     371    assert_equal 'PERSON', @party_ref.type
     372    assert_nothing_raised(Exception){@party_ref.type = 'GROUP'}
     373    assert_nothing_raised(Exception){@party_ref.type = 'AGENT'}
     374    assert_nothing_raised(Exception){@party_ref.type = 'ROLE'}
     375    assert_nothing_raised(Exception){@party_ref.type = 'PARTY'}
     376    assert_nothing_raised(Exception){@party_ref.type = 'ACTOR'}
     377  end
    360378end
Note: See TracChangeset for help on using the changeset viewer.