001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020
021 package org.apache.directory.server.dns.messages;
022
023
024 import org.apache.directory.server.dns.util.EnumConverter;
025 import org.apache.directory.server.dns.util.ReverseEnumMap;
026
027
028 /**
029 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
030 * @version $Rev: 547524 $, $Date: 2007-06-15 07:42:26 +0300 (Fri, 15 Jun 2007) $
031 */
032 public enum ProtocolType implements EnumConverter<Byte>
033 {
034 /** Null */
035 NULL(0),
036
037 /** Internet Conrol Message */
038 ICMP(1),
039
040 /** Internet Group Management */
041 IGMP(2),
042
043 /** Gateway-to-Gateway */
044 GGP(3),
045
046 /** Stream */
047 ST(5),
048
049 /** Transmission control */
050 TCP(6),
051
052 /** UCL */
053 UCL(7),
054
055 /** Exterior Gateway Protocol */
056 EGP(8),
057
058 /** any private interior gateway */
059 IGP(9),
060
061 /** BBN RCC Monitoring */
062 BBN_RCC_MON(10),
063
064 /** Network Voice Protocol */
065 NVP_II(11),
066
067 /** PUP */
068 PUP(12),
069
070 /** ARGUS */
071 ARGUS(13),
072
073 /** EMCON */
074 EMCON(14),
075
076 /** Cross Net Debugger */
077 XNET(15),
078
079 /** Chaos */
080 CHAOS(16),
081
082 /** User Datagram */
083 UDP(17),
084
085 /** Multiplexing */
086 MUX(18),
087
088 /** DCN Measurement Subsystems */
089 DCN_MEAS(19),
090
091 /** Host Monitoring */
092 HMP(20),
093
094 /** Packet Radio Measurement */
095 PRM(21),
096
097 /** XEROX NS IDP */
098 XNS_IDP(22),
099
100 /** Trunk-1 */
101 TRUNK_1(23),
102
103 /** Trunk-2 */
104 TRUNK_2(24),
105
106 /** Leaf-1 */
107 LEAF_1(25),
108
109 /** Leaf-2 */
110 LEAF_2(26),
111
112 /** Reliable Data Protocol */
113 RDP(27),
114
115 /** Internet Reliable Transaction */
116 IRTP(28),
117
118 /** ISO Transport Protocol Class 4 */
119 ISO_TP4(29),
120
121 /** Bulk Data Transfer Protocol */
122 NETBLT(30),
123
124 /** MFE Network Services Protocol */
125 MFE_NSP(31),
126
127 /** MERIT Internodal Protocol */
128 MERIT_INP(32),
129
130 /** Sequential Exchange Protocol */
131 SEP(33),
132
133 /** CFTP */
134 CFTP(62),
135
136 /** SATNET and Backroom EXPAK */
137 SAT_EXPAK(64),
138
139 /** MIT Subnet Support */
140 MIT_SUBNET(65),
141
142 /** MIT Remote Virtual Disk Protocol */
143 RVD(66),
144
145 /** Internet Pluribus Packet Core */
146 IPPC(67),
147
148 /** SATNET Monitoring */
149 SAT_MON(69),
150
151 /** Internet Packet Core Utility */
152 IPCV(71),
153
154 /** Backroom SETNET Monitoring */
155 BR_SAT_MON(76),
156
157 /** WIDEBAND Monitoring */
158 WB_MON(78),
159
160 /** WIDEBAND EXPAK */
161 WB_EXPAK(79);
162
163 private static ReverseEnumMap<Byte, ProtocolType> map = new ReverseEnumMap<Byte, ProtocolType>( ProtocolType.class );
164
165 private final byte value;
166
167
168 private ProtocolType( int value )
169 {
170 this.value = ( byte ) value;
171 }
172
173
174 public Byte convert()
175 {
176 return this.value;
177 }
178
179
180 /**
181 * Converts an ordinal value into a {@link ProtocolType}.
182 *
183 * @param value
184 * @return The {@link ProtocolType}.
185 */
186 public static ProtocolType convert( byte value )
187 {
188 return map.get( value );
189 }
190 }