1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.vtnrsc;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Objects;
import org.onlab.packet.IpAddress;
/**
* Default implementation of FloatingIp interface.
*/
public final class DefaultFloatingIp implements FloatingIp {
private final FloatingIpId id;
private final TenantId tenantId;
private final TenantNetworkId networkId;
private final VirtualPortId portId;
private final RouterId routerId;
private final IpAddress floatingIp;
private final IpAddress fixedIp;
private final Status status;
/**
*
* Creates a floating Ip object.
*
* @param id floatingIp identifier
* @param tenantId tenant identifier
* @param networkId the identifier of network associated with the floating Ip
* @param portId port identifier
* @param routerId router identifier
* @param floatingIp floatingIp address
* @param fixedIp the fixed Ip associated with the floating Ip
* @param status the floating Ip status
*/
public DefaultFloatingIp(FloatingIpId id, TenantId tenantId,
TenantNetworkId networkId, VirtualPortId portId,
RouterId routerId, IpAddress floatingIp,
IpAddress fixedIp, Status status) {
this.id = checkNotNull(id, "id cannot be null");
this.tenantId = checkNotNull(tenantId, "tenantId cannot be null");
this.networkId = checkNotNull(networkId, "networkId cannot be null");
this.portId = portId;
this.routerId = routerId;
this.floatingIp = checkNotNull(floatingIp, "floatingIp cannot be null");
this.fixedIp = fixedIp;
this.status = checkNotNull(status, "status cannot be null");
}
@Override
public FloatingIpId id() {
return id;
}
@Override
public TenantId tenantId() {
return tenantId;
}
@Override
public TenantNetworkId networkId() {
return networkId;
}
@Override
public VirtualPortId portId() {
return portId;
}
@Override
public RouterId routerId() {
return routerId;
}
@Override
public IpAddress floatingIp() {
return floatingIp;
}
@Override
public IpAddress fixedIp() {
return fixedIp;
}
@Override
public Status status() {
return status;
}
@Override
public int hashCode() {
return Objects.hash(id, tenantId, networkId, portId, routerId,
floatingIp, fixedIp, status);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof DefaultFloatingIp) {
final DefaultFloatingIp that = (DefaultFloatingIp) obj;
return Objects.equals(this.id, that.id)
&& Objects.equals(this.tenantId, that.tenantId)
&& Objects.equals(this.networkId, that.networkId)
&& Objects.equals(this.portId, that.portId)
&& Objects.equals(this.routerId, that.routerId)
&& Objects.equals(this.floatingIp, that.floatingIp)
&& Objects.equals(this.fixedIp, that.fixedIp)
&& Objects.equals(this.status, that.status);
}
return false;
}
@Override
public String toString() {
return toStringHelper(this).add("id", id).add("tenantId", tenantId)
.add("networkId", networkId).add("portId", portId)
.add("routerId", routerId).add("floatingIp", floatingIp)
.add("fixedIp", fixedIp).add("floatingIpStatus", status)
.toString();
}
}
|