module ADIWG::Mdtranslator::Readers::MdJson::ResourceLineage
Public Class Methods
unpack(hLineage, responseObj)
click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb, line 25 def self.unpack(hLineage, responseObj) @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson # return nil object if input is empty if hLineage.empty? @MessagePath.issueWarning(500, responseObj) return nil end # instance classes needed in script intMetadataClass = InternalMetadata.new intLineage = intMetadataClass.newLineage outContext = 'resource lineage' haveLineage = false # lineage - statement if hLineage.has_key?('statement') unless hLineage['statement'] == '' intLineage[:statement] = hLineage['statement'] haveLineage = true end end # lineage - resource scope if hLineage.has_key?('scope') hObject = hLineage['scope'] unless hObject.empty? hReturn = Scope.unpack(hObject, responseObj, outContext) unless hReturn.nil? intLineage[:resourceScope] = hReturn end end end # lineage - citation [] if hLineage.has_key?('citation') aCitation = hLineage['citation'] aCitation.each do |item| hCitation = Citation.unpack(item, responseObj, outContext) unless hCitation.nil? intLineage[:lineageCitation] << hCitation end end end # lineage - sources [] if hLineage.has_key?('source') aSource = hLineage['source'] aSource.each do |item| hSource = Source.unpack(item, responseObj, outContext) unless hSource.nil? intLineage[:dataSources] << hSource haveLineage = true end end end # lineage - process steps [] if hLineage.has_key?('processStep') aSteps = hLineage['processStep'] aSteps.each do |item| hSteps = ProcessStep.unpack(item, responseObj, outContext) unless hSteps.nil? intLineage[:processSteps] << hSteps haveLineage = true end end end unless haveLineage @MessagePath.issueError(501, responseObj) end return intLineage end