module ADIWG::Mdtranslator::Readers::MdJson::Identifier

Public Class Methods

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

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

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

   outContext = 'identifier'
   outContext = inContext + ' > ' + outContext unless inContext.nil?

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intIdent = intMetadataClass.newIdentifier

   # identifier - identifier (required)
   if hIdentifier.has_key?('identifier')
      intIdent[:identifier] = hIdentifier['identifier']
   end
   if intIdent[:identifier].nil? || intIdent[:identifier] == ''
      @MessagePath.issueError(451, responseObj, inContext)
   end

   # identifier - namespace
   if hIdentifier.has_key?('namespace')
      unless hIdentifier['namespace'] == ''
         intIdent[:namespace] = hIdentifier['namespace']
      end
   end

   # identifier - version
   if hIdentifier.has_key?('version')
      unless hIdentifier['version'] == ''
         intIdent[:version] = hIdentifier['version']
      end
   end

   # identifier - description
   if hIdentifier.has_key?('description')
      unless hIdentifier['description'] == ''
         intIdent[:description] = hIdentifier['description']
      end
   end

   # identifier - authority (citation)
   if hIdentifier.has_key?('authority')
      hObject = hIdentifier['authority']
      unless hObject.empty?
         hReturn = Citation.unpack(hObject, responseObj, outContext)
         unless hReturn.nil?
            intIdent[:citation] = hReturn
         end
      end
   end

   return intIdent

end