Tuesday 30 September 2008

Java Enumeration Testing


public enum DirectionEnum {
 NORTH("N", "North", 1), NORTH_EAST("NE", "North-East", 2), EAST("E", "East", 3), SOUTH_EAST("SE", "South-East", 4), SOUTH("S", "South", 5), SOUTH_WEST(
   "SW", "South-West", 6), WEST("W", "West", 7), NORTH_WEST("NW", "North-West", 8);

 private final String code;
 private final String description;
 private final short id;

 private DirectionEnum(String code, String description, int id) {
  this.code = code;
  this.description = description;
  this.id = (short) id;
 }

 public String getCode() {
  return code;
 }

 public String getDescription() {
  return description;
 }

 public short getId() {
  return id;
 }

 public static DirectionEnum findById(int id) {
  for (DirectionEnum dir : DirectionEnum.values()) {
   if (dir.getId() == id) {
    return dir;
   }
  }
  return null;
 }
}


public enum VehicleClassEnum {
 H("Heavy"), L("Light"), N("Not Specified");

 private String description;

 private VehicleClassEnum(String description) {
  this.description = description;
 }

 public String getDescription() {
  return description;
 }

 public void setDescription(String description) {
  this.description = description;
 }

}



import java.util.Vector;
import java.util.Enumeration;

public class EnumerationTester {

 public static void main(String args[]) {
  System.out.println(VehicleClassEnum.valueOf("H"));
  System.out.println(VehicleClassEnum.valueOf("H").toString());
  System.out.println(VehicleClassEnum.valueOf("H").getDescription());
  System.out.println(VehicleClassEnum.valueOf(VehicleClassEnumTest.class, VehicleClassEnum.L.getDescription()));
  System.out.println(VehicleClassEnum.values());
  for (VehicleClassEnum classEnum : VehicleClassEnum.values()) {
   System.out.println("VehicleClassEnum:" + classEnum + ", VehicleClassEnum.toStirng()" + classEnum.toString() + ", VehicleClassEnum.name():"
     + classEnum.name() + ", VehicleClassEnum.ordinal():" + classEnum.ordinal() + ", getDeclaringClass:" + classEnum.getDeclaringClass()
     + ", getDescription():" + classEnum.getDescription() + ", compareTo:" + classEnum.compareTo(VehicleClassEnum.L));
  }

  Enumeration days;
  Vector dayNames = new Vector();
  dayNames.add("Sunday");
  dayNames.add("Monday");
  dayNames.add("Tuesday");
  dayNames.add("Wednesday");
  dayNames.add("Thursday");
  dayNames.add("Friday");
  dayNames.add("Saturday");
  days = dayNames.elements();
  while (days.hasMoreElements()) {
   System.out.println(days.nextElement());
  }
 }
}



---------------OUTPUT---------------

H
H
Heavy
Light
[LVehicleClassEnum;@3ce53108
VehicleClassEnum:H, VehicleClassEnum.toStirng()H, VehicleClassEnum.name():H, VehicleClassEnum.ordinal():0, getDeclaringClass:class VehicleClassEnum, getDescription():Heavy, compareTo:-1
VehicleClassEnum:L, VehicleClassEnum.toStirng()L, VehicleClassEnum.name():L, VehicleClassEnum.ordinal():1, getDeclaringClass:class VehicleClassEnum, getDescription():Light, compareTo:0
VehicleClassEnum:N, VehicleClassEnum.toStirng()N, VehicleClassEnum.name():N, VehicleClassEnum.ordinal():2, getDeclaringClass:class VehicleClassEnum, getDescription():Not Specified, compareTo:1
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday