class ADIWG::Mdtranslator::Writers::Iso19115_1::MD_MaintenanceInformation

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_maintenance.rb, line 19
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
   @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_1
end

Public Instance Methods

writeXML(hMaintenance, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_maintenance.rb, line 25
def writeXML(hMaintenance, inContext = nil)

   # classes used
   codelistClass = MD_Codelist.new(@xml, @hResponseObj)
   dateClass = CI_Date.new(@xml, @hResponseObj)
   partyClass = CI_Responsibility.new(@xml, @hResponseObj)
   scopeClass = MD_Scope.new(@xml, @hResponseObj)

   outContext = 'maintenance information'
   outContext = inContext + ' maintenance information' unless inContext.nil?

   @xml.tag! 'mmi:MD_MaintenanceInformation' do

      # maintenance information - frequency code {MD_MaintenanceFrequencyCode} (required)
      unless hMaintenance[:frequency].nil?
         @xml.tag!('mmi:maintenanceAndUpdateFrequency') do
            codelistClass.writeXML('mmi', 'iso_maintenanceFrequency', hMaintenance[:frequency])
         end
      end
      if hMaintenance[:frequency].nil?
         @NameSpace.issueWarning(220, 'mmi:maintenanceAndUpdateFrequency', inContext)
      end

      # maintenance information - maintenance dates [] {CI_Date}
      aDates = hMaintenance[:dates]
      aDates.each do |hDate|
         @xml.tag!('mmi:maintenanceDate') do
            dateClass.writeXML(hDate)
         end
      end
      if aDates.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('mmi:maintenanceDate')
      end

      # maintenance information - user defined maintenance frequency {TM_PeriodDuration} - not implemented

      # maintenance information - maintenance scope [] {MD_ScopeCode}
      aScopes = hMaintenance[:scopes]
      aScopes.each do |hScope|
         @xml.tag!('mmi:maintenanceScope') do
            scopeClass.writeXML(hScope, outContext)
         end
      end
      if aScopes.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('mmi:maintenanceScope')
      end

      # maintenance information - note []
      aNotes = hMaintenance[:notes]
      aNotes.each do |note|
         @xml.tag!('mmi:maintenanceNote') do
            @xml.tag!('gco:CharacterString', note)
         end
      end
      if aNotes.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('mmi:maintenanceNote')
      end

      # maintenance information - contact [{CI_ResponsibleParty}]
      aParties = hMaintenance[:contacts]
      aParties.each do |hParty|
         @xml.tag!('mmi:contact') do
            partyClass.writeXML(hParty, outContext)
         end
      end
      if aParties.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('mmi:contact')
      end

   end # gmd:MD_MaintenanceInformation tag
end