module ADIWG::Mdtranslator::Readers::MdJson::TaxonomicClassification

Public Class Methods

unpack(hTaxClass, responseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb, line 20
def self.unpack(hTaxClass, responseObj)

   @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

   # return nil object if input is empty
   if hTaxClass.empty?
      @MessagePath.issueWarning(810, responseObj)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intTaxClass = intMetadataClass.newTaxonClass

   # taxonomic classification - system ID
   if hTaxClass.has_key?('taxonomicSystemId')
      unless hTaxClass['taxonomicSystemId'] == ''
         intTaxClass[:taxonId] = hTaxClass['taxonomicSystemId']
      end
   end

   # taxonomic classification - taxon level (required)
   # renamed from 'taxonomicRank'
   if hTaxClass.has_key?('taxonomicLevel')
      intTaxClass[:taxonRank] = hTaxClass['taxonomicLevel']
   end
   # support deprecation until schema version 3.0
   if hTaxClass.has_key?('taxonomicRank')
      intTaxClass[:taxonRank] = hTaxClass['taxonomicRank']
      @MessagePath.issueNotice(811, responseObj)
   end
   if intTaxClass[:taxonRank].nil? || intTaxClass[:taxonRank] == ''
      @MessagePath.issueError(812, responseObj)
   end

   # taxonomic classification - taxonomic name (required)
   # renamed from 'latinName'
   if hTaxClass.has_key?('taxonomicName')
      intTaxClass[:taxonValue] = hTaxClass['taxonomicName']
   end
   # support deprecation until schema version 3.0
   if hTaxClass.has_key?('latinName')
      intTaxClass[:taxonValue] = hTaxClass['latinName']
      @MessagePath.issueNotice(813, responseObj)
   end
   if intTaxClass[:taxonValue].nil? || intTaxClass[:taxonValue] == ''
      @MessagePath.issueError(814, responseObj)
   end

   # taxonomic classification - common name []
   if hTaxClass.has_key?('commonName')
      hTaxClass['commonName'].each do |item|
         unless item == ''
            intTaxClass[:commonNames] << item
         end
      end
   end

   # taxonomic classification - taxonomic classification [taxonomicClassification]
   if hTaxClass.has_key?('subClassification')
      aItems = hTaxClass['subClassification']
      aItems.each do |item|
         hReturn = TaxonomicClassification.unpack(item, responseObj)
         unless hReturn.nil?
            intTaxClass[:subClasses] << hReturn
         end
      end
   end

   return intTaxClass

end