From 19517d5b6c075def9cc0ad88235a771db1716edc Mon Sep 17 00:00:00 2001 From: Capelier-Marla Date: Thu, 15 Dec 2022 14:07:49 +0100 Subject: [PATCH] new function to get a package and its dependencies --- src/main/java/fr/packageviewer/Searcher.java | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/main/java/fr/packageviewer/Searcher.java b/src/main/java/fr/packageviewer/Searcher.java index 9222015..6264163 100644 --- a/src/main/java/fr/packageviewer/Searcher.java +++ b/src/main/java/fr/packageviewer/Searcher.java @@ -8,6 +8,7 @@ import fr.packageviewer.distribution.ArchDistribution; import fr.packageviewer.distribution.Distribution; import fr.packageviewer.distribution.FedoraDistribution; import fr.packageviewer.pack.SearchedPackage; +import fr.packageviewer.pack.Package; public class Searcher { public static List searchForAll(String packet) { @@ -74,4 +75,40 @@ public class Searcher { } return result; } + + /** + * Search for the specific package in the specific distribution, we need the searchedPackage to get informations about it like it name and distribution + * @param pSearchedPackage the package to search for + * @return a complete package with its dependencies + * @author Capelier-Marla + */ + public static Package getPackage(SearchedPackage pSearchedPackage) { + // we get the name of the distribution of the package + String distName = pSearchedPackage.getDistribution(); + // we create a distribution object + Distribution distribution; + switch (distName) { + case "archlinux": + distribution = new ArchDistribution(); + break; + case "fedora": + distribution = new FedoraDistribution(); + break; + default: + System.out.println("Error: Unknown"); + System.exit(1); + return null; + } + // create the futue package we'll get from searching + Future packet = distribution.getPackageTree(pSearchedPackage.getName(), 4); + // object containing the package we're looking for + Package result; + try { + result = packet.get(); + } catch (Exception e) { + return null; + } + // return the package + return result; + } }