1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.directory.server.dhcp.messages;
22
23
24 import java.util.Arrays;
25 import java.util.Collections;
26 import java.util.List;
27
28
29
30
31
32
33 public final class MessageType implements Comparable
34 {
35
36
37
38
39
40 public static final byte CODE_DHCPINFORM = 8;
41
42 public static final byte CODE_DHCPRELEASE = 7;
43
44 public static final byte CODE_DHCPNAK = 6;
45
46 public static final byte CODE_DHCPACK = 5;
47
48 public static final byte CODE_DHCPDECLINE = 4;
49
50 public static final byte CODE_DHCPREQUEST = 3;
51
52 public static final byte CODE_DHCPOFFER = 2;
53
54 public static final byte CODE_DHCPDISCOVER = 1;
55
56
57
58
59
60 public static final MessageType DHCPDISCOVER = new MessageType( CODE_DHCPDISCOVER, "DHCP Discover" );
61
62 public static final MessageType DHCPOFFER = new MessageType( CODE_DHCPOFFER, "DHCP Offer" );
63
64 public static final MessageType DHCPREQUEST = new MessageType( CODE_DHCPREQUEST, "DHCP Request" );
65
66 public static final MessageType DHCPDECLINE = new MessageType( CODE_DHCPDECLINE, "DHCP Decline" );
67
68 public static final MessageType DHCPACK = new MessageType( CODE_DHCPACK, "DHCP Acknowledge" );
69
70 public static final MessageType DHCPNAK = new MessageType( CODE_DHCPNAK, "DHCP Not Acknowledge" );
71
72 public static final MessageType DHCPRELEASE = new MessageType( CODE_DHCPRELEASE, "DHCP Release" );
73
74 public static final MessageType DHCPINFORM = new MessageType( CODE_DHCPINFORM, "DHCP Inform" );
75
76
77 public String toString()
78 {
79 return name;
80 }
81
82
83 public int compareTo( Object that )
84 {
85 return ordinal - ( ( MessageType ) that ).ordinal;
86 }
87
88
89 public static MessageType getTypeByCode( byte type )
90 {
91 for ( int ii = 0; ii < values.length; ii++ )
92 if ( values[ii].ordinal == type )
93 return values[ii];
94 return new MessageType( type, "Unrecognized" );
95 }
96
97
98 public byte getCode()
99 {
100 return ordinal;
101 }
102
103
104 private final String name;
105
106 private final byte ordinal;
107
108
109
110
111
112 private MessageType(byte ordinal, String name)
113 {
114 this.ordinal = ordinal;
115 this.name = name;
116 }
117
118
119
120
121 private static final MessageType[] values =
122 { DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPDECLINE, DHCPACK, DHCPNAK, DHCPRELEASE, DHCPINFORM };
123
124
125 public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
126 }