Fix Java 5 IDE migration warnings
[netconf.git] / netconf / netconf-api / src / main / java / org / opendaylight / netconf / api / messages / NetconfHelloMessageAdditionalHeader.java
index 03b211d472ab8fd3200110866e414db7049d5368..5db8a6c811d247c34d78d751e822cabeda1b9f58 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.netconf.api.messages;
 
 import com.google.common.base.Preconditions;
+import com.google.common.net.InetAddresses;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -37,7 +38,8 @@ public class NetconfHelloMessageAdditionalHeader {
     private final String transport;
     private final String sessionIdentifier;
 
-    public NetconfHelloMessageAdditionalHeader(String userName, String hostAddress, String port, String transport, String sessionIdentifier) {
+    public NetconfHelloMessageAdditionalHeader(String userName, String hostAddress, String port,
+                                               String transport, String sessionIdentifier) {
         this.userName = userName;
         this.hostAddress = hostAddress;
         this.port = port;
@@ -66,7 +68,7 @@ public class NetconfHelloMessageAdditionalHeader {
     }
 
     /**
-     * Format additional header into a string suitable as a prefix for netconf hello message
+     * Format additional header into a string suitable as a prefix for netconf hello message.
      */
     public String toFormattedString() {
         Preconditions.checkNotNull(userName);
@@ -80,7 +82,7 @@ public class NetconfHelloMessageAdditionalHeader {
 
     @Override
     public String toString() {
-        final StringBuffer sb = new StringBuffer("NetconfHelloMessageAdditionalHeader{");
+        final StringBuilder sb = new StringBuilder("NetconfHelloMessageAdditionalHeader{");
         sb.append("userName='").append(userName).append('\'');
         sb.append(", hostAddress='").append(hostAddress).append('\'');
         sb.append(", port='").append(port).append('\'');
@@ -90,14 +92,14 @@ public class NetconfHelloMessageAdditionalHeader {
         return sb.toString();
     }
 
-    // TODO IPv6
     private static final Pattern PATTERN = Pattern
-            .compile("\\[(?<username>[^;]+);(?<address>[0-9\\.]+)[:/](?<port>[0-9]+);(?<transport>[a-z]+)[^\\]]+\\]");
+            .compile("\\[(?<username>[^;]+);(?<address>.+)[:/](?<port>[0-9]+);(?<transport>[a-z]+)[^\\]]+\\]");
     private static final Pattern CUSTOM_HEADER_PATTERN = Pattern
-            .compile("\\[(?<username>[^;]+);(?<address>[0-9\\.]+)[:/](?<port>[0-9]+);(?<transport>[a-z]+);(?<sessionIdentifier>[a-z]+)[^\\]]+\\]");
+            .compile("\\[(?<username>[^;]+);"
+                    + "(?<address>.+)[:/](?<port>[0-9]+);(?<transport>[a-z]+);(?<sessionIdentifier>[a-z]+)[^\\]]+\\]");
 
     /**
-     * Parse additional header from a formatted string
+     * Parse additional header from a formatted string.
      */
     public static NetconfHelloMessageAdditionalHeader fromString(String additionalHeader) {
         String additionalHeaderTrimmed = additionalHeader.trim();
@@ -108,6 +110,7 @@ public class NetconfHelloMessageAdditionalHeader {
 
         String username = matcher.group("username");
         String address = matcher.group("address");
+        Preconditions.checkArgument(InetAddresses.isInetAddress(address));
         String port = matcher.group("port");
         String transport = matcher.group("transport");
         String sessionIdentifier = "client";