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>
|
||||
</Method>
|
||||
<Method>
|
||||
<Imports />
|
||||
<Java>Enum.valueOf((Class*[? extends Enum]*)${enumType:15}, ${value})</Java>
|
||||
<Imports>
|
||||
<Import>CS2JNet.System.EnumSupport</Import>
|
||||
</Imports>
|
||||
<Java>EnumSupport.Parse((Class*[? extends Enum]*)${enumType:15}, ${value})</Java>
|
||||
<Params>
|
||||
<Param>
|
||||
<Type>System.Type</Type>
|
||||
@ -64,6 +66,28 @@
|
||||
<Name>Parse</Name>
|
||||
<Return>System.Object</Return>
|
||||
</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>
|
||||
<Properties />
|
||||
<Events />
|
||||
|
@ -41,4 +41,22 @@ public class EnumSupport {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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