You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by fe...@apache.org on 2010/11/22 10:54:34 UTC
svn commit: r1037653 - in
/directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp:
messages/MessageType.java service/AbstractDhcpService.java
Author: felixk
Date: Mon Nov 22 09:54:34 2010
New Revision: 1037653
URL: http://svn.apache.org/viewvc?rev=1037653&view=rev
Log:
Transform to enum
Modified:
directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/messages/MessageType.java
directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/service/AbstractDhcpService.java
Modified: directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/messages/MessageType.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/messages/MessageType.java?rev=1037653&r1=1037652&r2=1037653&view=diff
==============================================================================
--- directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/messages/MessageType.java (original)
+++ directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/messages/MessageType.java Mon Nov 22 09:54:34 2010
@@ -21,76 +21,43 @@
package org.apache.directory.server.dhcp.messages;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-
/**
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public final class MessageType implements Comparable
+public enum MessageType
{
- // FIXME: does this class make a lot of sense in absence of real (1.5)
- // enums?
- // The DOCPDISCOVER et. al. constants can't be used conveniently in
- // switches,
- // therefore the byte constants fpr the opcodes are duplicated here.
- public static final byte CODE_DHCPINFORM = 8;
-
- public static final byte CODE_DHCPRELEASE = 7;
-
- public static final byte CODE_DHCPNAK = 6;
+ DHCPUNRECOGNIZED(( byte ) -1, "unrecognized"),
- public static final byte CODE_DHCPACK = 5;
+ DHCPDISCOVER(( byte ) 1, "DHCP Discover"),
- public static final byte CODE_DHCPDECLINE = 4;
+ DHCPOFFER(( byte ) 2, "DHCP Offer"),
- public static final byte CODE_DHCPREQUEST = 3;
+ DHCPREQUEST(( byte ) 3, "DHCP Request"),
- public static final byte CODE_DHCPOFFER = 2;
-
- public static final byte CODE_DHCPDISCOVER = 1;
-
- /**
- * Enumeration elements are constructed once upon class loading. Order of
- * appearance here determines the order of compareTo.
- */
- public static final MessageType DHCPDISCOVER = new MessageType( CODE_DHCPDISCOVER, "DHCP Discover" );
+ DHCPDECLINE(( byte ) 4, "DHCP Decline"),
- public static final MessageType DHCPOFFER = new MessageType( CODE_DHCPOFFER, "DHCP Offer" );
+ DHCPACK(( byte ) 5, "DHCP Acknowledge"),
- public static final MessageType DHCPREQUEST = new MessageType( CODE_DHCPREQUEST, "DHCP Request" );
+ DHCPNAK(( byte ) 6, "DHCP Not Acknowledge"),
- public static final MessageType DHCPDECLINE = new MessageType( CODE_DHCPDECLINE, "DHCP Decline" );
+ DHCPRELEASE(( byte ) 7, "DHCP Release"),
- public static final MessageType DHCPACK = new MessageType( CODE_DHCPACK, "DHCP Acknowledge" );
+ DHCPINFORM(( byte ) 8, "DHCP Inform");
- public static final MessageType DHCPNAK = new MessageType( CODE_DHCPNAK, "DHCP Not Acknowledge" );
-
- public static final MessageType DHCPRELEASE = new MessageType( CODE_DHCPRELEASE, "DHCP Release" );
-
- public static final MessageType DHCPINFORM = new MessageType( CODE_DHCPINFORM, "DHCP Inform" );
-
-
- public String toString()
- {
- return name;
- }
-
-
- public int compareTo( Object that )
- {
- return ordinal - ( ( MessageType ) that ).ordinal;
- }
+ private String name;
+ private byte ordinal;
public static MessageType getTypeByCode( byte type )
{
- for ( int ii = 0; ii < values.length; ii++ )
- if ( values[ii].ordinal == type )
- return values[ii];
- return new MessageType( type, "Unrecognized" );
+ for ( MessageType mt : MessageType.values() )
+ {
+ if ( type == mt.getCode() )
+ {
+ return mt;
+ }
+ }
+ return DHCPUNRECOGNIZED;
}
@@ -99,27 +66,20 @@ public final class MessageType implement
return ordinal;
}
- // / PRIVATE /////
- private final String name;
-
- private final byte ordinal;
-
/**
* Private constructor prevents construction outside of this class.
*/
- private MessageType(byte ordinal, String name)
+ private MessageType( byte ordinal, String name )
{
this.ordinal = ordinal;
this.name = name;
}
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final MessageType[] values =
- { DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPDECLINE, DHCPACK, DHCPNAK, DHCPRELEASE, DHCPINFORM };
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+ public String toString()
+ {
+ return name;
+ }
+
}
Modified: directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/service/AbstractDhcpService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/service/AbstractDhcpService.java?rev=1037653&r1=1037652&r2=1037653&view=diff
==============================================================================
--- directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/service/AbstractDhcpService.java (original)
+++ directory/apacheds/trunk/protocol-dhcp/src/main/java/org/apache/directory/server/dhcp/service/AbstractDhcpService.java Mon Nov 22 09:54:34 2010
@@ -24,7 +24,6 @@ import java.util.Iterator;
import org.apache.directory.server.dhcp.DhcpException;
import org.apache.directory.server.dhcp.messages.DhcpMessage;
-import org.apache.directory.server.dhcp.messages.MessageType;
import org.apache.directory.server.dhcp.options.DhcpOption;
import org.apache.directory.server.dhcp.options.OptionsField;
import org.apache.directory.server.dhcp.options.dhcp.ParameterRequestList;
@@ -64,24 +63,24 @@ public abstract class AbstractDhcpServic
}
// dispatch based on the message type
- switch (request.getMessageType().getCode()){
+ switch (request.getMessageType()){
// client-to-server messages
- case MessageType.CODE_DHCPDISCOVER :
+ case DHCPDISCOVER :
return handleDISCOVER(localAddress, clientAddress, request);
- case MessageType.CODE_DHCPREQUEST :
+ case DHCPREQUEST :
return handleREQUEST(localAddress, clientAddress, request);
- case MessageType.CODE_DHCPRELEASE :
+ case DHCPRELEASE :
return handleRELEASE(localAddress, clientAddress, request);
- case MessageType.CODE_DHCPINFORM :
+ case DHCPINFORM :
return handleINFORM(localAddress, clientAddress, request);
- case MessageType.CODE_DHCPOFFER :
+ case DHCPOFFER :
return handleOFFER(localAddress, clientAddress, request);
// server-to-client messages
- case MessageType.CODE_DHCPDECLINE :
- case MessageType.CODE_DHCPACK :
- case MessageType.CODE_DHCPNAK :
+ case DHCPDECLINE :
+ case DHCPACK :
+ case DHCPNAK :
return null; // just ignore them
default :