def qualify namespace, context = ''
      # @todo The return for self might work better elsewhere
      return nil if namespace.nil?
      return qualify(context) if namespace == 'self'
      cached = cache.get_qualified_namespace(namespace, context)
      return cached.clone unless cached.nil?
      result = if namespace.start_with?('::')
                 inner_qualify(namespace[2..-1], '', [])
               else
                 inner_qualify(namespace, context, [])
               end
      cache.set_qualified_namespace(namespace, context, result)
      result
    end
def qualify namespace, context = ''
      # @todo The return for self might work better elsewhere
      return nil if namespace.nil?
      return qualify(context) if namespace == 'self'
      cached = cache.get_qualified_namespace(namespace, context)
      return cached.clone unless cached.nil?
      result = if namespace.start_with?('::')
                 inner_qualify(namespace[2..-1], '', [])
               else
                 inner_qualify(namespace, context, [])
               end
      cache.set_qualified_namespace(namespace, context, result)
      result
    end
Get a fully qualified namespace name. This method will start the search
 in the specified context until it finds a match for the name.

 @param namespace [String, nil] The namespace to match
 @param context [String] The context to search
 @return [String]