private static List getFolderChildren()

in jdtls.ext/com.microsoft.jdtls.ext.core/src/com/microsoft/jdtls/ext/core/PackageCommand.java [428:465]


    private static List<PackageNode> getFolderChildren(PackageParams query, IProgressMonitor pm) {
        try {
            IPackageFragmentRoot packageRoot = (IPackageFragmentRoot) JavaCore.create(query.getHandlerIdentifier());
            if (packageRoot == null) {
                throw new CoreException(
                        new Status(IStatus.ERROR, JdtlsExtActivator.PLUGIN_ID, String.format("No package root found for %s", query.getPath())));
            }
            if (packageRoot.getKind() == IPackageFragmentRoot.K_BINARY) {
                Object[] resources = packageRoot.getNonJavaResources();
                for (Object resource : resources) {
                    if (pm.isCanceled()) {
                        throw new OperationCanceledException();
                    }
                    if (resource instanceof JarEntryDirectory) {
                        JarEntryDirectory directory = (JarEntryDirectory) resource;
                        Object[] children = findJarDirectoryChildren(directory, query.getPath());
                        if (children != null) {
                            return convertToPackageNode(children, null, pm);
                        }
                    }
                }
            } else {
                IJavaProject javaProject = packageRoot.getJavaProject();
                IFolder folder = javaProject.getProject().getFolder(new Path(query.getPath()).makeRelativeTo(javaProject.getProject().getFullPath()));
                if (folder != null && folder.exists()) {
                    Object[] children = JavaCore.create(folder) != null ? Arrays.stream(folder.members()).filter(t -> t instanceof IFile).toArray()
                            : folder.members();
                    if (children != null) {
                        return convertToPackageNode(children, null, pm);
                    }
                }
            }

        } catch (CoreException e) {
            JdtlsExtActivator.logException("Problem load project classfile list ", e);
        }
        return Collections.emptyList();
    }