private static < T > SimonType getValue ( Class < ? extends T > type , SimonTypeMatcher < T > typeMatcher ) { SimonType simonType = SIMON_TYPE_CACHE . get ( type ) ; if ( simonType == null ) { for ( SimonType lSimonType : SimonType . values ( ) ) { if ( typeMatcher . matches ( type , lSimonType ) ) { simonType = lSimonType ; if ( ! Proxy . isProxyClass ( type ) ) { SIMON_TYPE_CACHE . put ( type , simonType ) ; } break ; } } } return simonType ; }
Get Simon type corresponding to class .