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