diff options
author | Marius Arhaug <mariusarhaug@hotmail.com> | 2024-04-24 15:27:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-24 15:27:32 +0200 |
commit | ff1d604e77b1943a72fc6b585b09db82a5ee791d (patch) | |
tree | 2195429e568fe6de8a680454d22efcac4b6a4120 /linguistics | |
parent | 802c854e5190d37914f237d8626949781f3db9c2 (diff) | |
parent | 8f69128279305dacd077b540d5e9be746508efc9 (diff) |
Merge pull request #30871 from vespa-engine/marius/add-significance-searcher
Add significance searcher
Diffstat (limited to 'linguistics')
4 files changed, 18 insertions, 11 deletions
diff --git a/linguistics/abi-spec.json b/linguistics/abi-spec.json index a4adacc5905..1ca32a2dd37 100644 --- a/linguistics/abi-spec.json +++ b/linguistics/abi-spec.json @@ -816,7 +816,7 @@ "abstract" ], "methods" : [ - "public abstract com.yahoo.language.significance.SignificanceModel getModel(com.yahoo.language.Language)" + "public abstract java.util.Optional getModel(com.yahoo.language.Language)" ], "fields" : [ ] } diff --git a/linguistics/src/main/java/com/yahoo/language/significance/SignificanceModelRegistry.java b/linguistics/src/main/java/com/yahoo/language/significance/SignificanceModelRegistry.java index 6d8dcc00e0a..95d5b5e69d8 100644 --- a/linguistics/src/main/java/com/yahoo/language/significance/SignificanceModelRegistry.java +++ b/linguistics/src/main/java/com/yahoo/language/significance/SignificanceModelRegistry.java @@ -4,10 +4,12 @@ package com.yahoo.language.significance; import com.yahoo.api.annotations.Beta; import com.yahoo.language.Language; +import java.util.Optional; + /** * @author MariusArhaug */ @Beta public interface SignificanceModelRegistry { - SignificanceModel getModel(Language language); + Optional<SignificanceModel> getModel(Language language); } diff --git a/linguistics/src/main/java/com/yahoo/language/significance/impl/DefaultSignificanceModelRegistry.java b/linguistics/src/main/java/com/yahoo/language/significance/impl/DefaultSignificanceModelRegistry.java index d44eab39cdf..1be1d3f13b5 100644 --- a/linguistics/src/main/java/com/yahoo/language/significance/impl/DefaultSignificanceModelRegistry.java +++ b/linguistics/src/main/java/com/yahoo/language/significance/impl/DefaultSignificanceModelRegistry.java @@ -11,6 +11,7 @@ import java.nio.file.Path; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.function.Supplier; import static com.yahoo.yolean.Exceptions.uncheck; @@ -43,12 +44,12 @@ public class DefaultSignificanceModelRegistry implements SignificanceModelRegist @Override - public SignificanceModel getModel(Language language) throws IllegalArgumentException { + public Optional<SignificanceModel> getModel(Language language) { if (!models.containsKey(language)) { - throw new IllegalArgumentException("No model for language " + language); + return Optional.empty(); } - return models.get(language); + return Optional.of(models.get(language)); } diff --git a/linguistics/src/test/java/com/yahoo/language/significance/DefaultSignificanceModelRegistryTest.java b/linguistics/src/test/java/com/yahoo/language/significance/DefaultSignificanceModelRegistryTest.java index d1de63a994d..d4849571b5e 100644 --- a/linguistics/src/test/java/com/yahoo/language/significance/DefaultSignificanceModelRegistryTest.java +++ b/linguistics/src/test/java/com/yahoo/language/significance/DefaultSignificanceModelRegistryTest.java @@ -8,9 +8,7 @@ import org.junit.Test; import java.nio.file.Path; import java.util.HashMap; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.*; /** @@ -27,10 +25,16 @@ public class DefaultSignificanceModelRegistryTest { DefaultSignificanceModelRegistry defaultSignificanceModelRegistry = new DefaultSignificanceModelRegistry(models); - var englishModel = defaultSignificanceModelRegistry.getModel(Language.ENGLISH); - var norwegianModel = defaultSignificanceModelRegistry.getModel(Language.NORWEGIAN_BOKMAL); + var optionalEnglishModel = defaultSignificanceModelRegistry.getModel(Language.ENGLISH); + var optionalNorwegianModel = defaultSignificanceModelRegistry.getModel(Language.NORWEGIAN_BOKMAL); - assertThrows(IllegalArgumentException.class, () -> defaultSignificanceModelRegistry.getModel(Language.FRENCH)); + assertTrue(optionalEnglishModel.isPresent()); + assertTrue(optionalNorwegianModel.isPresent()); + + var englishModel = optionalEnglishModel.get(); + var norwegianModel = optionalNorwegianModel.get(); + + assertTrue( defaultSignificanceModelRegistry.getModel(Language.FRENCH).isEmpty()); assertNotNull(englishModel); assertNotNull(norwegianModel); |