summaryrefslogtreecommitdiffstats
path: root/linguistics
diff options
context:
space:
mode:
authorMarius Arhaug <mariusarhaug@hotmail.com>2024-04-24 15:27:32 +0200
committerGitHub <noreply@github.com>2024-04-24 15:27:32 +0200
commitff1d604e77b1943a72fc6b585b09db82a5ee791d (patch)
tree2195429e568fe6de8a680454d22efcac4b6a4120 /linguistics
parent802c854e5190d37914f237d8626949781f3db9c2 (diff)
parent8f69128279305dacd077b540d5e9be746508efc9 (diff)
Merge pull request #30871 from vespa-engine/marius/add-significance-searcher
Add significance searcher
Diffstat (limited to 'linguistics')
-rw-r--r--linguistics/abi-spec.json2
-rw-r--r--linguistics/src/main/java/com/yahoo/language/significance/SignificanceModelRegistry.java4
-rw-r--r--linguistics/src/main/java/com/yahoo/language/significance/impl/DefaultSignificanceModelRegistry.java7
-rw-r--r--linguistics/src/test/java/com/yahoo/language/significance/DefaultSignificanceModelRegistryTest.java16
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);