2 * Copyright (c) 2013 Contextream, 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
9 package org.opendaylight.lispflowmapping.type;
11 import org.opendaylight.lispflowmapping.type.lisp.address.LispASAddress;
12 import org.opendaylight.lispflowmapping.type.lisp.address.LispAddress;
13 import org.opendaylight.lispflowmapping.type.lisp.address.LispIpv4Address;
14 import org.opendaylight.lispflowmapping.type.lisp.address.LispIpv6Address;
15 import org.opendaylight.lispflowmapping.type.lisp.address.LispLCAFAddress;
16 import org.opendaylight.lispflowmapping.type.lisp.address.LispMACAddress;
17 import org.opendaylight.lispflowmapping.type.lisp.address.LispNoAddress;
19 public enum AddressFamilyNumberEnum {
20 RESERVED(0, LispNoAddress.class), //
21 IP(1, LispIpv4Address.class), //
22 IP6(2, LispIpv6Address.class), //
23 AS(18, LispASAddress.class), //
24 LCAF(16387, LispLCAFAddress.class), //
25 MAC(16389, LispMACAddress.class), //
28 private short ianaCode;
29 private Class<? extends LispAddress> lispAddressClass;
31 private AddressFamilyNumberEnum(int ianaCode, Class<? extends LispAddress> lispAddressClass) {
32 this.ianaCode = (short) ianaCode;
33 this.lispAddressClass = lispAddressClass;
36 public Class<? extends LispAddress> getLispAddressClass() {
37 return lispAddressClass;
40 public short getIanaCode() {
44 public static AddressFamilyNumberEnum valueOf(short ianaCode) {
45 for (AddressFamilyNumberEnum val : values()) {
46 if (val.getIanaCode() == ianaCode) {