module ADIWG::Mdtranslator::Readers::MdJson::Distributor

Public Class Methods

unpack(hDistrib, responseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb, line 19
def self.unpack(hDistrib, responseObj)

   @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

   # return nil object if input is empty
   if hDistrib.empty?
      @MessagePath.issueWarning(190, responseObj)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intDistrib = intMetadataClass.newDistributor

   outContext = 'distributor'

   # distributor - contact {responsibleParty} (required)
   if hDistrib.has_key?('contact')
      hObject = hDistrib['contact']
      unless hObject.empty?
         hReturn = ResponsibleParty.unpack(hObject, responseObj, outContext)
         unless hReturn.nil?
            intDistrib[:contact] = hReturn
            contactId = hReturn[:parties][0][:contactId]
            unless contactId.nil?
               contactName = @MessagePath.findContact(contactId)[2]
               unless contactName.nil?
                  outContext = outContext + ' > ' + contactName
               end
            end
         end
      end
   end
   if intDistrib[:contact].empty?
      @MessagePath.issueError(191, responseObj)
   end

   # distributor - order process [orderProcess]
   if hDistrib.has_key?('orderProcess')
      aItems = hDistrib['orderProcess']
      aItems.each do |item|
         hReturn = OrderProcess.unpack(item, responseObj, outContext)
         unless hReturn.nil?
            intDistrib[:orderProcess] << hReturn
         end
      end
   end

   # distributor - transfer options [transferOption]
   if hDistrib.has_key?('transferOption')
      aItemss = hDistrib['transferOption']
      aItemss.each do |item|
         hReturn = TransferOption.unpack(item, responseObj, outContext)
         unless hReturn.nil?
            intDistrib[:transferOptions] << hReturn
         end
      end
   end

   return intDistrib

end