lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb in adiwg-mdtranslator-2.13.0 vs lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb in adiwg-mdtranslator-2.13.1

- old
+ new

@@ -1,10 +1,10 @@ # unpack spatial reference system # Reader - ADIwg JSON to internal data structure # History: -# Stan Smith 2018-02-19 refactored error and warning messaging +# Stan Smith 2018-06-25 refactored error and warning messaging # Stan Smith 2018-01-10 added reference system WKT # Stan Smith 2017-10-23 added reference system parameter set # Stan Smith 2016-10-16 refactored for mdJson 2.0 # Stan Smith 2015-07-14 refactored to remove global namespace constants # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj) @@ -19,22 +19,26 @@ module Readers module MdJson module SpatialReferenceSystem - def self.unpack(hSpatialRef, responseObj) + def self.unpack(hSpatialRef, responseObj, inContext = nil) + @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson + # return nil object if input is empty if hSpatialRef.empty? - responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: spatial reference system object is empty' + @MessagePath.issueWarning(780, responseObj, inContext) return nil end # instance classes needed in script intMetadataClass = InternalMetadata.new intSpatialRef = intMetadataClass.newSpatialReferenceSystem + outContext = 'spatial reference system' + haveSystem = false # spatial reference system - type if hSpatialRef.has_key?('referenceSystemType') unless hSpatialRef['referenceSystemType'] == '' @@ -45,11 +49,11 @@ # spatial reference system - reference system {identifier} if hSpatialRef.has_key?('referenceSystemIdentifier') hObject = hSpatialRef['referenceSystemIdentifier'] unless hObject.empty? - hReturn = Identifier.unpack(hObject, responseObj) + hReturn = Identifier.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSpatialRef[:systemIdentifier] = hReturn haveSystem = true end end @@ -65,22 +69,19 @@ # spatial reference system - reference system parameters {referenceSystemParameterSet} if hSpatialRef.has_key?('referenceSystemParameterSet') hObject = hSpatialRef['referenceSystemParameterSet'] unless hObject.empty? - hReturn = ReferenceSystemParameters.unpack(hObject, responseObj) + hReturn = ReferenceSystemParameters.unpack(hObject, responseObj, outContext) unless hReturn.nil? intSpatialRef[:systemParameterSet] = hReturn haveSystem = true end end end unless haveSystem - responseObj[:readerExecutionMessages] << - 'ERROR: mdJson reader: spatial reference system must declare reference system type, identifier, WKT, or parameter set' - responseObj[:readerExecutionPass] = false - return nil + @MessagePath.issueError(781, responseObj, inContext) end return intSpatialRef end