class ADIWG::Mdtranslator::Writers::Fgdc::Lineage
Public Class Methods
new(xml, hResponseObj)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_lineage.rb, line 20 def initialize(xml, hResponseObj) @xml = xml @hResponseObj = hResponseObj @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc end
Public Instance Methods
writeXML(aLineage)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_lineage.rb, line 26 def writeXML(aLineage) # take only the first lineage description hLineage = aLineage[0] aSourceCollection = [] haveStep = false # classes used methodClass = Method.new(@xml, @hResponseObj) sourceClass = Source.new(@xml, @hResponseObj) processClass = Process.new(@xml, @hResponseObj) # lineage bio (method) - methodology methodClass.writeXML(hLineage) # lineage 2.5.1 (srcinfo) - source information [] # <- lineage.source hLineage[:dataSources].each do |hSource| sourceClass.writeXML(hSource, aSourceCollection) end # lineage 2.5.1 (srcinfo) - source information from source process steps [] # <- lineage.processSteps.stepSources/stepProducts hLineage[:processSteps].each do |hProcess| hProcess[:stepSources].each do |hStepSource| sourceClass.writeXML(hStepSource, aSourceCollection) end hProcess[:stepProducts].each do |hStepProduct| sourceClass.writeXML(hStepProduct, aSourceCollection) end end # the search for sources is circular, I'm stopping here. if aSourceCollection.empty? && @hResponseObj[:writerShowTags] @xml.tag!('srcinfo') end # lineage 2.5.2 (procstep) - process step (required) hLineage[:processSteps].each do |hStep| @xml.tag!('procstep') do processClass.writeXML(hStep) haveStep = true end end # lineage 2.5.2 (procstep) - process steps from source (required) hLineage[:dataSources].each do |hSource| hSource[:sourceSteps].each do |hStep| @xml.tag!('procstep') do processClass.writeXML(hStep) haveStep = true end end end unless haveStep @NameSpace.issueWarning(200, 'procstep') end # the search for process steps is circular, I'm stopping here. end