/// <summary> /// Find all types with the given names that can currently loaded. /// If the module or depending modules was not loaded then a empty list return. /// </summary> /// <param name="jniClassName">a class name with JNI syntax.</param> /// <returns>the list, never null</returns> internal IList <TargetType> FindTypes(String jniClassName) { String className = DebuggerUtils.ConvertJniClassName(jniClassName); IList <TargetType> result; try { result = nameTypeMap[className]; } catch (KeyNotFoundException) { result = new List <TargetType>(); nameTypeMap.Add(className, result); } IList <DebugType> types = FindTypesInModules(className); foreach (DebugType type in types) { bool isFound = false; foreach (TargetType tgType in result) { if (tgType.Identical(type)) { isFound = true; break; } } if (!isFound) { result.Add(new TargetType(type)); } } return(result); }