List<String> (@NotNull VirtualFile file) { if (file.isDirectory()) { throw new IllegalArgumentException("file " + file + " is expected to be a regular file"); } if (!StubUpdatingIndex.USE_SNAPSHOT_MAPPINGS) { return Collections.emptyList(); } List<String> properties = null; for (FilePropertyPusher<?> extension : FilePropertyPusher.EP_NAME.getExtensionList()) { Object property; VirtualFile vfsObject; if (extension.pushDirectoriesOnly()) { vfsObject = file.getParent(); } else { vfsObject = file; } property = extension.getFilePropertyKey().getPersistentValue(vfsObject); if (property != null) { if (properties == null) { properties = new ArrayList<>(); } properties.add(property.toString()); } } if (properties == null) { return Collections.emptyList(); } properties.sort(null); return properties; }