/** * Get non system directory list. * * @param types if not empty, returns only the directories having at least one of the requested type * @return the list of directories that are not system directories * @since 8.4 */ @GET public List<Directory> getDirectoryNames(@QueryParam("types") List<String> types) { DirectoryService directoryService = Framework.getService(DirectoryService.class); List<Directory> result = new ArrayList<Directory>(); for (Directory dir : directoryService.getDirectories()) { if (dir.getTypes().contains(DirectoryService.SYSTEM_DIRECTORY_TYPE)) { continue; } else if (types == null || types.isEmpty()) { result.add(dir); } else { if (types.stream().filter(dir.getTypes()::contains).findFirst().isPresent()) { result.add(dir); } } } return result; }