@NonNull private static Set<? extends ProjectProblemsProvider.ProjectProblem> getReferenceProblems(@NonNull final MakeProject project) { final List<BrokenLinks.BrokenLink> brokenLinks = BrokenLinks.getBrokenLinks(project); if (!brokenLinks.isEmpty()) { ProjectProblemsProvider.ProjectProblem error = ProjectProblemsProvider.ProjectProblem.createError( NbBundle.getMessage(ResolveReferencePanel.class, "Link_Resolve_Name"), //NOI18N NbBundle.getMessage(ResolveReferencePanel.class, "Link_Resolve_Description"), //NOI18N new ToolCollectionResolverImpl(project, brokenLinks)); return Collections.singleton(error); } return Collections.emptySet(); }
@NonNull private static Set<? extends ProjectProblemsProvider.ProjectProblem> getFormattingStyleProblems(@NonNull final MakeProject project) { List<Style> styles = getUndefinedFormattingStyles(project); if (styles != null && !styles.isEmpty()) { for(Style style : styles) { String source = ""; if (MIMENames.C_MIME_TYPE.equals(style.mime)) { source = NbBundle.getMessage(ResolveReferencePanel.class, "style_c"); //NOI18N } else if (MIMENames.CPLUSPLUS_MIME_TYPE.equals(style.mime)) { source = NbBundle.getMessage(ResolveReferencePanel.class, "style_cpp"); //NOI18N } else if (MIMENames.HEADER_MIME_TYPE.equals(style.mime)) { source = NbBundle.getMessage(ResolveReferencePanel.class, "style_header"); //NOI18N } String message = NbBundle.getMessage(ResolveReferencePanel.class, "style_resolve_description", style.aStyle.getDisplayName(), source); //NOI18N final ProjectProblemsProvider.ProjectProblem error = ProjectProblemsProvider.ProjectProblem.createError( NbBundle.getMessage(ResolveReferencePanel.class, "style_resolve_name"), //NOI18N message, new StyleResolverImpl(project, style)); return Collections.singleton(error); } } return Collections.emptySet(); }
@NonNull private static Set<? extends ProjectProblemsProvider.ProjectProblem> getVersionProblems(@NonNull final MakeProject project) { Set<ProjectProblemsProvider.ProjectProblem> set = new LinkedHashSet<>(); if (BrokenReferencesSupport.isIncorectVersion(project)) { ProjectProblemsProvider.ProjectProblem error = ProjectProblemsProvider.ProjectProblem.createError( NbBundle.getMessage(ResolveReferencePanel.class, "MSG_version_resolve_name"), //NOI18N NbBundle.getMessage(ResolveReferencePanel.class, "MSG_version_resolve_description"), //NOI18N new VersionResolverImpl(project)); set.add(error); } return set; }
ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.PROJECT, val), getDescription(RefType.PROJECT, val), final FileResolver fr = new FileResolver(val, helper, fileReoslvers); fileReoslvers.offer(fr); problem = ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.FILE, val), getDescription(RefType.FILE, val), problem = ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.VARIABLE, v), getDescription(RefType.VARIABLE, v), problem = ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.LIBRARY, val), getDescription(RefType.LIBRARY, val), ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.VARIABLE_CONTENT, v), getDescription(RefType.VARIABLE_CONTENT, v), ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.PROJECT, key), getDescription(RefType.PROJECT, key), fileReoslvers.offer(fr); set.add( ProjectProblemsProvider.ProjectProblem.createError(
ProjectProblemsProvider.ProjectProblem.createError( getDisplayName(RefType.PLATFORM, prop), getDescription(RefType.PLATFORM, prop),
@NbBundle.Messages({ "ProjectPropertiesProblemProvider.invalidTestDir.title=Invalid Test Files", "# {0} - test dir path", "ProjectPropertiesProblemProvider.invalidTestDir.description=The directory \"{0}\" cannot be used for Test Files." }) void checkTestDirs(Collection<ProjectProblem> currentProblems) { TestDirectoriesPathSupport testDirectoriesPathSupport = new TestDirectoriesPathSupport(ProjectPropertiesSupport.getPropertyEvaluator(project), project.getRefHelper(), project.getHelper()); Enumeration<BasePathSupport.Item> items = new PhpProjectProperties(project, null, null, testDirectoriesPathSupport) .getTestDirectoriesListModel() .elements(); int i = 0; while (items.hasMoreElements()) { BasePathSupport.Item item = items.nextElement(); ValidationResult result = new TestDirectoriesPathSupport.Validator() .validatePath(project, item) .getResult(); if (!result.hasErrors()) { continue; } ProjectProblem problem = ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidTestDir_title(), Bundle.ProjectPropertiesProblemProvider_invalidTestDir_description(item.getAbsoluteFilePath(project.getProjectDirectory())), new CustomizerProblemResolver(project, CompositePanelProviderImpl.TESTING, PhpProjectProperties.TEST_SRC_DIR + i)); currentProblems.add(problem); i++; } }
@NbBundle.Messages({ "# {0} - preprocessor name", "# {1} - message", "BaseProjectProblemsProvider.error={0}: {1}", }) protected void checkPreferences(Collection<ProjectProblem> currentProblems, Project project) { ValidationResult validationResult = validatePreferences(project); if (validationResult.isFaultless()) { return; } String message = validationResult.getFirstErrorMessage(); if (message == null) { message = validationResult.getFirstWarningMessage(); } assert message != null : "Message should be found for invalid preferences: " + getDisplayName(); message = Bundle.BaseProjectProblemsProvider_error(getDisplayName(), message); ProjectProblem problem = ProjectProblem.createError( message, message, new CustomizerProblemResolver(project)); currentProblems.add(problem); }
public Set<? extends ProjectProblemsProvider.ProjectProblem> getEnvProblems() { final UnsetEnvVar unset = getUndefinedEnvVars(); lastUnsetVar.set(unset); if (unset != null && !unset.getUndefinedEnvVars().isEmpty()) { final ProjectProblemsProvider.ProjectProblem error = ProjectProblemsProvider.ProjectProblem.createError( NbBundle.getMessage(ResolveReferencePanel.class, "env_var_resolve_name"), //NOI18N NbBundle.getMessage(ResolveReferencePanel.class, "env_var_resolve_description"), //NOI18N new EnvResolverImpl(project, unset)); ExecutionEnvironment env = unset.getExecutionEnvironment(); if (env.isRemote()) { synchronized (listeningEnvLock) { if (!env.equals(listeningEnv)) { listeningEnv = env; ConnectionNotifier.addTask(env, new ConnListener(project, lastUnsetVar)); } } } return Collections.singleton(error); } return Collections.emptySet(); }
@NbBundle.Messages({ "ProjectPropertiesProblemProvider.invalidWebRoot.title=Invalid Web Root", "# {0} - web root path", "ProjectPropertiesProblemProvider.invalidWebRoot.description=The directory \"{0}\" does not exist and cannot be used for Web Root." }) void checkWebRoot(Collection<ProjectProblem> currentProblems) { File webRoot = getWebRoot(); if (webRoot == null) { // project fatally broken => do not validate web root return; } File invalidDirectory = getInvalidDirectory(FileUtil.toFileObject(webRoot), PhpProjectProperties.WEB_ROOT); if (invalidDirectory != null) { ProjectProblem problem = ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidWebRoot_title(), Bundle.ProjectPropertiesProblemProvider_invalidWebRoot_description(invalidDirectory.getAbsolutePath()), new CustomizerProblemResolver(project, CompositePanelProviderImpl.SOURCES, PhpProjectProperties.WEB_ROOT)); currentProblems.add(problem); } }
@CheckForNull private ProjectProblem checkIncludePath(String includePathProperty) { IncludePathSupport includePathSupport = new IncludePathSupport(ProjectPropertiesSupport.getPropertyEvaluator(project), project.getRefHelper(), project.getHelper()); List<BasePathSupport.Item> items = includePathSupport.itemsList( ProjectPropertiesSupport.getPropertyEvaluator(project).getProperty(includePathProperty)); ValidationResult result = new IncludePathSupport.Validator() .validateBroken(items) .validatePaths(project, items) .getResult(); if (!result.hasErrors()) { return null; } return ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidIncludePath_title(), Bundle.ProjectPropertiesProblemProvider_invalidIncludePath_description(), new CustomizerProblemResolver(project, CompositePanelProviderImpl.PHP_INCLUDE_PATH, includePathProperty)); }
@Override protected void projectOpened() { final ClassPath classPath = getTestClassPath(p); if (classPath != null) { if (classPath.findResource(JUNIT3_SPECIFIC) != null || classPath.toString().contains("${libs.junit.classpath}")) { getJUnitProjectProblemsProvider(p).setProblem(ProjectProblem.createError( Bundle.Error_display_name_junit(), Bundle.Error_description_junit(), new JUnitProblemResolver(new UpdateToJUnit4Action(p, true), MISSING_JUNIT_BINARIES))); } if (classPath.findResource(JUNIT4_SPECIFIC) != null && classPath.findResource(HAMCREST_SPECIFIC) == null) { getJUnitProjectProblemsProvider(p).setProblem(ProjectProblem.createError( Bundle.Error_display_name_junit4(), Bundle.Error_description_junit4(), new JUnitProblemResolver(new UpdateToJUnit4Action(p, false), MISSING_JUNIT_BINARIES))); } } }
@NbBundle.Messages({ "ProjectPropertiesProblemProvider.invalidSeleniumDir.title=Invalid Selenium Test Files", "# {0} - selenium dir path", "ProjectPropertiesProblemProvider.invalidSeleniumDir.description=The directory \"{0}\" does not exist and cannot be used for Selenium Test Files.", "# {0} - project name", "ProjectPropertiesProblemProvider.invalidSeleniumDir.dialog.title=Select Selenium Test Files for {0}" }) void checkSeleniumDir(Collection<ProjectProblem> currentProblems) { File invalidDirectory = getInvalidDirectory(ProjectPropertiesSupport.getSeleniumDirectory(project, false), PhpProjectProperties.SELENIUM_SRC_DIR); if (invalidDirectory != null) { ProjectProblem problem = ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidSeleniumDir_title(), Bundle.ProjectPropertiesProblemProvider_invalidSeleniumDir_description(invalidDirectory.getAbsolutePath()), new DirectoryProblemResolver(project, PhpProjectProperties.SELENIUM_SRC_DIR, Bundle.ProjectPropertiesProblemProvider_invalidSeleniumDir_dialog_title(project.getName()))); currentProblems.add(problem); } }
@NbBundle.Messages({ "ProjectPropertiesProblemProvider.invalidSrcDir.title=Invalid Source Files", "# {0} - src dir path", "ProjectPropertiesProblemProvider.invalidSrcDir.description=The directory \"{0}\" does not exist and cannot be used for Source Files.", "# {0} - project name", "ProjectPropertiesProblemProvider.invalidSrcDir.dialog.title=Select Source Files for {0}" }) void checkSrcDir(Collection<ProjectProblem> currentProblems) { File invalidDirectory = getInvalidDirectory(ProjectPropertiesSupport.getSourcesDirectory(project), PhpProjectProperties.SRC_DIR); if (invalidDirectory != null) { ProjectProblem problem = ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidSrcDir_title(), Bundle.ProjectPropertiesProblemProvider_invalidSrcDir_description(invalidDirectory.getAbsolutePath()), new DirectoryProblemResolver(project, PhpProjectProperties.SRC_DIR, Bundle.ProjectPropertiesProblemProvider_invalidSrcDir_dialog_title(project.getName()))); currentProblems.add(problem); } }
@NbBundle.Messages({ "SassProjectProblemsProvider.invalidCompiler.title=Invalid Sass compiler", "SassProjectProblemsProvider.invalidCompiler.description=The provided Sass compiler is not valid.", }) @Override void checkCompiler(Collection<ProjectProblem> currentProblems) { try { SassExecutable.getDefault(); } catch (InvalidExternalExecutableException ex) { ProjectProblem problem = ProjectProblem.createError( Bundle.SassProjectProblemsProvider_invalidCompiler_title(), Bundle.SassProjectProblemsProvider_invalidCompiler_description(), OPTIONS_PROBLEM_RESOLVER); currentProblems.add(problem); } }
@NbBundle.Messages({ "LessProjectProblemsProvider.invalidCompiler.title=Invalid LESS compiler", "LessProjectProblemsProvider.invalidCompiler.description=The provided LESS compiler is not valid.", }) @Override void checkCompiler(Collection<ProjectProblem> currentProblems) { try { LessExecutable.getDefault(); } catch (InvalidExternalExecutableException ex) { ProjectProblem problem = ProjectProblem.createError( Bundle.LessProjectProblemsProvider_invalidCompiler_title(), Bundle.LessProjectProblemsProvider_invalidCompiler_description(), OPTIONS_PROBLEM_RESOLVER); currentProblems.add(problem); } }
@NbBundle.Messages({ "ProjectPropertiesProblemProvider.invalidSiteRootDir.title=Invalid Site Root", "# {0} - src dir path", "ProjectPropertiesProblemProvider.invalidSiteRootDir.description=The directory \"{0}\" does not exist and cannot be used for Site Root." }) private void checkSiteRootDir(Collection<ProjectProblem> currentProblems) { File invalidDirectory = getInvalidDirectory(project.getSiteRootFolder(), ClientSideProjectConstants.PROJECT_SITE_ROOT_FOLDER); if (invalidDirectory != null) { ProjectProblem problem = ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidSiteRootDir_title(), Bundle.ProjectPropertiesProblemProvider_invalidSiteRootDir_description(invalidDirectory.getAbsolutePath()), new CustomizerProblemResolver(project, CompositePanelProviderImpl.SOURCES, ClientSideProjectConstants.PROJECT_SITE_ROOT_FOLDER)); currentProblems.add(problem); } }
@NbBundle.Messages({ "ProjectPropertiesProblemProvider.invalidTestDir.title=Invalid Unit Tests", "# {0} - test dir path", "ProjectPropertiesProblemProvider.invalidTestDir.description=The directory \"{0}\" does not exist and cannot be used for Unit Tests." }) private void checkTestDir(Collection<ProjectProblem> currentProblems) { File invalidDirectory = getInvalidDirectory(project.getTestsFolder(false), ClientSideProjectConstants.PROJECT_TEST_FOLDER); if (invalidDirectory != null) { ProjectProblem problem = ProjectProblem.createError( Bundle.ProjectPropertiesProblemProvider_invalidTestDir_title(), Bundle.ProjectPropertiesProblemProvider_invalidTestDir_description(invalidDirectory.getAbsolutePath()), new CustomizerProblemResolver(project, CompositePanelProviderImpl.SOURCES, ClientSideProjectConstants.PROJECT_TEST_FOLDER)); currentProblems.add(problem); } }
@NonNull private static Set<? extends ProjectProblemsProvider.ProjectProblem> getPlatformProblems(@NonNull final MakeProject project) { Set<ProjectProblemsProvider.ProjectProblem> set = new LinkedHashSet<>(); if (BrokenReferencesSupport.isIncorrectPlatform(project.getLookup().lookup(ConfigurationDescriptorProvider.class))) { String name = BrokenReferencesSupport.getActiveConfigurationName(project.getLookup().lookup(ConfigurationDescriptorProvider.class)); final ProjectProblemsProvider.ProjectProblem error = ProjectProblemsProvider.ProjectProblem.createError( NbBundle.getMessage(ResolveReferencePanel.class, "MSG_platform_resolve_name"), //NOI18N NbBundle.getMessage(ResolveReferencePanel.class, "MSG_platform_resolve_description", name), //NOI18N new PlatformResolverImpl(project)); return Collections.singleton(error); } return Collections.emptySet(); }