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