module ADIWG::Mdtranslator::Readers::MdJson::Keyword

Public Class Methods

unpack(hKeyword, responseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb, line 27
def self.unpack(hKeyword, responseObj)

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

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

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intKeyword = intMetadataClass.newKeyword

   outContext = 'keywords'

   # keyword - keyword [] (required)
   if hKeyword.has_key?('keyword')
      hKeyword['keyword'].each do |hItem|
         unless hItem.empty?
            hReturn = KeywordObject.unpack(hItem, responseObj)
            unless hReturn.nil?
               intKeyword[:keywords] << hReturn
            end
         end
      end
   end
   if intKeyword[:keywords].empty?
      @MessagePath.issueError(471, responseObj)
   end

   # keyword - keyType
   if hKeyword.has_key?('keywordType')
      unless hKeyword['keywordType'] == ''
         intKeyword[:keywordType] = hKeyword['keywordType']
      end
   end

   # keyword - thesaurus {citation}
   if hKeyword.has_key?('thesaurus')
      hObject = hKeyword['thesaurus']
      unless hObject.empty?
         hReturn = Citation.unpack(hObject, responseObj, outContext)
         unless hReturn.nil?
            intKeyword[:thesaurus] = hReturn
         end
      end
   end

   return intKeyword

end