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

- old
+ new

@@ -1,25 +1,27 @@ # unpack bounding box # Reader - ADIwg JSON to internal data structure # History: -# Stan Smith 2018-02-18 refactored error and warning messaging +# Stan Smith 2018-06-15 refactored error and warning messaging # Stan Smith 2017-09-28 add altitude to support fgdc # Stan Smith 2016-12-01 original script module ADIWG module Mdtranslator module Readers module MdJson module BoundingBox - def self.unpack(hBBox, responseObj) + def self.unpack(hBBox, responseObj, inContext = nil) + @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson + # return nil object if input is empty if hBBox.empty? - responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: bounding box object is empty' + @MessagePath.issueWarning(70, responseObj, inContext) return nil end # instance classes needed in script intMetadataClass = InternalMetadata.new @@ -28,64 +30,44 @@ # bounding box - west longitude (required) if hBBox.has_key?('westLongitude') intBBox[:westLongitude] = hBBox['westLongitude'] end if intBBox[:westLongitude].nil? || intBBox[:westLongitude] == '' - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box west boundary is missing' - responseObj[:readerExecutionPass] = false - return nil + @MessagePath.issueError(71, responseObj, inContext) + elsif intBBox[:westLongitude].abs > 180 + @MessagePath.issueError(72, responseObj, inContext) end - if intBBox[:westLongitude].abs > 180 - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box longitude must be between -180 and +180' - responseObj[:readerExecutionPass] = false - return nil - end # bounding box - east longitude (required) if hBBox.has_key?('eastLongitude') intBBox[:eastLongitude] = hBBox['eastLongitude'] end if intBBox[:eastLongitude].nil? || intBBox[:eastLongitude] == '' - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box east boundary is missing' - responseObj[:readerExecutionPass] = false - return nil + @MessagePath.issueError(73, responseObj, inContext) + elsif intBBox[:eastLongitude].abs > 180 + @MessagePath.issueError(72, responseObj, inContext) end - if intBBox[:eastLongitude].abs > 180 - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box longitude must be between -180 and +180' - responseObj[:readerExecutionPass] = false - return nil - end # bounding box - south latitude (required) if hBBox.has_key?('southLatitude') intBBox[:southLatitude] = hBBox['southLatitude'] end if intBBox[:southLatitude].nil? || intBBox[:southLatitude] == '' - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box south boundary is missing' - responseObj[:readerExecutionPass] = false - return nil + @MessagePath.issueError(74, responseObj, inContext) + elsif intBBox[:southLatitude].abs > 90 + @MessagePath.issueError(75, responseObj, inContext) end - if intBBox[:southLatitude].abs > 90 - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box latitude must be between -90 and +90' - responseObj[:readerExecutionPass] = false - return nil - end # bounding box - north latitude (required) if hBBox.has_key?('northLatitude') intBBox[:northLatitude] = hBBox['northLatitude'] end if intBBox[:northLatitude].nil? || intBBox[:northLatitude] == '' - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box north boundary is missing' - responseObj[:readerExecutionPass] = false - return nil + @MessagePath.issueError(76, responseObj, inContext) + elsif intBBox[:northLatitude].abs > 90 + @MessagePath.issueError(75, responseObj, inContext) end - if intBBox[:northLatitude].abs > 90 - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box latitude must be between -90 and +90' - responseObj[:readerExecutionPass] = false - return nil - end # bounding box - minimum altitude if hBBox.has_key?('minimumAltitude') unless hBBox['minimumAltitude'].nil? || hBBox['minimumAltitude'] == '' intBBox[:minimumAltitude] = hBBox['minimumAltitude'] @@ -105,12 +87,10 @@ intBBox[:unitsOfAltitude] = hBBox['unitsOfAltitude'] end end unless intBBox[:minimumAltitude].nil? && intBBox[:maximumAltitude].nil? if intBBox[:unitsOfAltitude].nil? || intBBox[:unitsOfAltitude] == '' - responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: bounding box altitude units of measure are missing' - responseObj[:readerExecutionPass] = false - return nil + @MessagePath.issueError(77, responseObj, inContext) end end return intBBox