class ADIWG::Mdtranslator::Writers::Iso19115_2::MD_Distributor

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb, line 28
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
   @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_2
end

Public Instance Methods

writeXML(hDistributor) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb, line 34
def writeXML(hDistributor)

   # classes used
   partyClass = CI_ResponsibleParty.new(@xml, @hResponseObj)
   orderClass = MD_StandardOrderProcess.new(@xml, @hResponseObj)
   formatClass = MD_Format.new(@xml, @hResponseObj)
   transferClass = MD_DigitalTransferOptions.new(@xml, @hResponseObj)

   outContext = 'distributor'

   @xml.tag!('gmd:MD_Distributor') do

      # distributor - contact (required) {CI_ResponsibleParty}
      role = 'distributor'
      hParty = hDistributor[:contact][:parties][0]
      unless hParty.nil?
         @xml.tag!('gmd:distributorContact') do
            partyClass.writeXML(role, hParty, 'distributor')
         end
      end
      if hParty.nil?
         @NameSpace.issueWarning(90, 'gmd:distributorContact')
      end

      # distributor - order process [{MD_StandardOrderProcess}]
      aDistOrderProc = hDistributor[:orderProcess]
      aDistOrderProc.each do |hOrder|
         @xml.tag!('gmd:distributionOrderProcess') do
            orderClass.writeXML(hOrder)
         end
      end
      if aDistOrderProc.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:distributionOrderProcess')
      end

      # distributor - format [{MD_Format}]
      format = false
      aOptions = hDistributor[:transferOptions]
      aOptions.each do |hOption|
         aFormats = hOption[:distributionFormats]
         aFormats.each do |hFormat|
            format = true
            @xml.tag!('gmd:distributorFormat') do
               formatClass.writeXML(hFormat, outContext + ' format')
            end
         end
      end
      if !format && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:distributorFormat')
      end

      # distributor - transfer options [{MD_DigitalTransferOptions}]
      aOptions = hDistributor[:transferOptions]
      aOptions.each do |hOption|
         @xml.tag!('gmd:distributorTransferOptions') do
            transferClass.writeXML(hOption)
         end
      end
      if aOptions.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:distributorTransferOptions')
      end

   end # gmd:MD_Distributor tag
end