| /* |
| * 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.List; |
| import java.util.Objects; |
| |
| /** |
| * Default implementation of router interface. |
| */ |
| public final class DefaultRouter implements Router { |
| private final RouterId id; |
| private final String name; |
| private final boolean adminStateUp; |
| private final Status status; |
| private final boolean distributed; |
| private final RouterGateway externalGatewayInfo; |
| private final VirtualPortId gatewayPortId; |
| private final TenantId tenantId; |
| private final List<String> routes; |
| |
| /** |
| * Creates router object. |
| * |
| * @param id router identifier |
| * @param routerName the name of router |
| * @param adminStateUp the status of admin state |
| * @param status the status of router |
| * @param distributed the status of router distributed |
| * @param externalGatewayInfo the gateway info of router |
| * @param gatewayPortId the port identifier of router gateway |
| * @param tenantId the tenant identifier |
| * @param routes the routes configure |
| */ |
| public DefaultRouter(RouterId id, String routerName, boolean adminStateUp, |
| Status status, boolean distributed, |
| RouterGateway externalGatewayInfo, |
| VirtualPortId gatewayPortId, TenantId tenantId, |
| List<String> routes) { |
| this.id = checkNotNull(id, "id cannot be null"); |
| this.name = routerName; |
| this.adminStateUp = checkNotNull(adminStateUp, "adminStateUp cannot be null"); |
| this.status = checkNotNull(status, "status cannot be null"); |
| this.distributed = checkNotNull(distributed, "distributed cannot be null"); |
| this.externalGatewayInfo = externalGatewayInfo; |
| this.gatewayPortId = gatewayPortId; |
| this.tenantId = checkNotNull(tenantId, "tenantId cannot be null"); |
| this.routes = routes; |
| } |
| |
| @Override |
| public RouterId id() { |
| return id; |
| } |
| |
| @Override |
| public String name() { |
| return name; |
| } |
| |
| @Override |
| public boolean adminStateUp() { |
| return adminStateUp; |
| } |
| |
| @Override |
| public Status status() { |
| return status; |
| } |
| |
| @Override |
| public boolean distributed() { |
| return distributed; |
| } |
| |
| @Override |
| public RouterGateway externalGatewayInfo() { |
| return externalGatewayInfo; |
| } |
| |
| @Override |
| public VirtualPortId gatewayPortid() { |
| return gatewayPortId; |
| } |
| |
| @Override |
| public TenantId tenantId() { |
| return tenantId; |
| } |
| |
| @Override |
| public List<String> routes() { |
| return routes; |
| } |
| |
| @Override |
| public int hashCode() { |
| return Objects.hash(id, name, adminStateUp, status, distributed, |
| externalGatewayInfo, gatewayPortId, routes); |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (this == obj) { |
| return true; |
| } |
| if (obj instanceof DefaultRouter) { |
| final DefaultRouter that = (DefaultRouter) obj; |
| return Objects.equals(this.id, that.id) |
| && Objects.equals(this.name, that.name) |
| && Objects.equals(this.adminStateUp, that.adminStateUp) |
| && Objects.equals(this.status, that.status) |
| && Objects.equals(this.distributed, that.distributed) |
| && Objects.equals(this.externalGatewayInfo, |
| that.externalGatewayInfo) |
| && Objects.equals(this.gatewayPortId, that.gatewayPortId) |
| && Objects.equals(this.routes, that.routes); |
| } |
| return false; |
| } |
| |
| @Override |
| public String toString() { |
| return toStringHelper(this).add("id", id).add("routerName", name) |
| .add("adminStateUp", adminStateUp).add("status", status) |
| .add("distributed", distributed) |
| .add("externalGatewayInfo", externalGatewayInfo) |
| .add("gatewayPortid", gatewayPortId).add("routes", routes).toString(); |
| } |
| } |