From 4807ad7d6d7350a6acbda79d6488612c6818a524 Mon Sep 17 00:00:00 2001 From: Baptiste Toulemonde <toulemonde@cines.fr> Date: Tue, 23 Nov 2021 09:12:31 +0100 Subject: [PATCH] bug fix --- .../service/MappingService.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/smartharvester/service/MappingService.java b/src/main/java/com/smartharvester/service/MappingService.java index 7a58851..8854d53 100644 --- a/src/main/java/com/smartharvester/service/MappingService.java +++ b/src/main/java/com/smartharvester/service/MappingService.java @@ -168,6 +168,14 @@ 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)); @@ -186,16 +194,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.getString(j)); + datasetProperties += write(path.getProperty(), jsonA.optString(j)); } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), jsonA.getString(j)); + distributionProperties += write(path.getProperty(), jsonA.optString(j)); } } } else { if (path.getDcatClass().equals("dcat:dataset")) { - datasetProperties += write(path.getProperty(), jsonA.getString(0)); + datasetProperties += write(path.getProperty(), jsonA.optString(0)); } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), jsonA.getString(0)); + distributionProperties += write(path.getProperty(), jsonA.optString(0)); } } @@ -205,9 +213,9 @@ public class MappingService { JSONArray jsonA = jsonT.getJSONArray(list.get(list.size() - 2)); if (path.getDcatClass().equals("dcat:dataset")) { - datasetProperties += write(path.getProperty(), jsonA.getString(Integer.parseInt(list.get(i)))); + datasetProperties += write(path.getProperty(), jsonA.optString(Integer.parseInt(list.get(i)))); } else if (path.getDcatClass().equals("dcat:distribution")) { - distributionProperties += write(path.getProperty(), jsonA.getString(Integer.parseInt(list.get(i)))); + distributionProperties += write(path.getProperty(), jsonA.optString(Integer.parseInt(list.get(i)))); } break; } else if (jsonT.optString(list.get(i)) != null && jsonT.has(list.get(i))) { @@ -225,7 +233,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).getString(list.get(i)); + String value = jsonA.getJSONObject(j).optString(list.get(i)); if (path.getDcatClass().equals("dcat:dataset")) { datasetProperties += write(path.getProperty(), value); } else if (path.getDcatClass().equals("dcat:distribution")) { @@ -233,7 +241,7 @@ public class MappingService { } } } else { - String value = jsonA.getJSONObject(0).getString(list.get(i)); + String value = jsonA.getJSONObject(0).optString(list.get(i)); if (path.getDcatClass().equals("dcat:dataset")) { datasetProperties += write(path.getProperty(), value); } else if (path.getDcatClass().equals("dcat:distribution")) { -- GitLab