module ADIWG::Mdtranslator::Readers::MdJson::Source
Public Class Methods
unpack(hSource, responseObj, inContext = nil)
click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb, line 29 def self.unpack(hSource, responseObj, inContext = nil) @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson # return nil object if input is empty if hSource.empty? @MessagePath.issueWarning(770, responseObj, inContext) return nil end # instance classes needed in script intMetadataClass = InternalMetadata.new intSource = intMetadataClass.newDataSource outContext = 'source' outContext = inContext + ' > ' + outContext unless inContext.nil? haveRequired = false # source - source ID if hSource.has_key?('sourceId') unless hSource['sourceId'] == '' intSource[:sourceId] = hSource['sourceId'] end end # source - description (required if) if hSource.has_key?('description') unless hSource['description'] == '' intSource[:description] = hSource['description'] haveRequired = true end end # source - source citation if hSource.has_key?('sourceCitation') hObject = hSource['sourceCitation'] unless hObject.empty? hReturn = Citation.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSource[:sourceCitation] = hReturn end end end # source - source metadata [] if hSource.has_key?('metadataCitation') aCitation = hSource['metadataCitation'] aCitation.each do |item| hCitation = Citation.unpack(item, responseObj, outContext) unless hCitation.nil? intSource[:metadataCitations] << hCitation end end end # source - spatial resolution if hSource.has_key?('spatialResolution') hObject = hSource['spatialResolution'] unless hObject.empty? hReturn = SpatialResolution.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSource[:spatialResolution] = hReturn end end end # source - reference system if hSource.has_key?('referenceSystem') hObject = hSource['referenceSystem'] unless hObject.empty? hReturn = SpatialReferenceSystem.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSource[:referenceSystem] = hReturn end end end # source - source steps [] if hSource.has_key?('sourceProcessStep') aSteps = hSource['sourceProcessStep'] aSteps.each do |item| hStep = ProcessStep.unpack(item, responseObj, outContext) unless hStep.nil? intSource[:sourceSteps] << hStep end end end # source - scope {scope} (required if) if hSource.has_key?('scope') hObject = hSource['scope'] unless hObject.empty? hReturn = Scope.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSource[:scope] = hReturn haveRequired = true end end end # source - processed level {identifier} if hSource.has_key?('processedLevel') hObject = hSource['processedLevel'] unless hObject.empty? hReturn = Identifier.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSource[:processedLevel] = hReturn end end end # source - resolution {nominalResolution} if hSource.has_key?('resolution') hObject = hSource['resolution'] unless hObject.empty? hReturn = NominalResolution.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSource[:resolution] = hReturn end end end unless haveRequired @MessagePath.issueError(771, responseObj, inContext) end return intSource end