1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.net;
18
19 import java.net.InetAddress;
20 import java.net.InetSocketAddress;
21
22 import org.apache.logging.log4j.core.config.Node;
23 import org.apache.logging.log4j.core.config.plugins.Plugin;
24 import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
25 import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
26 import org.apache.logging.log4j.core.config.plugins.validation.constraints.ValidHost;
27 import org.apache.logging.log4j.core.config.plugins.validation.constraints.ValidPort;
28
29
30
31
32
33
34 @Plugin(name = "SocketAddress", category = Node.CATEGORY, printObject = true)
35 public class SocketAddress {
36
37
38
39
40
41
42 public static SocketAddress getLoopback() {
43 return new SocketAddress(InetAddress.getLoopbackAddress(), 0);
44 }
45
46
47 private final InetSocketAddress socketAddress;
48
49 private SocketAddress(final InetAddress host, final int port) {
50 this.socketAddress = new InetSocketAddress(host, port);
51 }
52
53 public InetSocketAddress getSocketAddress() {
54 return socketAddress;
55 }
56
57 public int getPort() {
58 return socketAddress.getPort();
59 }
60
61 public InetAddress getAddress() {
62 return socketAddress.getAddress();
63 }
64
65 public String getHostName() {
66 return socketAddress.getHostName();
67 }
68
69 @PluginBuilderFactory
70 public static Builder newBuilder() {
71 return new Builder();
72 }
73
74 public static class Builder implements org.apache.logging.log4j.core.util.Builder<SocketAddress> {
75
76 @PluginBuilderAttribute
77 @ValidHost
78 private InetAddress host;
79
80 @PluginBuilderAttribute
81 @ValidPort
82 private int port;
83
84 public Builder setHost(final InetAddress host) {
85 this.host = host;
86 return this;
87 }
88
89 public Builder setPort(final int port) {
90 this.port = port;
91 return this;
92 }
93
94 @Override
95 public SocketAddress build() {
96 return new SocketAddress(host, port);
97 }
98 }
99
100 @Override
101 public String toString() {
102 return socketAddress.toString();
103 }
104
105 }