18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb', line 18
def self.unpack(hMedium, responseObj, inContext = nil)
@MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson
if hMedium.empty?
@MessagePath.issueWarning(550, responseObj, inContext)
return nil
end
outContext = 'offline option'
outContext = inContext + ' > ' + outContext unless inContext.nil?
intMetadataClass = InternalMetadata.new
intMedium = intMetadataClass.newMedium
if hMedium.has_key?('mediumSpecification')
hObject = hMedium['mediumSpecification']
unless hObject.empty?
hReturn = Citation.unpack(hObject, responseObj, outContext)
unless hReturn.nil?
intMedium[:mediumSpecification] = hReturn
end
end
end
if hMedium.has_key?('density')
unless hMedium['density'] == ''
intMedium[:density] = hMedium['density']
end
end
if hMedium.has_key?('units')
unless hMedium['units'] == ''
intMedium[:units] = hMedium['units']
end
end
if hMedium.has_key?('numberOfVolumes')
unless hMedium['numberOfVolumes'] == ''
intMedium[:numberOfVolumes] = hMedium['numberOfVolumes']
end
end
if hMedium.has_key?('numberOfVolumes')
unless hMedium['numberOfVolumes'] == ''
intMedium[:numberOfVolumes] = hMedium['numberOfVolumes']
end
end
if hMedium.has_key?('mediumFormat')
hMedium['mediumFormat'].each do |item|
if item != ''
intMedium[:mediumFormat] << item
end
end
end
if hMedium.has_key?('note')
unless hMedium['note'] == ''
intMedium[:note] = hMedium['note']
end
end
if hMedium.has_key?('identifier')
hObject = hMedium['identifier']
unless hObject.empty?
hReturn = Identifier.unpack(hObject, responseObj, outContext)
unless hReturn.nil?
intMedium[:identifier] = hReturn
end
end
end
return intMedium
end
|