module ADIWG::Mdtranslator::Readers::MdJson::TimeInterval

Public Class Methods

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

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

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

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intTime = intMetadataClass.newTimeInterval

   # time interval - interval (required)
   if hTimeInt.has_key?('interval')
      interval = hTimeInt['interval']
      unless interval == ''
         if interval.is_a?(Numeric)
            intTime[:interval] = hTimeInt['interval']
         else
            @MessagePath.issueError(861, responseObj, inContext)
         end
      end
   end
   if intTime[:interval].nil? || intTime[:interval] == ''
      @MessagePath.issueError(862, responseObj, inContext)
   end

   # time interval - units (required) {enum}
   if hTimeInt.has_key?('units')
      units = hTimeInt['units']
      unless units.nil?
         if %w{year month day hour minute second}.one? {|word| word == units}
            intTime[:units] = hTimeInt['units']
         end
      end
   end
   if intTime[:units].nil? || intTime[:units] == ''
      @MessagePath.issueError(863, responseObj, inContext)
   end

   return intTime
end