def _coerceLevel()

in scripts/yapl/Trace.py [0:0]


  def _coerceLevel(self,level):
    """
      Return an integer representation based on the given string representation. 
      The Trace.traceLevels hash table is used to do the translation.  The integer
      returned is one of the levels from the Level class.
  
      The incoming level is intended to be an integer or a Jython string.
    """
    if (type(level) == type(0)):
      if (level >= Level.NONE and level <= Level.FINEST):
        result = level
      else:
        raise TraceSpecificationException("Unknown integer trace level: %s  Valid integer trace levels: %s <= level <= %s" % (level, Level.NONE, Level.FINEST))
      #endIf
    elif (type(level) == type("") or type(level) == type(u"")):
      level = level.lower()
      # Need explicit test for None in the if condition because some valid trace
      # levels have a value of 0, e.g., none and off.
      if (Trace.traceLevels.get(level) == None):
        raise TraceSpecificationException("Unknown trace level: %s  Valid trace levels: %s" % (level,Trace.traceNames))
      else:
        result = Trace.traceLevels[level]
      #endIf
    else:
      raise TraceSpecificationException("Unexpected type of trace level, expected either a string or integer.")
    #endIf
    return result