diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2022-03-31 11:18:52 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2022-03-31 11:18:52 +0200 |
commit | 168f767ec12253f43ace27946dc530fde9e37d5e (patch) | |
tree | 40c37c0984f45a8f21b1a4f38dba17f9777b51ba /vespajlib/src/main/java/com/yahoo/net | |
parent | f376e15c96d435b8f67ff442cdacf510d7ed902e (diff) |
Allow 64 characters in Name, and use PatternedStringWrapper for more classes
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/net')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/net/DomainName.java | 14 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/net/Hostname.java | 9 |
2 files changed, 12 insertions, 11 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/net/DomainName.java b/vespajlib/src/main/java/com/yahoo/net/DomainName.java index 5ac13d0306c..1215757ee80 100644 --- a/vespajlib/src/main/java/com/yahoo/net/DomainName.java +++ b/vespajlib/src/main/java/com/yahoo/net/DomainName.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.net; -import ai.vespa.validation.StringWrapper; +import ai.vespa.validation.PatternedStringWrapper; import java.util.regex.Pattern; @@ -13,20 +13,20 @@ import static ai.vespa.validation.Validation.requireMatch; * * @author jonmv */ -public class DomainName extends StringWrapper<DomainName> { +public class DomainName extends PatternedStringWrapper<DomainName> { - public static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])"); - public static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern); + static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])"); + static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern); public static final DomainName localhost = DomainName.of("localhost"); private DomainName(String value) { - super(value); + super(value, domainNamePattern, "domain name"); + requireInRange(value.length(), "domain name length", 1, 255); } public static DomainName of(String value) { - requireInRange(value.length(), "domain name", 1, 255); - return new DomainName(requireMatch(value, "domain name", domainNamePattern)); + return new DomainName(value); } public static String requireLabel(String label) { diff --git a/vespajlib/src/main/java/com/yahoo/net/Hostname.java b/vespajlib/src/main/java/com/yahoo/net/Hostname.java index 37dc41cbe14..cbf6fb8d1ca 100644 --- a/vespajlib/src/main/java/com/yahoo/net/Hostname.java +++ b/vespajlib/src/main/java/com/yahoo/net/Hostname.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.net; +import ai.vespa.validation.PatternedStringWrapper; import ai.vespa.validation.StringWrapper; import static ai.vespa.validation.Validation.requireInRange; @@ -11,15 +12,15 @@ import static ai.vespa.validation.Validation.requireMatch; * * @author jonmv */ -public class Hostname extends StringWrapper<Hostname> { +public class Hostname extends PatternedStringWrapper<Hostname> { private Hostname(String value) { - super(value); + super(value, DomainName.domainNamePattern, "hostname"); + requireInRange(value.length(), "hostname length", 1, 64); } public static Hostname of(String value) { - requireInRange(value.length(), "hostname length", 1, 64); - return new Hostname(requireMatch(value, "hostname", DomainName.domainNamePattern)); + return new Hostname(value); } } |