package fitnesse.slim;

public class EnumConverter<T extends Enum<T>> implements Converter<T> {

    private final Class<T> enumClass;

    public EnumConverter(Class<T> enumClass) {
        this.enumClass = enumClass;
    }

    @Override
    public String toString(T o) {
        return o.name();
    }

    @Override
    public T fromString(String name) {
        return Enum.valueOf(enumClass, name);
    }


}

@@ -17,16 +17,61 @@
 .slim;%0A%0A
+import org.apache.commons.lang.StringUtils;%0A%0A
 public c
@@ -135,18 +135,16 @@
 r%3CT%3E %7B%0A%0A
-  
   privat
@@ -172,18 +172,16 @@
 Class;%0A%0A
-  
   public
@@ -221,20 +221,16 @@
 ) %7B%0A    
-  
-  
 this.enu
@@ -249,27 +249,23 @@
 mClass;%0A
-  
   %7D%0A%0A  
- 
- 
 @Overrid
@@ -258,34 +258,32 @@
  %7D%0A%0A  @Override%0A
-  
   public String 
@@ -298,28 +298,24 @@
 (T o) %7B%0A    
-   
- 
 return o.nam
@@ -323,17 +323,13 @@
 ();%0A
-  
   %7D%0A%0A
-  
   @O
@@ -336,18 +336,16 @@
 verride%0A
-  
   public
@@ -375,16 +375,77 @@
 me) %7B%0A  
+  if (StringUtils.isBlank(name))%0A      return null;%0A    else%0A
       re
@@ -482,16 +482,13 @@
 ame);%0A  
-  %7D%0A
+%7D
 %0A%0A%7D%0A

Handle null enum values