From 21933648194f96a971052d8fbcaa25fbdc87f895 Mon Sep 17 00:00:00 2001 From: Baptiste Toulemonde <toulemonde@cines.fr> Date: Wed, 24 Nov 2021 11:10:42 +0100 Subject: [PATCH] bug fix --- .../SmartHarvesterMappingController.java | 2 +- .../service/MappingService.java | 42 ++++++++----------- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java b/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java index 5c2681d..3239be7 100644 --- a/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java +++ b/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java @@ -100,7 +100,7 @@ public class SmartHarvesterMappingController { } catch (JSONException e1) { LOGGER.warn(e1.getMessage()); - notPublishedUrl.add(url); + } diff --git a/src/main/java/com/smartharvester/service/MappingService.java b/src/main/java/com/smartharvester/service/MappingService.java index 8854d53..827a1f7 100644 --- a/src/main/java/com/smartharvester/service/MappingService.java +++ b/src/main/java/com/smartharvester/service/MappingService.java @@ -120,9 +120,8 @@ public class MappingService { return card.endsWith("n"); } - public List<String> getValues(String urlRepo, List<Path> paths) - throws JSONException { - + public List<String> getValues(String urlRepo, List<Path> paths) throws JSONException { + List<String> result = new ArrayList<String>(); String datasetProperties = ""; String distributionProperties = ""; @@ -130,15 +129,15 @@ public class MappingService { json = getJson(urlRepo); - if (paths.stream().filter(e -> e.getDcatClass().equals("dcat:dataset")).filter(e -> e.getProperty().equals("dct:hasVersion")).collect(Collectors.toList()).size() == 0) { + if (paths.stream().filter(e -> e.getDcatClass().equals("dcat:dataset")) + .filter(e -> e.getProperty().equals("dct:hasVersion")).collect(Collectors.toList()).size() == 0) { datasetProperties += "dct:hasVersion \"null\";\n"; } distributionProperties += "dct:hasVersion \"null\";\n"; for (Path path : paths) { String[] array = path.getPath().split(" : "); List<String> list = new ArrayList<String>(Arrays.asList(array)); - - + JSONObject jsonT = json; if (list.size() == 1) { if (jsonT.optJSONArray(list.get(0)) != null) { @@ -168,14 +167,6 @@ public class MappingService { } } else { for (int i = 0; i < list.size(); i++) { - if (!jsonT.has(list.get(i))) { - if (path.getDcatClass().equals("dcat:dataset")) { - datasetProperties += write(path.getProperty(), "undefined"); - } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), "undefined"); - } - break; - } if (i < list.size() - 1) { if (jsonT.optJSONObject(list.get(i)) != null) { jsonT = jsonT.getJSONObject(list.get(i)); @@ -194,16 +185,16 @@ public class MappingService { if (isReplicable(path.getCard())) { for (int j = 0; j < jsonA.length(); j++) { if (path.getDcatClass().equals("dcat:dataset")) { - datasetProperties += write(path.getProperty(), jsonA.optString(j)); + datasetProperties += write(path.getProperty(), jsonA.getString(j)); } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), jsonA.optString(j)); + distributionProperties += write(path.getProperty(), jsonA.getString(j)); } } } else { if (path.getDcatClass().equals("dcat:dataset")) { - datasetProperties += write(path.getProperty(), jsonA.optString(0)); + datasetProperties += write(path.getProperty(), jsonA.getString(0)); } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), jsonA.optString(0)); + distributionProperties += write(path.getProperty(), jsonA.getString(0)); } } @@ -213,9 +204,11 @@ public class MappingService { JSONArray jsonA = jsonT.getJSONArray(list.get(list.size() - 2)); if (path.getDcatClass().equals("dcat:dataset")) { - datasetProperties += write(path.getProperty(), jsonA.optString(Integer.parseInt(list.get(i)))); + datasetProperties += write(path.getProperty(), + jsonA.getString(Integer.parseInt(list.get(i)))); } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), jsonA.optString(Integer.parseInt(list.get(i)))); + distributionProperties += write(path.getProperty(), + jsonA.getString(Integer.parseInt(list.get(i)))); } break; } else if (jsonT.optString(list.get(i)) != null && jsonT.has(list.get(i))) { @@ -233,7 +226,7 @@ public class MappingService { JSONArray jsonA = jsonT.getJSONArray(key); if (isReplicable(path.getCard())) { for (int j = 0; j < jsonA.length(); j++) { - String value = jsonA.getJSONObject(j).optString(list.get(i)); + String value = jsonA.getJSONObject(j).getString(list.get(i)); if (path.getDcatClass().equals("dcat:dataset")) { datasetProperties += write(path.getProperty(), value); } else if (path.getDcatClass().equals("dcat:distribution")) { @@ -241,7 +234,7 @@ public class MappingService { } } } else { - String value = jsonA.getJSONObject(0).optString(list.get(i)); + String value = jsonA.getJSONObject(0).getString(list.get(i)); if (path.getDcatClass().equals("dcat:dataset")) { datasetProperties += write(path.getProperty(), value); } else if (path.getDcatClass().equals("dcat:distribution")) { @@ -258,11 +251,12 @@ public class MappingService { } } - + result.add(datasetProperties); result.add(distributionProperties); - + return result; + } private static String readStream(InputStream input) throws IOException { -- GitLab