module ADIWG::Mdtranslator::Readers::MdJson::Measure

Public Class Methods

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

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

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

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intMeasure = intMetadataClass.newMeasure

   # measure - type enumeration (required)
   if hMeasure.has_key?('type')
      unless hMeasure['type'] == ''
         type = hMeasure['type']
         if %w{ distance length vertical angle measure scale }.one? {|word| word == type}
            intMeasure[:type] = hMeasure['type']
         else
            @MessagePath.issueError(541, responseObj, inContext)
         end
      end
   end
   if intMeasure[:type].nil? || intMeasure[:type] == ''
      @MessagePath.issueError(542, responseObj, inContext)
   end

   # measure - value (required)
   if hMeasure.has_key?('value')
      intMeasure[:value] = hMeasure['value']
   end
   if intMeasure[:value].nil? || intMeasure[:value] == ''
      @MessagePath.issueError(543, responseObj, inContext)
   end

   # measure - unit of measure (required)
   if hMeasure.has_key?('unitOfMeasure')
      intMeasure[:unitOfMeasure] = hMeasure['unitOfMeasure']
   end
   if intMeasure[:unitOfMeasure].nil? || intMeasure[:unitOfMeasure] == ''
      @MessagePath.issueError(544, responseObj, inContext)
   end

   return intMeasure

end