boolean (@NotNull PackagingElement<?> element, @NotNull PackagingElementPath path) { if (element instanceof FileOrDirectoryCopyPackagingElement<?>) { final VirtualFile root = ((FileOrDirectoryCopyPackagingElement<?>)element).findFile(); if (root != null && VfsUtilCore.isAncestor(root, file, false)) { final String relativePath; if (root.equals(file) && element instanceof FileCopyPackagingElement) { relativePath = ((FileCopyPackagingElement)element).getOutputFileName(); } else { relativePath = VfsUtilCore.getRelativePath(file, root, '/'); } result.add(new ArtifactInfo(artifact, path, relativePath)); return false; } } else if (isResourceFile && element instanceof ModuleOutputPackagingElement) { final String relativePath = getRelativePathInSources(file, (ModuleOutputPackagingElement)element, context); if (relativePath != null) { result.add(new ArtifactInfo(artifact, path, relativePath)); return false; } } return true; }