mirror of
https://github.com/twiglet/cs2j.git
synced 2025-01-18 13:15:17 +01:00
sync from RS: Add better enum parsing
This commit is contained in:
parent
13c808d373
commit
2c5e4afa3b
@ -49,8 +49,10 @@
|
|||||||
<Return>System.String</Return>
|
<Return>System.String</Return>
|
||||||
</Method>
|
</Method>
|
||||||
<Method>
|
<Method>
|
||||||
<Imports />
|
<Imports>
|
||||||
<Java>Enum.valueOf((Class*[? extends Enum]*)${enumType:15}, ${value})</Java>
|
<Import>CS2JNet.System.EnumSupport</Import>
|
||||||
|
</Imports>
|
||||||
|
<Java>EnumSupport.Parse((Class*[? extends Enum]*)${enumType:15}, ${value})</Java>
|
||||||
<Params>
|
<Params>
|
||||||
<Param>
|
<Param>
|
||||||
<Type>System.Type</Type>
|
<Type>System.Type</Type>
|
||||||
@ -64,6 +66,28 @@
|
|||||||
<Name>Parse</Name>
|
<Name>Parse</Name>
|
||||||
<Return>System.Object</Return>
|
<Return>System.Object</Return>
|
||||||
</Method>
|
</Method>
|
||||||
|
<Method>
|
||||||
|
<Imports>
|
||||||
|
<Import>CS2JNet.System.EnumSupport</Import>
|
||||||
|
</Imports>
|
||||||
|
<Java>EnumSupport.Parse((Class*[? extends Enum]*)${enumType:15}, ${value}, ${ignoreCase})</Java>
|
||||||
|
<Params>
|
||||||
|
<Param>
|
||||||
|
<Type>System.Type</Type>
|
||||||
|
<Name>enumType</Name>
|
||||||
|
</Param>
|
||||||
|
<Param>
|
||||||
|
<Type>System.String</Type>
|
||||||
|
<Name>value</Name>
|
||||||
|
</Param>
|
||||||
|
<Param>
|
||||||
|
<Type>System.Boolean</Type>
|
||||||
|
<Name>ignoreCase</Name>
|
||||||
|
</Param>
|
||||||
|
</Params>
|
||||||
|
<Name>Parse</Name>
|
||||||
|
<Return>System.Object</Return>
|
||||||
|
</Method>
|
||||||
</Methods>
|
</Methods>
|
||||||
<Properties />
|
<Properties />
|
||||||
<Events />
|
<Events />
|
||||||
|
@ -40,5 +40,23 @@ public class EnumSupport {
|
|||||||
return e.name();
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user