source: ruby/trunk/lib/models/rm/data_types/encapslated.rb@ 130

Last change on this file since 130 was 130, checked in by KOBAYASHI, Shinji, 15 years ago

refs #51

File size: 2.2 KB
Line 
1# OpenEHR::RM::Data_Types::Encapsulated
2# http://www.openehr.org/svn/specification/TAGS/Release-1.0.2/publishing/architecture/computable/UML/uml_start_view.html
3# refs #51
4require 'rubygems'
5require 'locale/info'
6
7module OpenEHR
8 module RM
9 module Data_Types
10 module Encapsulated
11 class DV_Encapsulated < OpenEHR::RM::Data_Types::Basic::Data_Value
12 attr_reader :language, :charset
13
14 def size
15 raise NotImplementedError, "size method not implemented"
16 end
17
18 def language=(language)
19 unless Language::Info.valid_language?(language.code_string)
20 raise ArgumentError, 'invalid language code'
21 end
22 @language = language
23 end
24
25 def charset=(charset)
26 unless charset_valid?(charset)
27 raise ArgumentError, 'invalid charset'
28 end
29 @charset=charset
30 end
31
32 private
33 def size_positive
34 raise ArgumentError, "size must be positive" if size < 0
35 end
36
37 def charset_valid?(charset)
38 open('charset.list') do |file|
39 while line = file.gets
40 if charset == line
41 file.close
42 return true
43 end
44 end
45 end
46 return false
47 end
48 end
49
50 class DV_Multimedia < DV_Encapsulated
51
52 end
53
54 class DV_Parsable < DV_Encapsulated
55 attr_reader :value, :formalism
56 def initialize(value, formalism, charset = nil, language = nil)
57 @value = value
58 size_positive
59 formalism_validity(formalism)
60 @formalism = formalism
61 @charset, @language = charset, language
62 end
63 def size
64 value.size
65 end
66 private
67 def formalism_validity(formalism)
68 if formalism.nil
69 raise ArgumentError, "formalism must not be nil"
70 elsif formalism.empty?
71 raise ArgumentError, "formalism must nto be empty"
72 end
73 end
74 end
75 end # of Encapsulated
76 end # of Data_Types
77 end # of RM
78end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.