Skip to content
Snippets Groups Projects
Commit be082b29 authored by fabiovandewaeter's avatar fabiovandewaeter
Browse files

refactoring

parent 4286c231
No related branches found
No related tags found
No related merge requests found
...@@ -65,7 +65,7 @@ public class FTPResource { ...@@ -65,7 +65,7 @@ public class FTPResource {
List<String> urls = new ArrayList<>(); List<String> urls = new ArrayList<>();
// Parcourir récursivement l’arborescence pour chercher le fichier (ou // Parcourir récursivement l’arborescence pour chercher le fichier (ou
// répertoire) recherché // répertoire) recherché
searchInTree(tree, searchTerm, "", config, urls); ftpService.searchInTree(tree, searchTerm, "", config, urls);
if (!urls.isEmpty()) { if (!urls.isEmpty()) {
results.put(config.getAlias(), urls); results.put(config.getAlias(), urls);
} }
...@@ -77,34 +77,6 @@ public class FTPResource { ...@@ -77,34 +77,6 @@ public class FTPResource {
return Response.ok(results).build(); return Response.ok(results).build();
} }
/**
* Recherche récursive dans l’arborescence FTP.
*
* @param node l’arborescence à parcourir
* @param searchTerm la chaîne à rechercher
* @param currentPath le chemin courant dans l’arborescence
* @param config la configuration du serveur FTP (pour construire l’URL)
* @param urls la liste des URLs trouvées
*/
private void searchInTree(FTPService.FtpNode node, String searchTerm, String currentPath, FTPServerConfig config,
List<String> urls) {
// Concaténation du chemin
String newPath = currentPath.isEmpty() ? node.name : currentPath + "/" + node.name;
// Si le nom contient le terme recherché (fichier ou dossier)
if (node.name.toLowerCase().contains(searchTerm.toLowerCase())) {
// Construction de l’URL FTP. On suppose que FTPServerConfig possède une méthode
// getHost().
String ftpUrl = "ftp://" + config.getHost() + "/" + newPath;
urls.add(ftpUrl);
}
// Parcours des enfants si le nœud est un répertoire
if (node.isDirectory && node.children != null) {
for (FTPService.FtpNode child : node.children) {
searchInTree(child, searchTerm, newPath, config, urls);
}
}
}
@DELETE @DELETE
@Path("/{alias}") @Path("/{alias}")
public Response removeFTPServer(@PathParam("alias") String alias) { public Response removeFTPServer(@PathParam("alias") String alias) {
......
...@@ -371,4 +371,32 @@ public class FTPService { ...@@ -371,4 +371,32 @@ public class FTPService {
} }
} }
} }
/**
* Recherche récursive dans l’arborescence FTP.
*
* @param node l’arborescence à parcourir
* @param searchTerm la chaîne à rechercher
* @param currentPath le chemin courant dans l’arborescence
* @param config la configuration du serveur FTP (pour construire l’URL)
* @param urls la liste des URLs trouvées
*/
public void searchInTree(FTPService.FtpNode node, String searchTerm, String currentPath, FTPServerConfig config,
List<String> urls) {
// Concaténation du chemin
String newPath = currentPath.isEmpty() ? node.name : currentPath + "/" + node.name;
// Si le nom contient le terme recherché (fichier ou dossier)
if (node.name.toLowerCase().contains(searchTerm.toLowerCase())) {
// Construction de l’URL FTP. On suppose que FTPServerConfig possède une méthode
// getHost().
String ftpUrl = "ftp://" + config.getHost() + "/" + newPath;
urls.add(ftpUrl);
}
// Parcours des enfants si le nœud est un répertoire
if (node.isDirectory && node.children != null) {
for (FTPService.FtpNode child : node.children) {
searchInTree(child, searchTerm, newPath, config, urls);
}
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment