class ADIWG::Mdtranslator::Writers::Iso19115_2::LI_ProcessStep

Public Class Methods

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

Public Instance Methods

writeXML(hStep, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_liProcessStep.rb, line 32
def writeXML(hStep, inContext = nil)

   # classes used
   partyClass = CI_ResponsibleParty.new(@xml, @hResponseObj)
   sourceClass = Source.new(@xml, @hResponseObj)

   outContext = 'process step'
   outContext = outContext + ' ' + hStep[:stepId].to_s unless hStep[:stepId].nil?
   outContext = inContext + ' ' + outContext unless inContext.nil?

   # process step - id
   attributes = {}
   s = hStep[:stepId]
   unless s.nil?
      attributes = { id: s.gsub(/[^0-9A-Za-z]/,'') }
   end

   @xml.tag!('gmd:LI_ProcessStep', attributes) do

      # process step - description (required)
      s = hStep[:description]
      unless s.nil?
         @xml.tag!('gmd:description') do
            @xml.tag!('gco:CharacterString', s)
         end
      end
      if s.nil?
         @NameSpace.issueWarning(260, 'gmd:description', outContext)
      end

      # process step - rationale
      s = hStep[:rationale]
      unless s.nil?
         @xml.tag!('gmd:rationale') do
            @xml.tag!('gco:CharacterString', s)
         end
      end
      if s.nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:rationale')
      end

      # process step - datetime
      hPeriod = hStep[:timePeriod]
      unless hPeriod.empty?
         hDate = hPeriod[:startDateTime]
         if hDate.empty?
            hDate = hPeriod[:endDateTime]
         end
         date = hDate[:dateTime]
         dateResolution = hDate[:dateResolution]
         s = AdiwgDateTimeFun.stringDateTimeFromDateTime(date, dateResolution)
         if s != 'ERROR'
            @xml.tag!('gmd:dateTime') do
               @xml.tag!('gco:DateTime', s)
            end
         end
      end
      if hPeriod.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:dateTime')
      end

      # process step - processor [] {CI_ResponsibleParty}
      aParties = hStep[:processors]
      aParties.each do |hRParty|
         role = hRParty[:roleName]
         aParties = hRParty[:parties]
         aParties.each do |hParty|
            @xml.tag!('gmd:processor') do
               partyClass.writeXML(role, hParty, outContext)
            end
         end
      end
      if aParties.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:processor')
      end

      # process step - source [] {Source}
      aSources = hStep[:stepSources]
      aSources.each do |hSource|
         @xml.tag!('gmd:source') do
            sourceClass.writeXML(hSource)
         end
      end
      if aSources.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:source')
      end

   end # gmd:LI_ProcessStep tag
end