1 package java.net;
2
3 import java.util.Arrays;
4
5 /**
6 * Immutable representation of a AF_UNIX address.
7 *
8 * TODO: methods for detection of abstract addresses
9 *
10 * @see StandardProtocolFamily#UNIX
11 * @author Ing. Frantisek Kucera (frantovo.cz)
12 */
13 public class UnixSocketAddress extends SocketAddress {
14
15 private static final long serialVersionUID = 1l;
16
17 private final byte[] path;
18
19 /**
20 * Empty address -- used in case of unix domain socket client.
21 */
22 public UnixSocketAddress() {
23 this.path = null;
24 }
25
26 /**
27 * @param path raw path bytes in the platform encoding
28 */
29 public UnixSocketAddress(byte[] path) {
30 this.path = Arrays.copyOf(path, path.length);
31 }
32
33 /**
34 * @param path String representation of the socket's path
35 */
36 public UnixSocketAddress(String path) {
37 this.path = path.getBytes();
38 }
39
40 /**
41 * @return String representation of the socket's path
42 */
43 public String getPath() {
44 return path == null ? null : new String(path);
45 }
46
47 /**
48 *
49 * @return original representation of the socket's path
50 */
51 public byte[] getPathBytes() {
52 return path == null ? null : Arrays.copyOf(path, path.length);
53 }
54
55 @Override
56 public String toString() {
57 return getClass().getSimpleName() + ": " + getPath();
58 }
59
60 }