blob: fb185029cdbfb1284de2bd1153869e482ab18e11 [file] [log] [blame]
daniel parkb5817102018-02-15 00:18:51 +09001/*
2 * Copyright 2018-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.openstacknetworking.impl;
17
18import com.google.common.base.MoreObjects;
19import org.onlab.packet.IpAddress;
20import org.onlab.packet.MacAddress;
21import org.onlab.packet.VlanId;
22import org.onosproject.openstacknetworking.api.ExternalPeerRouter;
23
24import java.util.Objects;
25
26/**
27 * Implementation of external peer router.
28 */
29public class DefaultExternalPeerRouter implements ExternalPeerRouter {
30
31 private IpAddress externalPeerRouterIp;
32 private MacAddress externalPeerRouterMac;
33 private VlanId externalPeerRouterVlanId;
34
35 public DefaultExternalPeerRouter(IpAddress externalPeerRouterIp,
36 MacAddress externalPeerRouterMac,
37 VlanId externalPeerRouterVlanId) {
38 this.externalPeerRouterIp = externalPeerRouterIp;
39 this.externalPeerRouterMac = externalPeerRouterMac;
40 this.externalPeerRouterVlanId = externalPeerRouterVlanId;
41 }
42
43 @Override
44 public IpAddress externalPeerRouterIp() {
45 return this.externalPeerRouterIp;
46 }
47 @Override
48 public MacAddress externalPeerRouterMac() {
49 return this.externalPeerRouterMac;
50 }
51 @Override
52 public VlanId externalPeerRouterVlanId() {
53 return this.externalPeerRouterVlanId;
54 }
55
56 @Override
57 public boolean equals(Object obj) {
58 if (this == obj) {
59 return true;
60 }
61
62 if (obj instanceof DefaultExternalPeerRouter) {
63 DefaultExternalPeerRouter that = (DefaultExternalPeerRouter) obj;
64 return Objects.equals(externalPeerRouterIp, that.externalPeerRouterIp) &&
65 Objects.equals(externalPeerRouterMac, that.externalPeerRouterMac) &&
66 Objects.equals(externalPeerRouterVlanId, that.externalPeerRouterVlanId);
67 }
68 return false;
69 }
70
71 @Override
72 public int hashCode() {
73 return Objects.hash(externalPeerRouterIp,
74 externalPeerRouterMac,
75 externalPeerRouterVlanId);
76 }
77
78 @Override
79 public String toString() {
80 return MoreObjects.toStringHelper(getClass())
81 .add("externalPeerRouterIp", externalPeerRouterIp)
82 .add("externalPeerRouterMac", externalPeerRouterMac)
83 .add("externalPeerRouterVlanId", externalPeerRouterVlanId)
84 .toString();
85 }
86}