Ignore:
Timestamp:
Nov 20, 2009, 3:23:48 PM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

merge operation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/open_ehr/rm/common/change_control.rb

    r167 r370  
    22# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109326589721_134411_997Report.html
    33# Ticket refs #64
    4 
    5 module OpenEhr
     4include OpenEHR::RM::Common::Generic
     5module OpenEHR
    66  module RM
    77    module Common
     
    8888
    8989          def contribution=(contribution)
    90             raise ArgumentError, "contribution should not be nil" if contribution.nil? or contribution.type.empty?
    91             @contribution = contribution
     90            if contribution.nil? or contribution.type.empty?
     91              raise ArgumentError, "contribution is invalid"
     92            end
     93            if contribution.type == 'CONTRIBUTION'
     94              @contribution = contribution
     95            else
     96              raise ArgumentError, 'contribution is invalid'
     97            end
    9298          end
    9399
    94100          def owner_id
    95             return HierObjectId.new(@uid.object_id.value)
     101            return HierObjectID.new(:value => @uid.value)
    96102          end
    97103
     
    101107
    102108          def canonical_form
    103             raise NotImplementedError, 'canonical form not implemented'
     109            raise NotImplementedError, 'canonical form is not determined'
    104110          end
    105111        end
     
    116122                  :contribution => args[:contribution],
    117123                  :lifecycle_state => @item.lifecycle_state,
    118                   :signature => args[:signature])
    119                  
     124                  :signature => args[:signature])                 
    120125          end
    121126
     
    150155
    151156          def is_merged?
    152 # Java implementation has is_merged attribute, Eiffel implementation does
    153 # nothing
     157            return !other_input_version_uids.nil?
    154158          end
    155159        end
     
    275279                                          :version_id => ver.uid)
    276280            end
    277             return RevisionHistory.new(revision_history_items)
     281            return RevisionHistory.new(:items => revision_history_items)
    278282          end
    279283
    280284          def commit_original_version(args={ })
    281             @all_versions << OriginalVersion.new(:uid => args[:uid],
    282                                                   :preceding_version_uid => args[:preceding_version_uid],
    283                                                   :contribution => args[:contribution],
    284                                                   :commit_audit => args[:commit_audit],
    285                                                   :lifecycle_state => args[:lifecycle_state],
    286                                                   :data => args[:data],
    287                                                   :attestations => args[:attestations],
    288                                                   :signature => args[:signature])
    289           end
    290 
     285            if has_version_id?(args[:preceding_version_uid]) or self.version_count == 0
     286              @all_versions << OriginalVersion.new(:uid => args[:uid],
     287                                                   :preceding_version_uid => args[:preceding_version_uid],
     288                                                   :contribution => args[:contribution],
     289                                                   :commit_audit => args[:commit_audit],
     290                                                   :lifecycle_state => args[:lifecycle_state],
     291                                                   :data => args[:data],
     292                                                   :attestations => args[:attestations],
     293                                                   :signature => args[:signature])
     294            else
     295              raise ArgumentError, 'invalid preceding uid'
     296            end
     297          end
     298           
    291299          def commit_original_merged_version(args = { })
    292300            @all_versions << OriginalVersion.new(:uid => args[:uid],
     
    303311          def commit_imported_version(args = { })
    304312            @all_versions << ImportedVersion.new(:item => args[:item],
    305                                                   :contribution => args[:contribution],
    306                                                   :commit_audit => args[:commit_audit])
     313                                                 :contribution => args[:contribution],
     314                                                 :commit_audit => args[:commit_audit])
    307315          end
    308316
Note: See TracChangeset for help on using the changeset viewer.