module ADIWG::Mdtranslator::Readers::MdJson::DomainItem

Public Class Methods

unpack(hDomItem, responseObj, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb, line 23
def self.unpack(hDomItem, responseObj, inContext = nil)

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

   # return nil object if input is empty
   if hDomItem.empty?
      @MessagePath.issueWarning(210, responseObj, inContext)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intItem = intMetadataClass.newDomainItem

   # data dictionary domain item - name (required)
   if hDomItem.has_key?('name')
      intItem[:itemName] = hDomItem['name']
   end
   if intItem[:itemName].nil? || intItem[:itemName] == ''
      @MessagePath.issueError(211, responseObj, inContext)
   end

   # data dictionary domain item - value (required)
   if hDomItem.has_key?('value')
      intItem[:itemValue] = hDomItem['value']
   end
   if intItem[:itemValue].nil? || intItem[:itemValue] == ''
      @MessagePath.issueError(212, responseObj, inContext)
   end

   # data dictionary domain item - definition (required)
   if hDomItem.has_key?('definition')
      intItem[:itemDefinition] = hDomItem['definition']
   end
   if intItem[:itemDefinition].nil? || intItem[:itemDefinition] == ''
      @MessagePath.issueError(213, responseObj, inContext)
   end

   # data dictionary domain item - reference {citation}
   if hDomItem.has_key?('reference')
      hCitation = hDomItem['reference']
      unless hCitation.empty?
         hReturn = Citation.unpack(hCitation, responseObj, inContext)
         unless hReturn.nil?
            intItem[:itemReference] = hReturn
         end
      end
   end

   return intItem
end