1 /*******************************************************************************
\r
2 * Copyright (c) 2007, 2011 Association for Decentralized Information Management
\r
3 * in Industry THTH ry.
\r
4 * All rights reserved. This program and the accompanying materials
\r
5 * are made available under the terms of the Eclipse Public License v1.0
\r
6 * which accompanies this distribution, and is available at
\r
7 * http://www.eclipse.org/legal/epl-v10.html
\r
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.db.management.discovery;
\r
14 import java.net.InetSocketAddress;
\r
17 * @author Tuukka Lehtonen
\r
19 public final class InetAddressUtils {
\r
22 * @param hostAndPort
\r
24 * @throws IllegalArgumentException
\r
26 public static InetSocketAddress parse(String hostAndPort) throws IllegalArgumentException {
\r
27 String[] split = hostAndPort.split(":");
\r
28 if (split.length != 2)
\r
29 throw new IllegalArgumentException("address does not contain a port, missing ':' character");
\r
30 return new InetSocketAddress(split[0], Integer.parseInt(split[1]));
\r
34 * @param hostAndPort
\r
36 * @throws IllegalArgumentException
\r
38 public static InetSocketAddress parseUnresolved(String hostAndPort) throws IllegalArgumentException {
\r
39 String[] split = hostAndPort.split(":");
\r
40 if (split.length != 2)
\r
41 throw new IllegalArgumentException("address does not contain a port, missing ':' character");
\r
42 return InetSocketAddress.createUnresolved(split[0], Integer.parseInt(split[1]));
\r
45 public static String toHostString(InetSocketAddress address) {
\r
46 if (address == null) return "null";
\r
47 return address.getHostName() + ":" + address.getPort();
\r
51 * @param hostAndPort
\r
53 * @throws IllegalArgumentException
\r
55 public static InetSocketAddress parseHostAddressPort(String hostAddressPort) throws IllegalArgumentException {
\r
56 String[] split = hostAddressPort.split(":");
\r
57 if (split.length != 2)
\r
58 throw new IllegalArgumentException("address not in format '[<host>/]<address>:port', does not contain a port, missing ':' character: " + hostAddressPort);
\r
59 String[] split2 = split[0].split("/");
\r
60 if (split2.length == 1)
\r
61 return new InetSocketAddress(split[0], Integer.parseInt(split[1]));
\r
62 if (split2.length == 2)
\r
63 return new InetSocketAddress(split2[1], Integer.parseInt(split[1]));
\r
64 throw new IllegalArgumentException("expected address in format '[<host>/]<address>:port', got " + hostAddressPort);
\r
67 public static void main(String[] args) {
\r
68 System.out.println(parseHostAddressPort("/127.0.0.1:1234"));
\r
69 System.out.println(parseHostAddressPort("localhost/127.0.0.1:1234"));
\r
70 System.out.println(parseHostAddressPort("127.0.0.1:1234"));
\r
71 System.out.println(parseHostAddressPort("localhost:1234"));
\r