IClass GetClassFromImportedNames(string name)
        {
            string moduleName = resolverContext.GetModuleForImportedName(name);

            if (moduleName != null)
            {
                name = resolverContext.UnaliasImportedName(name);
                string fullyQualifiedName = GetQualifiedClassName(moduleName, name);
                return(resolverContext.GetClass(fullyQualifiedName));
            }
            return(null);
        }
        public IClass GetClass(PythonResolverContext resolverContext, string name)
        {
            this.resolverContext = resolverContext;

            if (String.IsNullOrEmpty(name))
            {
                return(null);
            }

            IClass matchedClass = resolverContext.GetClass(name);

            if (matchedClass != null)
            {
                return(matchedClass);
            }

            matchedClass = GetClassFromImportedNames(name);
            if (matchedClass != null)
            {
                return(matchedClass);
            }

            matchedClass = GetClassFromNamespaceThatImportsEverything(name);
            if (matchedClass != null)
            {
                return(matchedClass);
            }

            return(GetClassFromDottedImport(name));
        }
		public IClass GetClass(PythonResolverContext resolverContext, string name)
		{
			this.resolverContext = resolverContext;
			
			if (String.IsNullOrEmpty(name)) {
				return null;
			}
			
			IClass matchedClass = resolverContext.GetClass(name);
			if (matchedClass != null) {
				return matchedClass;
			}
			
			matchedClass = GetClassFromImportedNames(name);
			if (matchedClass != null) {
				return matchedClass;
			}
			
			matchedClass = GetClassFromNamespaceThatImportsEverything(name);
			if (matchedClass != null) {
				return matchedClass;
			}
			
			return GetClassFromDottedImport(name);
		}