question: public static < ET extends Enum < ET > > EnumResolver < ET > constructFor ( Class < ET > enumCls , AnnotationIntrospector ai ) { ET [ ] enumValues = enumCls . getEnumConstants ( ) ; if ( enumValues == null ) { throw new IllegalArgumentException ( "No enum constants for class " + enumCls . getName ( ) ) ; } HashMap < String , ET > map = new HashMap < String , ET > ( ) ; for ( ET e : enumValues ) { map . put ( ai . findEnumValue ( e ) , e ) ; } return new EnumResolver < ET > ( enumCls , enumValues , map ) ; }
target:  Factory method for constructing resolver that maps from Enum.name() into Enum value