@Override public Project findProject(Resource<?> target, Predicate<Project> filter) { if (filter == null) { filter = acceptsAllProjects; } Project result = null; for (Resource<?> dir : allDirectoriesOnPath(target)) { for (ProjectProvider projectProvider : getProviders()) { result = findProjectInDirectory(dir, projectProvider, filter); if (result != null) break; } if (result != null) break; } return result; }
@Override public boolean containsProject(Resource<?> target) { boolean found = false; for (ProjectProvider buildSystem : getProviders()) { found = containsProject(target, buildSystem); if (found) break; } return found; }
@Override public Project createProject(Resource<?> target, ProjectProvider projectProvider) { return createProject(target, projectProvider, null); }
FacetFactory facetFactory = getFacetFactory(); if (facetTypes != null) Assert.isTrue( isBuildable(projectProvider, facetTypes), "The provided build system [" + projectProvider.getType() + "] cannot create a project that requires facets of the following types: " + getMissingProvidedProjectFacets(projectProvider, getRequiredProvidedProjectFacets(facetTypes))); if (parent != null) for (ProjectAssociationProvider provider : getAddonRegistry() .getServices(ProjectAssociationProvider.class)) registerAvailableFacets(result); cacheProject(result); fireProjectCreated(result);
Imported<ProjectCache> caches = getCaches(); if (projectProvider.containsProject(target)) registerAvailableFacets(result); cacheProject(result);
@Override public Project findProject(Resource<?> target, ProjectProvider projectProvider, Predicate<Project> filter) { Assert.notNull(target, "Target cannot be null"); if (filter == null) { filter = acceptsAllProjects; } Project result = null; Iterator<Resource<?>> pathIterator = allDirectoriesOnPath(target).iterator(); while (pathIterator.hasNext() && result == null) { result = findProjectInDirectory(pathIterator.next(), projectProvider, filter); } return result; }
@Override public Project createTempProject(Iterable<Class<? extends ProjectFacet>> facetTypes) throws IllegalStateException { Imported<ProjectProvider> buildSystems = getAddonRegistry().getServices(ProjectProvider.class); if (buildSystems.isAmbiguous()) throw new IllegalStateException( "Cannot create generic temporary project in environment where multiple build systems are available. " + "A single build system must be selected."); ProjectProvider buildSystem = buildSystems.get(); return createTempProject(buildSystem, facetTypes); }
private void registerAvailableFacets(Project result) { FacetFactory facetFactory = getFacetFactory(); for (Class<ProjectFacet> type : getAddonRegistry().getExportedTypes(ProjectFacet.class)) { Iterable<ProjectFacet> facets = facetFactory.createFacets(result, type); for (ProjectFacet facet : facets) { if (facet != null && facetFactory.register(result, facet)) { if (log.isLoggable(Level.FINE)) { log.fine("Registered Facet [" + facet + "] into Project [" + result + "]"); } } } } }
@Override public Project createTempProject(ProjectProvider buildSystem, Iterable<Class<? extends ProjectFacet>> facetTypes) { File rootDirectory = OperatingSystemUtils.createTempDir(); DirectoryResource addonDir = getResourceFactory().create(DirectoryResource.class, rootDirectory); DirectoryResource projectDir = addonDir.createTempResource(); projectDir.deleteOnExit(); Project project = createProject(projectDir, buildSystem, facetTypes); return project; }
@Override public Project createTempProject(ProjectProvider buildSystem) { return createTempProject(buildSystem, Collections.<Class<? extends ProjectFacet>> emptySet()); }
@Override public Project findProject(Resource<?> target) { return findProject(target, (Predicate<Project>) null); }
@Override public void fireProjectCreated(Project project) { for (ProjectListener listener : getBuiltInListeners()) { listener.projectCreated(project); } for (ProjectListener listener : projectListeners) { listener.projectCreated(project); } }
private Iterable<ProjectProvider> getProviders() { AddonRegistry addonRegistry = getAddonRegistry(); if (addonRegistry.getVersion() != version) { version = addonRegistry.getVersion(); providers.clear(); for (ProjectProvider provider : addonRegistry.getServices(ProjectProvider.class)) { providers.add(provider); } } return providers; }
@Override public Project createTempProject() throws IllegalStateException { return createTempProject(Collections.<Class<? extends ProjectFacet>> emptySet()); }
@Override public Project findProject(Resource<?> target, ProjectProvider projectProvider) { return findProject(target, projectProvider, acceptsAllProjects); }
@Override public boolean containsProject(Resource<?> bound, Resource<?> target) { boolean found = false; for (ProjectProvider buildSystem : getProviders()) { found = containsProject(bound, target, buildSystem); if (found) break; } return found; }