private static Collection<? extends PackagingSourceItem> createClasspathItems( ArtifactEditorContext editorContext, Artifact artifact, @NotNull Module module) { final List<PackagingSourceItem> items = new ArrayList<PackagingSourceItem>(); final ModuleRootModel rootModel = editorContext.getModulesProvider().getRootModel(module); List<Library> libraries = new ArrayList<Library>(); for (OrderEntry orderEntry : rootModel.getOrderEntries()) { if (orderEntry instanceof LibraryOrderEntry) { final LibraryOrderEntry libraryEntry = (LibraryOrderEntry) orderEntry; final Library library = libraryEntry.getLibrary(); final DependencyScope scope = libraryEntry.getScope(); if (library != null && scope.isForProductionRuntime()) { libraries.add(library); } } } for (Module toAdd : getNotAddedModules(editorContext, artifact, module)) { items.add(new ModuleOutputSourceItem(toAdd)); } for (Library library : getNotAddedLibraries(editorContext, artifact, libraries)) { items.add(new LibrarySourceItem(library)); } return items; }
public static void setStorageType(@NotNull ModuleRootModel model, @NotNull String storageId) { Module module = model.getModule(); String oldStorageType = ClassPathStorageUtil.getStorageType(module); if (oldStorageType.equals(storageId)) { return; } ClasspathStorageProvider provider = getProvider(oldStorageType); if (provider != null) { provider.detach(module); } provider = getProvider(storageId); if (provider == null) { module.clearOption(JpsProjectLoader.CLASSPATH_ATTRIBUTE); module.clearOption(JpsProjectLoader.CLASSPATH_DIR_ATTRIBUTE); } else { module.setOption(JpsProjectLoader.CLASSPATH_ATTRIBUTE, storageId); String root = provider.getContentRoot(model); if (root == null) { module.clearOption(JpsProjectLoader.CLASSPATH_DIR_ATTRIBUTE); } else { module.setOption(JpsProjectLoader.CLASSPATH_DIR_ATTRIBUTE, root); } } }
@Nullable private static ContentEntry findContentEntry(ModuleRootModel rootModel, VirtualFile file) { return ContainerUtil.find( rootModel.getContentEntries(), object -> { VirtualFile entryRoot = object.getFile(); return entryRoot != null && VfsUtilCore.isAncestor(entryRoot, file, false); }); }
@Nullable private static ContentEntry findContentEntry(ModuleRootModel rootModel, final VirtualFile file) { return ContainerUtil.find( rootModel.getContentEntries(), new Condition<ContentEntry>() { @Override public boolean value(final ContentEntry object) { VirtualFile entryRoot = object.getFile(); return entryRoot != null && VfsUtilCore.isAncestor(entryRoot, file, false); } }); }