diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/peruste/NavigationNodeDto.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/peruste/NavigationNodeDto.java index 45c64824d..baeb90e76 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/peruste/NavigationNodeDto.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/peruste/NavigationNodeDto.java @@ -56,7 +56,7 @@ public NavigationNodeDto add(NavigationNodeDto node) { public NavigationNodeDto addAll(Stream nodes) { if (nodes != null) { - this.children.addAll(nodes.collect(Collectors.toList())); + this.children.addAll(nodes.toList()); } return this; } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/util/LokalisoituTekstiDto.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/util/LokalisoituTekstiDto.java index 18ae973d1..3c432b639 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/util/LokalisoituTekstiDto.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/util/LokalisoituTekstiDto.java @@ -63,6 +63,10 @@ static public String getOrDefault(LokalisoituTekstiDto tk, Kieli kieli, String o return tk.tekstit.getOrDefault(kieli, otherwise); } + public String getOrDefault(Kieli kieli, String otherwise) { + return getOrDefault(this, kieli, otherwise); + } + public static LokalisoituTekstiDto of(Map tekstit) { if (tekstit == null) { return null; diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/yl/OppiaineBaseDto.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/yl/OppiaineBaseDto.java index f2940e084..44d1c8ca1 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/yl/OppiaineBaseDto.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/dto/yl/OppiaineBaseDto.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; +import fi.vm.sade.eperusteet.domain.Kieli; import fi.vm.sade.eperusteet.dto.Reference; import fi.vm.sade.eperusteet.dto.ReferenceableDto; import fi.vm.sade.eperusteet.dto.tutkinnonrakenne.KoodiDto; @@ -44,4 +45,12 @@ public LokalisoituTekstiDto getNimi() { return Optional.ofNullable(nimi) .orElse(Optional.ofNullable(koodi).map(KoodiDto::getNimi).orElse(LokalisoituTekstiDto.of(""))); } + + public String getNimiOrDefault(String kieli, String defaultNimi) { + return getNimi().getOrDefault(Kieli.of(kieli), defaultNimi); + } + + public String getNimiOrEmpty(String kieli) { + return getNimiOrDefault(kieli, ""); + } } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigation/NavigationBuilderPerusopetus.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigation/NavigationBuilderPerusopetus.java index a8e3b8898..3628033a4 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigation/NavigationBuilderPerusopetus.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigation/NavigationBuilderPerusopetus.java @@ -1,11 +1,9 @@ package fi.vm.sade.eperusteet.service.impl.navigation; import com.google.common.collect.Sets; -import fi.vm.sade.eperusteet.domain.Kieli; import fi.vm.sade.eperusteet.domain.KoulutustyyppiToteutus; import fi.vm.sade.eperusteet.dto.peruste.NavigationNodeDto; import fi.vm.sade.eperusteet.dto.peruste.NavigationType; -import fi.vm.sade.eperusteet.dto.util.LokalisoituTekstiDto; import fi.vm.sade.eperusteet.dto.yl.LaajaalainenOsaaminenDto; import fi.vm.sade.eperusteet.dto.yl.OppiaineSuppeaDto; import fi.vm.sade.eperusteet.repository.PerusteRepository; @@ -91,7 +89,7 @@ private NavigationNodeDto vuosiluokkakokonaisuudet(Long perusteId, String kieli) private NavigationNodeDto oppiaineet(Long perusteId, String kieli) { return NavigationNodeDto.of(NavigationType.perusopetusoppiaineet) .addAll(sisallot.getOppiaineet(perusteId, OppiaineSuppeaDto.class).stream() - .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimi().get(Kieli.of(kieli)))) + .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimiOrEmpty(kieli))) .sorted(Comparator.comparing(oppiaine -> oppiaine.getJnroOrDefault(99L))) .map(oppiaine -> NavigationNodeDto.of(NavigationType.perusopetusoppiaine, oppiaine.getNimi(), oppiaine.getId()) @@ -103,7 +101,7 @@ private Stream oppimaarat(Set oppimaarat, return Stream.concat( Stream.of(NavigationNodeDto.of(NavigationType.oppimaarat).meta("navigation-subtype", true)), oppimaarat.stream() - .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimi().get(Kieli.of(kieli)))) + .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimiOrEmpty(kieli))) .sorted(Comparator.comparing(oppiaine -> oppiaine.getJnroOrDefault(99l))) .map(oppimaara -> NavigationNodeDto.of(NavigationType.perusopetusoppiaine, oppimaara.getNimi(), oppimaara.getId()).meta("oppimaara", true))); } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigationpublic/NavigationBuilderPublicPerusopetus.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigationpublic/NavigationBuilderPublicPerusopetus.java index 3f9b6a861..f3c7c82e8 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigationpublic/NavigationBuilderPublicPerusopetus.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/navigationpublic/NavigationBuilderPublicPerusopetus.java @@ -1,12 +1,10 @@ package fi.vm.sade.eperusteet.service.impl.navigationpublic; import com.google.common.collect.Sets; -import fi.vm.sade.eperusteet.domain.Kieli; import fi.vm.sade.eperusteet.domain.KoulutustyyppiToteutus; import fi.vm.sade.eperusteet.dto.peruste.NavigationNodeDto; import fi.vm.sade.eperusteet.dto.peruste.NavigationType; import fi.vm.sade.eperusteet.dto.peruste.PerusteKaikkiDto; -import fi.vm.sade.eperusteet.dto.util.LokalisoituTekstiDto; import fi.vm.sade.eperusteet.dto.yl.OppiaineDto; import fi.vm.sade.eperusteet.dto.yl.OppiaineLaajaDto; import fi.vm.sade.eperusteet.service.NavigationBuilderPublic; @@ -61,7 +59,7 @@ private List vuosiluokat(PerusteKaikkiDto peruste, String kie private List vuosiluokanOppiaineet(PerusteKaikkiDto peruste, Long vlkId, String kieli) { return peruste.getPerusopetuksenPerusteenSisalto().getOppiaineet().stream() .filter(oppiaine -> oppiaineJaOppimaaraVuosiluokkakokonaisuusIdt(oppiaine).contains(vlkId)) - .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimi().get(Kieli.of(kieli)))) + .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimiOrEmpty(kieli))) .sorted(Comparator.comparing(oppiaine -> oppiaine.getJnroOrDefault(99l))) .map(oppiaine -> NavigationNodeDto.of(NavigationType.perusopetusoppiaine, oppiaine.getNimi(), oppiaine.getId()).meta("vlkId", vlkId) @@ -82,7 +80,7 @@ private List oppiaineJaOppimaaraVuosiluokkakokonaisuusIdt(OppiaineLaajaDto private NavigationNodeDto oppiaineet(PerusteKaikkiDto peruste, String kieli) { return NavigationNodeDto.of(NavigationType.perusopetusoppiaineet) .addAll(peruste.getPerusopetuksenPerusteenSisalto().getOppiaineet().stream() - .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimi().get(Kieli.of(kieli)))) + .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimiOrEmpty(kieli))) .sorted(Comparator.comparing(oppiaine -> oppiaine.getJnroOrDefault(99l))) .map(oppiaine -> NavigationNodeDto.of(NavigationType.perusopetusoppiaine, oppiaine.getNimi(), oppiaine.getId()) @@ -94,7 +92,7 @@ private NavigationNodeDto oppimaarat(Set oppimaarat, Long vlkId, St return NavigationNodeDto.of(NavigationType.oppimaarat).meta("navigation-subtype", true) .addAll( oppimaarat.stream() - .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimi().get(Kieli.of(kieli)))) + .sorted(Comparator.comparing(oppiaine -> oppiaine.getNimiOrEmpty(kieli))) .sorted(Comparator.comparing(oppiaine -> oppiaine.getJnroOrDefault(99l))) .map(oppimaara -> { NavigationNodeDto node = NavigationNodeDto