aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2024-03-13 16:22:45 +0100
committerHåkon Hallingstad <hakon@yahooinc.com>2024-03-13 16:22:45 +0100
commitd936dc65ad0b29a3c875a946a17cb35628d0335e (patch)
tree545db736f54a4d944ae9001247f6320b492e156f /vespajlib
parent38554f48dd242c4a9d269927b374708ba4d97bdf (diff)
Add DomainName.leafLabel()
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/ai/vespa/http/DomainName.java5
-rw-r--r--vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java4
2 files changed, 9 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/ai/vespa/http/DomainName.java b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
index fa6964002bc..51ae9c12036 100644
--- a/vespajlib/src/main/java/ai/vespa/http/DomainName.java
+++ b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
@@ -32,4 +32,9 @@ public class DomainName extends PatternedStringWrapper<DomainName> {
return requireMatch(label, "domain name label", labelPattern);
}
+ public String leafLabel() {
+ int offset = value().lastIndexOf('.');
+ return offset == -1 ? value() : value().substring(0, offset);
+ }
+
}
diff --git a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
index ed7650d2929..f3c9b70b7db 100644
--- a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
+++ b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
@@ -3,6 +3,7 @@ package ai.vespa.http;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
@@ -30,6 +31,9 @@ class DomainNameTest {
assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo%"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of(("." + "a".repeat(32)).repeat(8).substring(1, 257)));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("a".repeat(64)));
+
+ assertEquals("foo", DomainName.of("foo").leafLabel());
+ assertEquals("foo", DomainName.of("foo.com").leafLabel());
}
}