final String string = (String) object;
final EnumValueType enumValueType = new EnumValueType( type );
for( Enum<?> enumItem : enumValueType.getItems() )
{
final EnumSerialization enumSerializationAnnotation = enumValueType.getAnnotation( enumItem, EnumSerialization.class );
if( enumSerializationAnnotation == null )
{
if( enumItem.name().equalsIgnoreCase( string ) )
{
result = type.cast( enumItem );
}
}
else
{
if( enumSerializationAnnotation.caseSensitive() )
{
if( enumSerializationAnnotation.primary().equals( string ) )
{
result = type.cast( enumItem );
}
else
{
for( String x : enumSerializationAnnotation.alternative() )
{
if( x.equals( string ) )
{
result = type.cast( enumItem );
break;
}
}
}
}
else
{
if( enumSerializationAnnotation.primary().equalsIgnoreCase( string ) )
{
result = type.cast( enumItem );
}
else
{
for( String x : enumSerializationAnnotation.alternative() )
{
if( x.equalsIgnoreCase( string ) )
{
result = type.cast( enumItem );
break;