module ADIWG::Mdtranslator::Readers::MdJson::DataQuality

Public Class Methods

unpack(hDataQuality, responseObj, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb, line 15
def self.unpack(hDataQuality, responseObj, inContext = nil)
  @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

  if hDataQuality.empty?
    @MessagePath.issueWarning(300, responseObj)
    return nil
  end

  intMetadataClass = InternalMetadata.new
  intDataQuality = intMetadataClass.newDataQuality

  outContext = 'dataQuality'

  if hDataQuality.has_key?('scope')
    hObject = hDataQuality['scope']
    unless hObject.empty?
      hReturn = Scope.unpack(hObject, responseObj)
      unless hReturn.nil?
        intDataQuality[:scope] = hReturn
      end
    end
  end

  if hDataQuality.has_key?('standaloneQualityReport')
    hObject = hDataQuality['standaloneQualityReport']
    unless hObject.empty?
      intDataQuality[:standaloneQualityReport] = {}
      intDataQuality[:standaloneQualityReport][:abstract] = hObject["abstract"]

      unless hObject["reportRefereence"].nil? || hObject["reportReference"].empty?
        intDataQuality[:standaloneQualityReport][:reportReference] = Citation.unpack(hObject["reportReference"], responseObj, inContext)
      end
    end
  end

  if hDataQuality.has_key?('report')
    hDataQuality['report'].each do |item|
      report = DataQualityReport.unpack(item, responseObj, inContext)

      unless report.nil?
        intDataQuality[:report] << report
      end
    end
  end

  return intDataQuality

end