[4] | 1 | require 'set'
|
---|
| 2 | module OpenEHR
|
---|
| 3 | module RM
|
---|
| 4 | module Common
|
---|
| 5 | module Resource
|
---|
[163] | 6 | class Authored_Resource
|
---|
| 7 | attr_reader :original_language, :translations
|
---|
| 8 | attr_accessor :description, :revision_history
|
---|
[24] | 9 |
|
---|
| 10 | def initialize(args = { })
|
---|
[163] | 11 | self.original_language = args[:original_language]
|
---|
| 12 | self.translations = args[:translations]
|
---|
| 13 | self.revision_history = args[:revision_history]
|
---|
| 14 | self.description = args[:description]
|
---|
| 15 | end
|
---|
[24] | 16 |
|
---|
[163] | 17 | def original_language=(original_language)
|
---|
| 18 | if original_language.nil?
|
---|
| 19 | raise ArgumentError, 'original language is mandatory'
|
---|
[4] | 20 | end
|
---|
[163] | 21 | @original_language = original_language
|
---|
| 22 | end
|
---|
[24] | 23 |
|
---|
[163] | 24 | def translations=(translations)
|
---|
| 25 | if !translations.nil? && translations.empty?
|
---|
| 26 | raise ArgumentError, 'translation is empty'
|
---|
| 27 | end
|
---|
| 28 | @translations = translations
|
---|
[4] | 29 | end
|
---|
[24] | 30 |
|
---|
[4] | 31 | def current_version
|
---|
| 32 | @revision_history.most_recent_revision
|
---|
| 33 | end
|
---|
[24] | 34 |
|
---|
[163] | 35 | def languages_available
|
---|
| 36 | return Set.new(@translations.keys)
|
---|
[4] | 37 | end
|
---|
[163] | 38 |
|
---|
| 39 | def is_controlled?
|
---|
| 40 | return !@revision_history.nil?
|
---|
| 41 | end
|
---|
[4] | 42 | end
|
---|
[24] | 43 |
|
---|
[163] | 44 | class Translation_Details
|
---|
| 45 | attr_reader :language, :author
|
---|
| 46 | attr_accessor :accreditation, :other_details
|
---|
[24] | 47 |
|
---|
[163] | 48 | def initialize(args = {})
|
---|
| 49 | self.language = args[:language]
|
---|
| 50 | self.author = args[:author]
|
---|
| 51 | self.accreditation = args[:accreditation]
|
---|
| 52 | self.other_details = args[:other_details]
|
---|
| 53 | end
|
---|
| 54 |
|
---|
| 55 | def language=(language)
|
---|
| 56 | raise ArgumentError, 'language is mandatory' if language.nil?
|
---|
[4] | 57 | @language = language
|
---|
[163] | 58 | end
|
---|
| 59 |
|
---|
| 60 | def author=(author)
|
---|
| 61 | raise ArgumentError, 'author is mandatory' if author.nil?
|
---|
[4] | 62 | @author = author
|
---|
| 63 | end
|
---|
| 64 | end
|
---|
[163] | 65 |
|
---|
| 66 | class Resource_Description
|
---|
| 67 | attr_reader :original_author, :lifecycle_state, :details
|
---|
| 68 | attr_accessor :other_contributors, :resource_package_uri,
|
---|
| 69 | :other_details, :parent_resource
|
---|
| 70 |
|
---|
| 71 | def initialize(args = {})
|
---|
| 72 | self.original_author = args[:original_author]
|
---|
| 73 | self.lifecycle_state = args[:lifecycle_state]
|
---|
| 74 | self.details = args[:details]
|
---|
| 75 | self.other_contributors = args[:other_contributors]
|
---|
| 76 | self.resource_package_uri = args[:resource_package_uri]
|
---|
| 77 | self.other_details = args[:other_details]
|
---|
| 78 | self.parent_resource = args[:parent_resource]
|
---|
| 79 | end
|
---|
| 80 |
|
---|
| 81 | def original_author=(original_author)
|
---|
| 82 | if original_author.nil? || original_author.empty?
|
---|
| 83 | raise ArgumentError, 'original_author is mandatory'
|
---|
| 84 | end
|
---|
| 85 | @original_author = original_author
|
---|
| 86 | end
|
---|
| 87 |
|
---|
| 88 | def lifecycle_state=(lifecycle_state)
|
---|
| 89 | if lifecycle_state.nil? || lifecycle_state.empty?
|
---|
| 90 | raise ArgumentError, 'lifecycle_state is malformatted'
|
---|
| 91 | end
|
---|
| 92 | @lifecycle_state = lifecycle_state
|
---|
| 93 | end
|
---|
| 94 |
|
---|
| 95 | def details=(details)
|
---|
| 96 | if details.nil? || details.empty?
|
---|
| 97 | raise ArgumentError, 'nil or empty details'
|
---|
| 98 | end
|
---|
| 99 | @details = details
|
---|
| 100 | end
|
---|
| 101 | end
|
---|
| 102 |
|
---|
| 103 | class Resource_Description_Item
|
---|
| 104 | attr_reader :language, :purpose, :use, :misuse, :copyright
|
---|
| 105 | attr_accessor :keywords, :original_resource_uri, :other_details
|
---|
| 106 |
|
---|
| 107 | def initialize(args = { })
|
---|
| 108 | self.language = args[:language]
|
---|
| 109 | self.purpose = args[:purpose]
|
---|
| 110 | self.keywords = args[:keywords]
|
---|
| 111 | self.use = args[:use]
|
---|
| 112 | self.misuse = args[:misuse]
|
---|
| 113 | self.copyright = args[:copyright]
|
---|
| 114 | self.original_resource_uri = args[:original_resource_uri]
|
---|
| 115 | self.other_details = args[:other_details]
|
---|
| 116 | end
|
---|
| 117 |
|
---|
| 118 | def language=(language)
|
---|
| 119 | raise ArgumentError, 'language is mandatory' if language.nil?
|
---|
| 120 | @language = language
|
---|
| 121 | end
|
---|
| 122 |
|
---|
| 123 | def purpose=(purpose)
|
---|
| 124 | if purpose.nil? || purpose.empty?
|
---|
| 125 | raise ArgumentError, 'purpose is mandatory'
|
---|
| 126 | end
|
---|
| 127 | @purpose = purpose
|
---|
| 128 | end
|
---|
| 129 |
|
---|
| 130 | def use=(use)
|
---|
| 131 | if !use.nil? && use.empty?
|
---|
| 132 | raise ArgumentError, 'use is invalid'
|
---|
| 133 | end
|
---|
| 134 | @use = use
|
---|
| 135 | end
|
---|
| 136 |
|
---|
| 137 | def misuse=(misuse)
|
---|
| 138 | if !misuse.nil? && misuse.empty?
|
---|
| 139 | raise ArgumentError, 'misuse is invalid'
|
---|
| 140 | end
|
---|
| 141 | @misuse = misuse
|
---|
| 142 | end
|
---|
| 143 |
|
---|
| 144 | def copyright=(copyright)
|
---|
| 145 | if !copyright.nil? && copyright.empty?
|
---|
| 146 | raise ArgumentError, 'copyright is invalid'
|
---|
| 147 | end
|
---|
| 148 | @copyright = copyright
|
---|
| 149 | end
|
---|
| 150 | end
|
---|
| 151 | end # end of Resouce
|
---|
[4] | 152 | end # end of module Common
|
---|
| 153 | end # end of module RM
|
---|
| 154 | end # end of module OpenEHR
|
---|