module ADIWG::Mdtranslator::Readers::Fgdc::Method

Public Class Methods

unpack(hLineage, axMethods, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb, line 19
def self.unpack(hLineage, axMethods, hResponseObj)

   statement = ''
   intObj = Fgdc.get_intObj
   hResourceInfo = intObj[:metadata][:resourceInfo]

   axMethods.each do |xMethod|

      # methodology bio (methtype) - method type (not supported)

      # methodology bio (methodid) - method identifier [] {keyword}
      axKeywords = xMethod.xpath('./methodid')
      unless axKeywords.empty?
         axKeywords.each do |xKeyword|
            Keyword.unpack(xKeyword, hResourceInfo, hResponseObj)
         end
      end

      # methodology bio (methdesc) - method description (required)
      description = xMethod.xpath('./methdesc').text
      unless description.empty?
         statement += description + '; '
      end
      if description.empty?
         hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: BIO lineage methodology description is missing'
      end

      # methodology bio (methcite) - method citation [] {citation}
      axCitations = xMethod.xpath('./methcite')
      unless axCitations.empty?
         axCitations.each do |xCitation|
            hReturn = Citation.unpack(xCitation, hResponseObj)
            unless hReturn.nil?
               hLineage[:lineageCitation] << hReturn
            end
         end
      end

   end

   unless statement.empty?
      statement.chomp!('; ')
      hLineage[:statement] = statement
   end

   return hLineage

end