public Type getType ( SimpleType jacksonType ) { try { String signature = JacksonSignature . createSignature ( jacksonType ) ; CustomType type = new CustomType ( jacksonType . getRawClass ( ) . getName ( ) , signature , jacksonType . getRawClass ( ) ) ; if ( cache . containsKey ( signature ) ) { return cache . get ( signature ) ; } cache . put ( signature , type ) ; ObjectWriter objectWriter = objectMapper . writerFor ( jacksonType ) ; Field prefetchField = objectWriter . getClass ( ) . getDeclaredField ( "_prefetch" ) ; prefetchField . setAccessible ( true ) ; ObjectWriter . Prefetch prefetch = ( ObjectWriter . Prefetch ) prefetchField . get ( objectWriter ) ; doIntrospection ( prefetch . valueSerializer , type ) ; return type ; } catch ( NoSuchFieldException e ) { e . printStackTrace ( ) ; } catch ( IllegalAccessException e ) { e . printStackTrace ( ) ; } return null ; }
From Jackson type creates a JRAPIDoc type type is stored in cache