2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.protocol.bgp.parser;
10 import static java.util.Objects.requireNonNull;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily;
17 * Utility class identifying a BGP table type. A table type is formed by two identifiers: AFI and SAFI.
19 public final class BgpTableTypeImpl implements BgpTableType {
21 private final Class<? extends SubsequentAddressFamily> safi;
23 private final Class<? extends AddressFamily> afi;
26 * Creates BGP Table type.
28 * @param afi Address Family Identifier
29 * @param safi Subsequent Address Family Identifier
31 public BgpTableTypeImpl(final Class<? extends AddressFamily> afi, final Class<? extends SubsequentAddressFamily> safi) {
32 this.afi = requireNonNull(afi, "Address family may not be null");
33 this.safi = requireNonNull(safi, "Subsequent address family may not be null");
37 public Class<BgpTableType> getImplementedInterface() {
38 return BgpTableType.class;
42 public int hashCode() {
44 int ret = prime * this.afi.hashCode();
45 ret += this.safi.hashCode();
50 public boolean equals(final Object obj) {
51 if (obj instanceof BgpTableTypeImpl) {
52 final BgpTableTypeImpl o = (BgpTableTypeImpl) obj;
53 return this.afi.equals(o.afi) && this.safi.equals(o.safi);
59 public String toString() {
60 final StringBuilder builder = new StringBuilder();
61 builder.append("BgpTableTypeImpl [getAfi()=");
62 builder.append(getAfi());
63 builder.append(", getSafi()=");
64 builder.append(getSafi());
66 return builder.toString();
70 * Returns Address Family Identifier.
75 public Class<? extends AddressFamily> getAfi() {
80 * Returns Subsequent Address Family Identifier.
85 public Class<? extends SubsequentAddressFamily> getSafi() {