fixed indentation
This commit is contained in:
parent
279ad63891
commit
a97aa19fef
@ -26,77 +26,76 @@ public class ArchDistribution extends AsyncRequestsParser implements Distributio
|
|||||||
|
|
||||||
private static final Logger logger = LoggerManager.getLogger("ArchDistribution");
|
private static final Logger logger = LoggerManager.getLogger("ArchDistribution");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function return a package from arch package api in the form of a Pair
|
* This function return a package from arch package api in the form of a Pair
|
||||||
* Composed of a Package object, and a set of string containing the names of
|
* Composed of a Package object, and a set of string containing the names of
|
||||||
* the dependecies of the package.
|
* the dependecies of the package.
|
||||||
*
|
*
|
||||||
* @param packageName String, The package's exact name
|
* @param packageName String, The package's exact name
|
||||||
* @return Pair of Package and Set of String
|
* @return Pair of Package and Set of String
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CompletableFuture<Pair<Package, Set<String>>> getPackageFromAPI(String packageName) {
|
public CompletableFuture<Pair<Package, Set<String>>> getPackageFromAPI(String packageName) {
|
||||||
// create a new http client
|
// create a new http client
|
||||||
HttpClient client = HttpClient.newHttpClient();
|
HttpClient client = HttpClient.newHttpClient();
|
||||||
// and create its url
|
// and create its url
|
||||||
HttpRequest request = HttpRequest.newBuilder(URI.create("https://archlinux.org/packages/search/json/?name="+packageName)).build();
|
HttpRequest request = HttpRequest
|
||||||
|
.newBuilder(URI.create("https://archlinux.org/packages/search/json/?name=" + packageName)).build();
|
||||||
|
|
||||||
CompletableFuture<Pair<Package, Set<String>>> futureResult = new CompletableFuture<>();
|
CompletableFuture<Pair<Package, Set<String>>> futureResult = new CompletableFuture<>();
|
||||||
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept(result ->{
|
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept(result -> {
|
||||||
|
|
||||||
JSONObject json = new JSONObject(result.body());
|
JSONObject json = new JSONObject(result.body());
|
||||||
|
|
||||||
JSONArray resultsArrayJson = json.getJSONArray("results");
|
JSONArray resultsArrayJson = json.getJSONArray("results");
|
||||||
if(resultsArrayJson.length()==0){
|
if (resultsArrayJson.length() == 0) {
|
||||||
// unknown package, probably an abstract dependency
|
// unknown package, probably an abstract dependency
|
||||||
|
futureResult.complete(null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
JSONObject resultJson = resultsArrayJson.getJSONObject(0);
|
||||||
|
|
||||||
|
// get infos
|
||||||
|
|
||||||
|
Set<String> dependenciesNames = new HashSet<>();
|
||||||
|
for (Object dependency : resultJson.getJSONArray("depends")) {
|
||||||
|
dependenciesNames.add((String) dependency);
|
||||||
|
}
|
||||||
|
futureResult.complete(new Pair<>(
|
||||||
|
new Package(
|
||||||
|
resultJson.getString("pkgname"),
|
||||||
|
resultJson.getString("pkgver"),
|
||||||
|
resultJson.getString("repo"),
|
||||||
|
resultJson.getString("pkgdesc")),
|
||||||
|
dependenciesNames));
|
||||||
|
}).exceptionally(error -> {
|
||||||
|
error.printStackTrace();
|
||||||
|
logger.warning("Error while fetching package %s from the API : \n%s".formatted(packageName, error));
|
||||||
futureResult.complete(null);
|
futureResult.complete(null);
|
||||||
return;
|
return null;
|
||||||
}
|
});
|
||||||
JSONObject resultJson = resultsArrayJson.getJSONObject(0);
|
|
||||||
|
|
||||||
// get infos
|
return futureResult;
|
||||||
|
|
||||||
Set<String> dependenciesNames = new HashSet<>();
|
}
|
||||||
for(Object dependency : resultJson.getJSONArray("depends")){
|
|
||||||
dependenciesNames.add((String)dependency);
|
|
||||||
}
|
|
||||||
futureResult.complete(new Pair<>(
|
|
||||||
new Package(
|
|
||||||
resultJson.getString("pkgname"),
|
|
||||||
resultJson.getString("pkgver"),
|
|
||||||
resultJson.getString("repo"),
|
|
||||||
resultJson.getString("pkgdesc")
|
|
||||||
),
|
|
||||||
dependenciesNames
|
|
||||||
));
|
|
||||||
}).exceptionally(error ->{
|
|
||||||
error.printStackTrace();
|
|
||||||
logger.warning("Error while fetching package %s from the API : \n%s".formatted(packageName, error));
|
|
||||||
futureResult.complete(null);
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
|
|
||||||
return futureResult;
|
/**
|
||||||
|
* Search for a package matching a pattern and return a list of packages and
|
||||||
}
|
* return a list of string matching this pattern.
|
||||||
|
*
|
||||||
/**
|
* @param packageName String, the pattern to search in the repositories
|
||||||
* Search for a package matching a pattern and return a list of packages and
|
* @return List of SearchedPackage objects
|
||||||
* return a list of string matching this pattern.
|
*/
|
||||||
*
|
public CompletableFuture<List<SearchedPackage>> searchPackage(String packageName) {
|
||||||
* @param packageName String, the pattern to search in the repositories
|
|
||||||
* @return List of SearchedPackage objects
|
|
||||||
*/
|
|
||||||
public CompletableFuture<List<SearchedPackage>> searchPackage(String packageName){
|
|
||||||
HttpClient client = HttpClient.newHttpClient();
|
HttpClient client = HttpClient.newHttpClient();
|
||||||
HttpRequest request = HttpRequest.newBuilder()
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
.uri(URI.create("https://archlinux.org/packages/search/json/?q="+packageName))
|
.uri(URI.create("https://archlinux.org/packages/search/json/?q=" + packageName))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
CompletableFuture<List<SearchedPackage>> futureSearchedPackages = new CompletableFuture<>();
|
CompletableFuture<List<SearchedPackage>> futureSearchedPackages = new CompletableFuture<>();
|
||||||
|
|
||||||
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept(result->{
|
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept(result -> {
|
||||||
|
|
||||||
List<SearchedPackage> searchedPackagesList = new ArrayList<>();
|
List<SearchedPackage> searchedPackagesList = new ArrayList<>();
|
||||||
JSONObject json = new JSONObject(result.body());
|
JSONObject json = new JSONObject(result.body());
|
||||||
@ -107,21 +106,18 @@ public CompletableFuture<Pair<Package, Set<String>>> getPackageFromAPI(String pa
|
|||||||
JSONObject searchResultJson = (JSONObject) searchResultObj;
|
JSONObject searchResultJson = (JSONObject) searchResultObj;
|
||||||
// add package into to list
|
// add package into to list
|
||||||
searchedPackagesList.add(new SearchedPackage(
|
searchedPackagesList.add(new SearchedPackage(
|
||||||
searchResultJson.getString("pkgname"),
|
searchResultJson.getString("pkgname"),
|
||||||
searchResultJson.getString("pkgver"),
|
searchResultJson.getString("pkgver"),
|
||||||
searchResultJson.getString("repo"),
|
searchResultJson.getString("repo"),
|
||||||
searchResultJson.getString("pkgdesc")
|
searchResultJson.getString("pkgdesc")));
|
||||||
));
|
|
||||||
}
|
}
|
||||||
futureSearchedPackages.complete(searchedPackagesList);
|
futureSearchedPackages.complete(searchedPackagesList);
|
||||||
}).exceptionally(error->{
|
}).exceptionally(error -> {
|
||||||
error.printStackTrace();
|
error.printStackTrace();
|
||||||
futureSearchedPackages.complete(Collections.emptyList());
|
futureSearchedPackages.complete(Collections.emptyList());
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return futureSearchedPackages;
|
return futureSearchedPackages;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user