class ADIWG::Mdtranslator::Writers::Fgdc::TaxonomySystem
Public Class Methods
new(xml, hResponseObj)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomySystem.rb, line 19 def initialize(xml, hResponseObj) @xml = xml @hResponseObj = hResponseObj @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc end
Public Instance Methods
writeXML(hTaxonomy)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomySystem.rb, line 25 def writeXML(hTaxonomy) # classes used citationClass = Citation.new(@xml, @hResponseObj) contactClass = Contact.new(@xml, @hResponseObj) # taxonomic system (classsys) - classification system [] (required) hTaxonomy[:taxonSystem].each do |hSystem| @xml.tag!('classsys') do # taxonomic system (classcit) - system citation (required) {citation} unless hSystem[:citation].empty? @xml.tag!('classcit') do citationClass.writeXML(hSystem[:citation], [], 'taxonomic classification system') end end if hSystem[:citation].empty? @NameSpace.issueWarning(430, nil) end # taxonomic system (classmod) - system modifications unless hSystem[:modifications].nil? @xml.tag!('classmod', hSystem[:modifications]) end if hSystem[:modifications].nil? && @hResponseObj[:writerShowTags] @xml.tag!('classmod') end end end if hTaxonomy[:taxonSystem].empty? @NameSpace.issueWarning(431, nil) end # taxonomic system (idref) - identification reference [] {citation} hTaxonomy[:idReferences].each do |hCitation| unless hCitation.empty? @xml.tag!('idref') do citationClass.writeXML(hCitation, []) end end end # taxonomic system (ider) - observer # <- hTaxonomy[:observers] role = 'observer' haveObserver = false aRParties = hTaxonomy[:observers] aObservers = @NameSpace.find_responsibility(aRParties, 'observer') aObservers.each do |contactId| hContact = @NameSpace.get_contact(contactId) unless hContact.empty? @xml.tag!('ider') do contactClass.writeXML(hContact) haveObserver = true end end end if !haveObserver && @hResponseObj[:writerShowTags] @xml.tag!('ider') end # taxonomic system (taxonpro) - taxonomic procedures (required) unless hTaxonomy[:idProcedure].nil? @xml.tag!('taxonpro', hTaxonomy[:idProcedure]) end if hTaxonomy[:idProcedure].nil? @NameSpace.issueWarning(432, 'taxonpro') end # taxonomic system (taxoncom) - taxonomic identification completeness unless hTaxonomy[:idCompleteness].nil? @xml.tag!('taxoncom', hTaxonomy[:idCompleteness]) end if hTaxonomy[:idCompleteness].nil? && @hResponseObj[:writerShowTags] @xml.tag!('taxoncom') end # taxonomic system (vouchers) - taxonomic voucher [] hTaxonomy[:vouchers].each do |hVoucher| @xml.tag!('vouchers') do # voucher (specimen) - specimen (required) unless hVoucher[:specimen].nil? @xml.tag!('specimen', hVoucher[:specimen]) end if hVoucher[:specimen].nil? @NameSpace.issueWarning(433, 'specimen') end # voucher (repository) - repository (required) # take first party as repository custodian unless hVoucher[:repository].empty? aRParties = hVoucher[:repository][:parties] contactId = aRParties[0][:contactId] hContact = @NameSpace.get_contact(contactId) unless hContact.empty? @xml.tag!('repository') do contactClass.writeXML(hContact) end end if hContact.empty? @NameSpace.issueWarning(434, nil) end end if hVoucher[:repository].empty? @NameSpace.issueWarning(434, nil) end end if hTaxonomy[:vouchers].empty? && @hResponseObj[:writerShowTags] @xml.tag!('vouchers') end end end