void (@NotNull Project project, CommonProblemDescriptor @NotNull [] descriptors, List<I18nizedPropertyData<HardcodedStringInFormData>> dataList, HashSet<PsiFile> contextFiles, Map<VirtualFile, RadRootContainer> containerMap, Map<String, List<I18nizedPropertyData<HardcodedStringInFormData>>> duplicates) { final UniqueNameGenerator uniqueNameGenerator = new UniqueNameGenerator(); for (CommonProblemDescriptor descriptor : descriptors) { FormElementProblemDescriptor formElementProblemDescriptor = (FormElementProblemDescriptor)descriptor; PsiFile containingFile = formElementProblemDescriptor.getPsiElement().getContainingFile(); contextFiles.add(containingFile); VirtualFile virtualFile = containingFile.getVirtualFile(); final RadRootContainer rootContainer = containerMap.computeIfAbsent(virtualFile, f -> { try { final ClassLoader classLoader = LoaderFactory.getInstance(project).getLoader(virtualFile); LwRootContainer lwRootContainer = Utils.getRootContainer(containingFile.getText(), new CompiledClassPropertiesProvider(classLoader)); Module module = ModuleUtilCore.findModuleForFile(virtualFile, project); ModuleProvider moduleProvider = new ModuleProvider() { @Override public Module getModule() { return module; } @Override public Project getProject() { return project; } }; return XmlReader.createRoot(moduleProvider, lwRootContainer, LoaderFactory.getInstance(project).getLoader(virtualFile), null); } catch (Exception e) { LOG.error(e); return null; } }); if (rootContainer == null) continue; RadComponent component = (RadComponent)FormEditingUtil.findComponent(rootContainer, formElementProblemDescriptor.getComponentId()); if (component == null) continue; String propertyName = formElementProblemDescriptor.getPropertyName(); String value = getValue(component, propertyName); if (value == null) continue; String keyPrefix = suggestPropertyKeyPrefix(component, propertyName); String defaultKey = keyPrefix != null ? keyPrefix + "." + I18nizeQuickFixDialog.generateDefaultPropertyKey(value) : null; String key = uniqueNameGenerator.generateUniqueName(I18nizeQuickFixDialog.suggestUniquePropertyKey(value, defaultKey, null)); I18nizedPropertyData<HardcodedStringInFormData> data = new I18nizedPropertyData<>(key, value, new HardcodedStringInFormData(component, propertyName, containingFile)); if (duplicates.containsKey(value)) { duplicates.computeIfAbsent(value, k -> new ArrayList<>(1)).add(data); } else { dataList.add(data); duplicates.put(value, null); } } }