diff --git a/CS2JLibrary/NetFramework/System/Enum.xml b/CS2JLibrary/NetFramework/System/Enum.xml
index 14d3680..84cb439 100644
--- a/CS2JLibrary/NetFramework/System/Enum.xml
+++ b/CS2JLibrary/NetFramework/System/Enum.xml
@@ -49,8 +49,10 @@
System.String
-
- Enum.valueOf((Class*[? extends Enum]*)${enumType:15}, ${value})
+
+ CS2JNet.System.EnumSupport
+
+ EnumSupport.Parse((Class*[? extends Enum]*)${enumType:15}, ${value})
System.Type
@@ -64,6 +66,28 @@
Parse
System.Object
+
+
+ CS2JNet.System.EnumSupport
+
+ EnumSupport.Parse((Class*[? extends Enum]*)${enumType:15}, ${value}, ${ignoreCase})
+
+
+ System.Type
+ enumType
+
+
+ System.String
+ value
+
+
+ System.Boolean
+ ignoreCase
+
+
+ Parse
+ System.Object
+
diff --git a/CS2JLibrary/src/CS2JNet/System/EnumSupport.java b/CS2JLibrary/src/CS2JNet/System/EnumSupport.java
index 15698a4..5f9949f 100755
--- a/CS2JLibrary/src/CS2JNet/System/EnumSupport.java
+++ b/CS2JLibrary/src/CS2JNet/System/EnumSupport.java
@@ -40,5 +40,23 @@ public class EnumSupport {
return e.name();
}
+ }
+
+ public static Object Parse(Class extends Enum> enumClass, String name) throws IllegalArgumentException {
+ return Parse(enumClass, name, false);
+ }
+
+ public static Object Parse(Class extends Enum> enumClass, String name, boolean ignoreCase) throws IllegalArgumentException {
+ if(!ignoreCase){
+ return Enum.valueOf(enumClass, name);
+ }
+
+ Enum[] vals = enumClass.getEnumConstants();
+ for(Enum val : vals){
+ if(val.toString().equalsIgnoreCase(name)){
+ return val;
+ }
+ }
+ throw new IllegalArgumentException(name + " is not a valid " + enumClass.getName());
}
}