lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb in adiwg-mdtranslator-2.13.0 vs lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb in adiwg-mdtranslator-2.13.1
- old
+ new
@@ -1,10 +1,10 @@
# unpack transfer option
# Reader - ADIwg JSON to internal data structure
# History:
-# Stan Smith 2018-02-19 refactored error and warning messaging
+# Stan Smith 2018-06-27 refactored error and warning messaging
# Stan Smith 2016-10-21 original script
require_relative 'module_medium'
require_relative 'module_format'
require_relative 'module_onlineResource'
@@ -15,22 +15,27 @@
module Readers
module MdJson
module TransferOption
- def self.unpack(hTransOp, responseObj)
+ def self.unpack(hTransOp, responseObj, inContext = nil)
+ @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson
+
# return nil object if input is empty
if hTransOp.empty?
- responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: distributor transfer option object is empty'
+ @MessagePath.issueWarning(880, responseObj, inContext)
return nil
end
# instance classes needed in script
intMetadataClass = InternalMetadata.new
intTransOpt = intMetadataClass.newTransferOption
+ outContext = 'transfer option'
+ outContext = inContext + ' > ' + outContext unless inContext.nil?
+
# transfer option - units of distribution
if hTransOp.has_key?('unitsOfDistribution')
unless hTransOp['unitsOfDistribution'] == ''
intTransOpt[:unitsOfDistribution] = hTransOp['unitsOfDistribution']
end
@@ -45,22 +50,22 @@
haveOption = false
# transfer option - online option [onlineResource]
if hTransOp.has_key?('onlineOption')
hTransOp['onlineOption'].each do |item|
- hReturn = OnlineResource.unpack(item, responseObj)
+ hReturn = OnlineResource.unpack(item, responseObj, outContext)
unless hReturn.nil?
intTransOpt[:onlineOptions] << hReturn
haveOption = true
end
end
end
# transfer option - offline option [medium]
if hTransOp.has_key?('offlineOption')
hTransOp['offlineOption'].each do |item|
- hReturn = Medium.unpack(item, responseObj)
+ hReturn = Medium.unpack(item, responseObj, outContext)
unless hReturn.nil?
intTransOpt[:offlineOptions] << hReturn
haveOption = true
end
end
@@ -68,30 +73,29 @@
# transfer option - transferFrequency {duration}
if hTransOp.has_key?('transferFrequency')
hObject = hTransOp['transferFrequency']
unless hObject.empty?
- hReturn = Duration.unpack(hObject, responseObj)
+ hReturn = Duration.unpack(hObject, responseObj, outContext)
unless hReturn.nil?
intTransOpt[:transferFrequency] = hReturn
end
end
end
# transfer option - distribution format [format]
if hTransOp.has_key?('distributionFormat')
hTransOp['distributionFormat'].each do |item|
- hReturn = Format.unpack(item, responseObj)
+ hReturn = Format.unpack(item, responseObj, outContext)
unless hReturn.nil?
intTransOpt[:distributionFormats] << hReturn
end
end
end
# error messages
unless haveOption
- responseObj[:readerExecutionMessages] <<
- 'WARNING: mdJson reader: transfer option did not provide an online or offline option'
+ @MessagePath.issueWarning(881, responseObj, inContext)
end
return intTransOpt
end