void (CompositePackagingElement<?> archive, PackagingElementFactory factory, Set<? extends Library> libraries) { for (Library library : libraries) { if (LibraryPackagingElement.getKindForLibrary(library).containsJarFiles()) { for (VirtualFile classesRoot : library.getFiles(OrderRootType.CLASSES)) { if (classesRoot.isInLocalFileSystem()) { archive.addOrFindChild(factory.createDirectoryCopyWithParentDirectories(classesRoot.getPath(), "/")); } else { archive.addOrFindChild(factory.createExtractedDirectory(classesRoot)); } } } else { archive.addOrFindChildren(factory.createLibraryElements(library)); } } }