module ADIWG::Mdtranslator::Readers::MdJson::BoundingBox

Public Class Methods

unpack(hBBox, responseObj, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb, line 16
def self.unpack(hBBox, responseObj, inContext = nil)

   @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

   # return nil object if input is empty
   if hBBox.empty?
      @MessagePath.issueWarning(70, responseObj, inContext)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intBBox = intMetadataClass.newBoundingBox

   # bounding box - west longitude (required)
   if hBBox.has_key?('westLongitude')
      intBBox[:westLongitude] = hBBox['westLongitude']
   end
   if intBBox[:westLongitude].nil? || intBBox[:westLongitude] == ''
      @MessagePath.issueError(71, responseObj, inContext)
   elsif intBBox[:westLongitude].abs > 180
      @MessagePath.issueError(72, responseObj, inContext)
   end

   # bounding box - east longitude (required)
   if hBBox.has_key?('eastLongitude')
      intBBox[:eastLongitude] = hBBox['eastLongitude']
   end
   if intBBox[:eastLongitude].nil? || intBBox[:eastLongitude] == ''
      @MessagePath.issueError(73, responseObj, inContext)
   elsif intBBox[:eastLongitude].abs > 180
      @MessagePath.issueError(72, responseObj, inContext)
   end

   # bounding box - south latitude (required)
   if hBBox.has_key?('southLatitude')
      intBBox[:southLatitude] = hBBox['southLatitude']
   end
   if intBBox[:southLatitude].nil? || intBBox[:southLatitude] == ''
      @MessagePath.issueError(74, responseObj, inContext)
   elsif intBBox[:southLatitude].abs > 90
      @MessagePath.issueError(75, responseObj, inContext)
   end

   # bounding box - north latitude (required)
   if hBBox.has_key?('northLatitude')
      intBBox[:northLatitude] = hBBox['northLatitude']
   end
   if intBBox[:northLatitude].nil? || intBBox[:northLatitude] == ''
      @MessagePath.issueError(76, responseObj, inContext)
   elsif intBBox[:northLatitude].abs > 90
      @MessagePath.issueError(75, responseObj, inContext)
   end

   # bounding box - minimum altitude
   if hBBox.has_key?('minimumAltitude')
      unless hBBox['minimumAltitude'].nil? || hBBox['minimumAltitude'] == ''
         intBBox[:minimumAltitude] = hBBox['minimumAltitude']
      end
   end

   # bounding box - maximum altitude
   if hBBox.has_key?('maximumAltitude')
      unless hBBox['maximumAltitude'].nil? || hBBox['maximumAltitude'] == ''
         intBBox[:maximumAltitude] = hBBox['maximumAltitude']
      end
   end

   # bounding box - altitude units of measure
   if hBBox.has_key?('unitsOfAltitude')
      unless hBBox['unitsOfAltitude'].nil? || hBBox['unitsOfAltitude'] == ''
         intBBox[:unitsOfAltitude] = hBBox['unitsOfAltitude']
      end
   end
   unless intBBox[:minimumAltitude].nil? && intBBox[:maximumAltitude].nil?
      if intBBox[:unitsOfAltitude].nil? || intBBox[:unitsOfAltitude] == ''
         @MessagePath.issueError(77, responseObj, inContext)
      end
   end

   return intBBox

end