module ADIWG::Mdtranslator::Readers::MdJson::Medium

Public Class Methods

unpack(hMedium, responseObj, inContext = nil) click to toggle source
# 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

   # return nil object if input is empty
   if hMedium.empty?
      @MessagePath.issueWarning(550, responseObj, inContext)
      return nil
   end

   outContext = 'offline option'
   outContext = inContext + ' > ' + outContext unless inContext.nil?

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intMedium = intMetadataClass.newMedium

   # medium - mediumSpecification {citation}
   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

   # medium - density
   if hMedium.has_key?('density')
      unless hMedium['density'] == ''
         intMedium[:density] = hMedium['density']
      end
   end

   # medium - units
   if hMedium.has_key?('units')
      unless hMedium['units'] == ''
         intMedium[:units] = hMedium['units']
      end
   end

   # medium - numberOfVolumes
   if hMedium.has_key?('numberOfVolumes')
      unless hMedium['numberOfVolumes'] == ''
         intMedium[:numberOfVolumes] = hMedium['numberOfVolumes']
      end
   end

   # medium - numberOfVolumes
   if hMedium.has_key?('numberOfVolumes')
      unless hMedium['numberOfVolumes'] == ''
         intMedium[:numberOfVolumes] = hMedium['numberOfVolumes']
      end
   end

   # medium - mediumFormat
   if hMedium.has_key?('mediumFormat')
      hMedium['mediumFormat'].each do |item|
         if item != ''
            intMedium[:mediumFormat] << item
         end
      end
   end

   # medium - note
   if hMedium.has_key?('note')
      unless hMedium['note'] == ''
         intMedium[:note] = hMedium['note']
      end
   end

   # medium - identifier
   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