Ignore:
Timestamp:
Nov 20, 2009, 1:31:18 AM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #45 Actor, Person, Organisation, Group, Agent

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/branches/0.5/lib/open_ehr/rm/demographic.rb

    r362 r363  
    77  module RM
    88    module Demographic
    9       class Address < Locatable
    10         attr_reader :details
    11 
    12         def initialize(args = { })
    13           super(args)
    14           self.details = args[:details]
    15         end
    16 
    17         def details=(details)
    18           if details.nil?
    19             raise ArgumentError, 'details are mandatory'
    20           end
    21           @details = details
    22         end
    23 
    24         def type
    25           return @name
    26         end
    27       end
    28 
    29       class Capability < Locatable
    30         attr_reader :credentials, :time_validity
    31 
    32       end
    33 
    349      class Party < Locatable
    3510        attr_reader :uid, :identities, :contacts, :relationships,
     
    11590      end
    11691
    117       class PartyRelationship < Locatable
    118 
    119       end
    120 
    121       class VersionedParty < Locatable
    122 
    123       end
    124 
    125       class Role < Party
    126 
    127       end
    128 
    129       class Actor < Party
    130         LEAGAL_IDENTITY = 'leagal identity'
    131         attr_reader :languages, :rules
    132 
    133         def initialize(uid, archetype_node_id, name, archetype_details,
    134                        feeder_audit, links, identities, contacts,
    135                        relationships, reverse_relationships, details,
    136                        languages, rules)
    137           super(uid, archetype_node_id, name, archetype_details,
    138                 feeder_audit, links, relationships, reverse_relationships,
    139                 details)
    140           has_legal_identity?
    141           set_languages(languages)
    142           set_rules(rules)
    143         end
    144 
    145         def has_legal_identity?
    146           @identities.each {|identity|
    147             if (identity.purpose.value == LEAGAL_IDENTITY)
    148               return true
    149             end
    150           }
    151           false
    152         end
    153 
    154         def languages=(languages)
    155           set_languages(languages)
    156         end
    157 
    158         def values=(values)
    159           set_values(values)
    160         end
    161         private
    162         def set_languages(languages)
    163           if languages.nil?
    164             raise ArgumentError, "languages should not be nil."
    165           elsif languages.empty?
    166             raise ArgumentError, "languages shouldnot be empty."
    167           end
    168           @languages = languages
    169         end
    170 
    171         def set_values(values)
    172           if values.nil?
    173             raise ArgumentError, "values should not be nil."
    174           elsif values.empty?
    175             raise ArgumentError, "values should not be nil."
    176           end
    177           @values = values
    178         end
    179       end
    180 
    18192      class Contact < Locatable
    18293        attr_accessor :time_validity
     
    201112      end
    202113
     114      class Address < Locatable
     115        attr_reader :details
     116
     117        def initialize(args = { })
     118          super(args)
     119          self.details = args[:details]
     120        end
     121
     122        def details=(details)
     123          if details.nil?
     124            raise ArgumentError, 'details are mandatory'
     125          end
     126          @details = details
     127        end
     128
     129        def type
     130          return @name
     131        end
     132      end
     133
     134      class Actor < Party
     135        LEAGAL_IDENTITY = 'legal identity'
     136        attr_reader :languages, :roles
     137
     138        def initialize(args = { })
     139          super(args)
     140          self.roles = args[:roles]
     141          self.languages = args[:languages]
     142        end
     143
     144        def roles=(roles)
     145          if !roles.nil? && roles.empty?
     146            raise ArgumentError, 'roles should not be empty'
     147          end
     148          @roles = roles
     149        end
     150
     151        def has_legal_identity?
     152          @identities.each do |identity|
     153            if identity.purpose.value == LEAGAL_IDENTITY
     154              return true
     155            end
     156          end
     157          return false
     158        end
     159
     160        def languages=(languages)
     161          if !languages.nil? && languages.empty?
     162            raise ArgumentError, 'languages should not be empty.'
     163          end
     164          @languages = languages
     165        end
     166      end
     167
     168      class Person < Actor
     169
     170      end
     171
     172      class Organisation < Actor
     173
     174      end
     175
     176      class Group < Actor
     177
     178      end
     179
    203180      class Agent < Actor
    204181
    205182      end
    206183
    207       class Organisation < Actor
    208 
    209       end
    210 
    211       class Person < Actor
    212 
    213       end
    214 
    215       class Group < Actor
     184      class Role < Party
     185
     186      end
     187
     188      class Capability < Locatable
     189        attr_reader :credentials, :time_validity
     190
     191      end
     192
     193      class PartyRelationship < Locatable
     194
     195      end
     196
     197      class VersionedParty < Locatable
    216198
    217199      end
Note: See TracChangeset for help on using the changeset viewer.