/*
* Copyright (C) 2006 Open Cloud Ltd.
*
* Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat Middleware LLC.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of version 2.1 of the GNU Lesser
* General Public License as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package net.java.slee.resource.diameter.base.events.avp;
import java.io.Serializable;
import java.io.StreamCorruptedException;
/**
* Java class to represent the AddressType enumerated type.
*<P/>
* Documentation from the relevant specification:
*<P/>
* Address type defined in http://www.iana.org/assignments/address-family-numbers, referenced by the Diameter specification.
*
* @author Open Cloud
*/
public class AddressType implements Serializable, Enumerated {
private static final long serialVersionUID = 1L;
public static final int _ADDRESS_RESERVED = 0;
public static final int _ADDRESS_IP = 1;
public static final int _ADDRESS_IPV6 = 2;
public static final int _ADDRESS_NSAP = 3;
public static final int _ADDRESS_HDLC = 4;
public static final int _ADDRESS_BBN1822 = 5;
public static final int _ADDRESS_802 = 6;
public static final int _ADDRESS_E163 = 7;
public static final int _ADDRESS_E164 = 8;
public static final int _ADDRESS_F69 = 9;
public static final int _ADDRESS_X121 = 10;
public static final int _ADDRESS_IPX = 11;
public static final int _ADDRESS_APPLETALK = 12;
public static final int _ADDRESS_DECNET_IV = 13;
public static final int _ADDRESS_BANYAN_VINES = 14;
public static final int _ADDRESS_E164NSAP = 15;
public static final int _ADDRESS_DNS = 16;
public static final int _ADDRESS_DN = 17;
public static final int _ADDRESS_ASN = 18;
public static final int _ADDRESS_XTPV4 = 19;
public static final int _ADDRESS_XTPV6 = 20;
public static final int _ADDRESS_XTPN = 21;
public static final int _ADDRESS_FCP = 22;
public static final int _ADDRESS_FCN = 23;
public static final int _ADDRESS_GWID = 24;
public static final int _ADDRESS_RESERVED2 = 65535;
/**
* Reserved
*/
public static final AddressType ADDRESS_RESERVED = new AddressType(_ADDRESS_RESERVED);
/**
* IP (IP version 4)
*/
public static final AddressType ADDRESS_IP = new AddressType(_ADDRESS_IP);
/**
* IP6 (IP version 6)
*/
public static final AddressType ADDRESS_IPV6 = new AddressType(_ADDRESS_IPV6);
/**
* NSAP
*/
public static final AddressType ADDRESS_NSAP = new AddressType(_ADDRESS_NSAP);
/**
* HDLC (8-bit multidrop)
*/
public static final AddressType ADDRESS_HDLC = new AddressType(_ADDRESS_HDLC);
/**
* BBN 1822
*/
public static final AddressType ADDRESS_BBN1822 = new AddressType(_ADDRESS_BBN1822);
/**
* 802 (includes all 802 media plus Ethernet "canonical format")
*/
public static final AddressType ADDRESS_802 = new AddressType(_ADDRESS_802);
/**
* E.163
*/
public static final AddressType ADDRESS_E163 = new AddressType(_ADDRESS_E163);
/**
* E.164 (SMDS, Frame Relay, ATM)
*/
public static final AddressType ADDRESS_E164 = new AddressType(_ADDRESS_E164);
/**
* F.69 (Telex)
*/
public static final AddressType ADDRESS_F69 = new AddressType(_ADDRESS_F69);
/**
* X.121 (X.25, Frame Relay)
*/
public static final AddressType ADDRESS_X121 = new AddressType(_ADDRESS_X121);
/**
* IPX
*/
public static final AddressType ADDRESS_IPX = new AddressType(_ADDRESS_IPX);
/**
* Appletalk
*/
public static final AddressType ADDRESS_APPLETALK = new AddressType(_ADDRESS_APPLETALK);
/**
* Decnet IV
*/
public static final AddressType ADDRESS_DECNET_IV = new AddressType(_ADDRESS_DECNET_IV);
/**
* Banyan Vines
*/
public static final AddressType ADDRESS_BANYAN_VINES = new AddressType(_ADDRESS_BANYAN_VINES);
/**
* E.164 with NSAP format subaddress
*/
public static final AddressType ADDRESS_E164NSAP = new AddressType(_ADDRESS_E164NSAP);
/**
* DNS (Domain Name System)
*/
public static final AddressType ADDRESS_DNS = new AddressType(_ADDRESS_DNS);
/**
* Distinguished Name
*/
public static final AddressType ADDRESS_DN = new AddressType(_ADDRESS_DN);
/**
* AS Number
*/
public static final AddressType ADDRESS_ASN = new AddressType(_ADDRESS_ASN);
/**
* XTP over IP version 4
*/
public static final AddressType ADDRESS_XTPV4 = new AddressType(_ADDRESS_XTPV4);
/**
* XTP over IP version 6
*/
public static final AddressType ADDRESS_XTPV6 = new AddressType(_ADDRESS_XTPV6);
/**
* XTP native mode XTP
*/
public static final AddressType ADDRESS_XTPN = new AddressType(_ADDRESS_XTPN);
/**
* Fibre Channel World-Wide Port Name
*/
public static final AddressType ADDRESS_FCP = new AddressType(_ADDRESS_FCP);
/**
* Fibre Channel World-Wide Node Name
*/
public static final AddressType ADDRESS_FCN = new AddressType(_ADDRESS_FCN);
/**
* GWID
*/
public static final AddressType ADDRESS_GWID = new AddressType(_ADDRESS_GWID);
/**
* Reserved
*/
public static final AddressType ADDRESS_RESERVED2 = new AddressType(_ADDRESS_RESERVED2);
private AddressType(int value) {
this.value = value;
}
public static AddressType fromInt(int type) {
switch(type) {
case _ADDRESS_RESERVED: return ADDRESS_RESERVED;
case _ADDRESS_IP: return ADDRESS_IP;
case _ADDRESS_IPV6: return ADDRESS_IPV6;
case _ADDRESS_NSAP: return ADDRESS_NSAP;
case _ADDRESS_HDLC: return ADDRESS_HDLC;
case _ADDRESS_BBN1822: return ADDRESS_BBN1822;
case _ADDRESS_802: return ADDRESS_802;
case _ADDRESS_E163: return ADDRESS_E163;
case _ADDRESS_E164: return ADDRESS_E164;
case _ADDRESS_F69: return ADDRESS_F69;
case _ADDRESS_X121: return ADDRESS_X121;
case _ADDRESS_IPX: return ADDRESS_IPX;
case _ADDRESS_APPLETALK: return ADDRESS_APPLETALK;
case _ADDRESS_DECNET_IV: return ADDRESS_DECNET_IV;
case _ADDRESS_BANYAN_VINES: return ADDRESS_BANYAN_VINES;
case _ADDRESS_E164NSAP: return ADDRESS_E164NSAP;
case _ADDRESS_DNS: return ADDRESS_DNS;
case _ADDRESS_DN: return ADDRESS_DN;
case _ADDRESS_ASN: return ADDRESS_ASN;
case _ADDRESS_XTPV4: return ADDRESS_XTPV4;
case _ADDRESS_XTPV6: return ADDRESS_XTPV6;
case _ADDRESS_XTPN: return ADDRESS_XTPN;
case _ADDRESS_FCP: return ADDRESS_FCP;
case _ADDRESS_FCN: return ADDRESS_FCN;
case _ADDRESS_GWID: return ADDRESS_GWID;
case _ADDRESS_RESERVED2: return ADDRESS_RESERVED2;
default: throw new IllegalArgumentException("Invalid AddressType value: " + type);
}
}
public int getValue() {
return value;
}
public String toString() {
switch(value) {
case _ADDRESS_RESERVED: return "ADDRESS_RESERVED";
case _ADDRESS_IP: return "ADDRESS_IP";
case _ADDRESS_IPV6: return "ADDRESS_IPV6";
case _ADDRESS_NSAP: return "ADDRESS_NSAP";
case _ADDRESS_HDLC: return "ADDRESS_HDLC";
case _ADDRESS_BBN1822: return "ADDRESS_BBN1822";
case _ADDRESS_802: return "ADDRESS_802";
case _ADDRESS_E163: return "ADDRESS_E163";
case _ADDRESS_E164: return "ADDRESS_E164";
case _ADDRESS_F69: return "ADDRESS_F69";
case _ADDRESS_X121: return "ADDRESS_X121";
case _ADDRESS_IPX: return "ADDRESS_IPX";
case _ADDRESS_APPLETALK: return "ADDRESS_APPLETALK";
case _ADDRESS_DECNET_IV: return "ADDRESS_DECNET_IV";
case _ADDRESS_BANYAN_VINES: return "ADDRESS_BANYAN_VINES";
case _ADDRESS_E164NSAP: return "ADDRESS_E164NSAP";
case _ADDRESS_DNS: return "ADDRESS_DNS";
case _ADDRESS_DN: return "ADDRESS_DN";
case _ADDRESS_ASN: return "ADDRESS_ASN";
case _ADDRESS_XTPV4: return "ADDRESS_XTPV4";
case _ADDRESS_XTPV6: return "ADDRESS_XTPV6";
case _ADDRESS_XTPN: return "ADDRESS_XTPN";
case _ADDRESS_FCP: return "ADDRESS_FCP";
case _ADDRESS_FCN: return "ADDRESS_FCN";
case _ADDRESS_GWID: return "ADDRESS_GWID";
case _ADDRESS_RESERVED2: return "ADDRESS_RESERVED2";
default: return "<Invalid Value>";
}
}
private Object readResolve() throws StreamCorruptedException {
try {
return fromInt(value);
}
catch (IllegalArgumentException iae) {
throw new StreamCorruptedException("Invalid internal state found: " + value);
}
}
private int value;
}