class ADIWG::Mdtranslator::Writers::Iso19115_2::LE_Source

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_leSource.rb, line 21
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
end

Public Instance Methods

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

   # classes used
   fractionClass = MD_RepresentativeFraction.new(@xml, @hResponseObj)
   systemClass = MD_ReferenceSystem.new(@xml, @hResponseObj)
   citationClass = CI_Citation.new(@xml, @hResponseObj)
   stepClass = ProcessStep.new(@xml, @hResponseObj)
   identifierClass = RS_Identifier.new(@xml, @hResponseObj)
   resolutionClass = LE_NominalResolution.new(@xml, @hResponseObj)

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

   outContext = 'source'
   outContext = outContext + ' ' + hSource[:sourceId].to_s unless hSource[:sourceId].nil?
   outContext = inContext + ' ' + outContext unless inContext.nil?

   @xml.tag!('gmi:LE_Source', attributes) do

      # source - description
      unless hSource[:description].nil?
         @xml.tag!('gmd:description') do
            @xml.tag!('gco:CharacterString', hSource[:description])
         end
      end
      if hSource[:description].nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:description')
      end

      # source - scale denominator {MD_RepresentativeFraction}
      hResolution = hSource[:spatialResolution]
      unless hResolution[:scaleFactor].nil?
         @xml.tag!('gmd:scaleDenominator') do
            fractionClass.writeXML(hResolution[:scaleFactor])
         end
      end
      if hResolution[:scaleFactor].nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:scaleDenominator')
      end

      # source - reference system {MD_ReferenceSystem}
      hSystem = hSource[:referenceSystem]
      unless hSystem.empty?
         @xml.tag!('gmd:sourceReferenceSystem') do
            systemClass.writeXML(hSystem)
         end
      end
      if hSystem.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:sourceReferenceSystem')
      end

      # source - citation {CI_Citation}
      hCitation = hSource[:sourceCitation]
      unless hCitation.empty?
         @xml.tag!('gmd:sourceCitation') do
            citationClass.writeXML(hCitation, outContext)
         end
      end
      if hCitation.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:sourceCitation')
      end

      # source - extent [] {EX_Extent} (not implemented)

      # source - source step [] {ProcessStep}
      aSteps = hSource[:sourceSteps]
      aSteps.each do |hStep|
         @xml.tag!('gmd:sourceStep') do
            stepClass.writeXML(hStep)
         end
      end
      if aSteps.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmd:sourceStep')
      end

      # source - processed level {RS_Identifier}
      hProcess = hSource[:processedLevel]
      unless hProcess.empty?
         @xml.tag!('gmi:processedLevel') do
            identifierClass.writeXML(hProcess, outContext)
         end
      end
      if hProcess.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmi:processedLevel')
      end

      # source - resolution {LE_NominalResolution}
      hNominal = hSource[:resolution]
      unless hNominal.empty?
         @xml.tag!('gmi:resolution') do
            resolutionClass.writeXML(hNominal, outContext)
         end
      end
      if hNominal.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gmi:resolution')
      end

   end # gmd:LE_Source tag
end