summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-04-08 16:24:09 +0200
committerGitHub <noreply@github.com>2022-04-08 16:24:09 +0200
commit05606dfe1bba4bcadc1ae4fae95b626f6441cd52 (patch)
treef35c24e158a5cd86af535f51f1a6093d8c80322c /vespajlib
parentdb9e570a36decb24e6cb13f44bd0ff444ab762e3 (diff)
Revert "Jonmv/unify hostname classes"
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/abi-spec.json2
-rw-r--r--vespajlib/src/main/java/ai/vespa/http/DomainName.java6
-rw-r--r--vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/net/HostName.java9
4 files changed, 11 insertions, 8 deletions
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json
index 45f7e395da6..ae69564b671 100644
--- a/vespajlib/abi-spec.json
+++ b/vespajlib/abi-spec.json
@@ -350,7 +350,7 @@
"fields": []
},
"com.yahoo.net.HostName": {
- "superClass": "ai.vespa.http.DomainName",
+ "superClass": "ai.vespa.validation.PatternedStringWrapper",
"interfaces": [],
"attributes": [
"public"
diff --git a/vespajlib/src/main/java/ai/vespa/http/DomainName.java b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
index 737f6b6d863..a566f5b95be 100644
--- a/vespajlib/src/main/java/ai/vespa/http/DomainName.java
+++ b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
@@ -15,12 +15,12 @@ import static ai.vespa.validation.Validation.requireMatch;
*/
public class DomainName extends PatternedStringWrapper<DomainName> {
- protected static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])");
- protected 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");
- protected DomainName(String value) {
+ private DomainName(String value) {
super(requireLength(value, "domain name length", 1, 255), domainNamePattern, "domain name");
}
diff --git a/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java b/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java
index 12be0002f6f..0937627b57e 100644
--- a/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java
+++ b/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java
@@ -40,7 +40,7 @@ public abstract class StringWrapper<T extends StringWrapper<T>> implements Compa
@Override
public final boolean equals(Object o) {
if (this == o) return true;
- if ( ! (o instanceof StringWrapper<?>)) return false;
+ if (o == null || getClass() != o.getClass()) return false;
return value.equals(((StringWrapper<?>) o).value);
}
diff --git a/vespajlib/src/main/java/com/yahoo/net/HostName.java b/vespajlib/src/main/java/com/yahoo/net/HostName.java
index 0348197a704..20f1008055e 100644
--- a/vespajlib/src/main/java/com/yahoo/net/HostName.java
+++ b/vespajlib/src/main/java/com/yahoo/net/HostName.java
@@ -10,7 +10,7 @@ import java.util.regex.Pattern;
import static ai.vespa.validation.Validation.requireLength;
/**
- * Hostnames match {@link #domainNamePattern}, and are restricted to 64 characters in length.
+ * Hostnames match {@link #hostNamePattern}, and are restricted to 64 characters in length.
*
* This class also has utilities for getting the hostname of the system running the JVM.
* Detection of the hostname is now done before starting any Vespa
@@ -20,12 +20,15 @@ import static ai.vespa.validation.Validation.requireLength;
* @author arnej
* @author jonmv
*/
-public class HostName extends DomainName {
+public class HostName extends PatternedStringWrapper<HostName> {
+
+ 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 hostNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern);
private static HostName preferredHostName = null;
private HostName(String value) {
- super(requireLength(value, "hostname length", 1, 64));
+ super(requireLength(value, "hostname length", 1, 64), hostNamePattern, "hostname");
}
public static HostName of(String value) {