private boolean ensureDependency()

in language/ide/bridges/apisupport/bridge/org/netbeans/modules/jackpot30/apisupport/bridgeimpl/ProjectDependencyUpgraderImpl.java [67:128]


    private boolean ensureDependency(Project currentProject, String cnb, String displayName, String releaseVersion, SpecificationVersion spec, final boolean canShowUI) {
        NbModuleProvider currentNbModule = currentProject.getLookup().lookup(NbModuleProvider.class);

        if (currentNbModule == null) {
            return false;
        }

        try {
            NbModuleProject currentNbModuleProject = currentProject.getLookup().lookup(NbModuleProject.class);

            if (currentNbModuleProject == null) {
                return false;
            }

            ProjectXMLManager m = new ProjectXMLManager(currentNbModuleProject);
            ModuleDependency dep = m.getModuleDependency(cnb);

            if (dep == null) {
                if (showDependencyUpgradeDialog(currentProject, displayName, null, spec, false, canShowUI)) {
                    ModuleEntry me = currentNbModuleProject.getModuleList().getEntry(cnb);
                    ModuleDependency nue = new ModuleDependency(me,
                                                                releaseVersion != null ? releaseVersion : me.getReleaseVersion(),
                                                                spec != null ? spec.toString() : me.getSpecificationVersion(),
                                                                true,
                                                                false);

                    m.addDependency(nue);
                    ProjectManager.getDefault().saveProject(currentProject);
                }

                return true;
            }

            if (dep.getSpecificationVersion() == null) {
                //impl.dep?
                return false;
            }

            SpecificationVersion currentDep = new SpecificationVersion(dep.getSpecificationVersion());

            if (spec != null && (currentDep == null || currentDep.compareTo(spec) < 0)) {
                if (showDependencyUpgradeDialog(currentProject, displayName, new SpecificationVersion(dep.getSpecificationVersion()), spec, false, canShowUI)) {
                    ModuleDependency nue = new ModuleDependency(dep.getModuleEntry(),
                                                                releaseVersion != null ? releaseVersion : dep.getReleaseVersion(),
                                                                spec.toString(),
                                                                dep.hasCompileDependency(),
                                                                dep.hasImplementationDependency());

                    m.editDependency(dep, nue);
                    ProjectManager.getDefault().saveProject(currentProject);
                }

                return true;
            }
        } catch (CyclicDependencyException ex) {
            Exceptions.printStackTrace(ex);
        } catch (IOException ex) {
            Exceptions.printStackTrace(ex);
        }

        return false;
    }