From 7ff92cb30d0d4e67fb26f2cbbe6f4e322a1143c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20M=C3=A4kinen?= Date: Fri, 17 Nov 2023 15:43:07 +0200 Subject: [PATCH] Get classification obj just once --- .../sotka/parser/SotkaIndicatorParser.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/service-statistics-sotka/src/main/java/fi/nls/oskari/control/statistics/plugins/sotka/parser/SotkaIndicatorParser.java b/service-statistics-sotka/src/main/java/fi/nls/oskari/control/statistics/plugins/sotka/parser/SotkaIndicatorParser.java index 5f40d57ea..fac237821 100755 --- a/service-statistics-sotka/src/main/java/fi/nls/oskari/control/statistics/plugins/sotka/parser/SotkaIndicatorParser.java +++ b/service-statistics-sotka/src/main/java/fi/nls/oskari/control/statistics/plugins/sotka/parser/SotkaIndicatorParser.java @@ -73,11 +73,12 @@ StatisticalIndicator createIndicator(JSONObject json, Map sotkaLay ind.setId(indicatorId); // parse layers first since if none match -> we don't need to parse the rest - if (!json.getJSONObject("classifications").has("region")) { + JSONObject classificationObj = json.optJSONObject("classifications"); + if (classificationObj == null || !classificationObj.has("region")) { LOG.error("Region missing from indicator: " + indicatorId + ": " + String.valueOf(ind.getName())); return null; } - List sotkaRegionsets = getDeclaredRegionsets(json.optJSONObject("classifications")); + List sotkaRegionsets = getDeclaredRegionsets(classificationObj); if (sotkaRegionsets.isEmpty()) { // if sotkanet doesn't specify any region set to have data -> assume it has data for all // new indicators don't seem to have this defined anymore @@ -115,17 +116,30 @@ StatisticalIndicator createIndicator(JSONObject json, Map sotkaLay } return ind; } - /** * Get values under classification.region.values: "classifications": { - "sex": { - "values": ["male", "female", "total"] - }, "region": { + "title: { + "fi": "Kunta, seutukunta, maakunta, hyvinvointialue, sairaanhoitopiiri, yhteistyöalue, aluehallintoviraston alue, suuralue, Manner-Suomi/Ahvenanmaa, erityisvastuualue, koko maa", + ... + }, "values": ["Kunta", "Maakunta", "Erva", "Aluehallintovirasto", "Sairaanhoitopiiri", "Maa", "Suuralue", "Seutukunta", "Nuts1"] - } + }, + ... + } + + OR use title if values is empty? + + "classifications": { + "region": { + "title: { + "fi": "Hyvinvointialue", + ... + }, + "values": [] } + } * @param indicatorClassification * @return */