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