aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/net
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-03-31 11:18:52 +0200
committerJon Marius Venstad <venstad@gmail.com>2022-03-31 11:18:52 +0200
commit168f767ec12253f43ace27946dc530fde9e37d5e (patch)
tree40c37c0984f45a8f21b1a4f38dba17f9777b51ba /vespajlib/src/main/java/com/yahoo/net
parentf376e15c96d435b8f67ff442cdacf510d7ed902e (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.java14
-rw-r--r--vespajlib/src/main/java/com/yahoo/net/Hostname.java9
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);
}
}