question: @ Override protected void prepareBuilders ( @ Nullable String cacheName , Collection < JdbcType > types ) throws CacheException { Map < String , PojoPropertiesCache > pojoProps = U . newHashMap ( types . size ( ) * 2 ) ; for ( JdbcType type : types ) { String keyTypeName = type . getKeyType ( ) ; TypeKind keyKind = kindForName ( keyTypeName ) ; if ( keyKind == TypeKind . POJO ) { if ( pojoProps . containsKey ( keyTypeName ) ) throw new CacheException ( "Found duplicate key type [cache=" + U . maskName ( cacheName ) + ", keyType=" + keyTypeName + "]" ) ; pojoProps . put ( keyTypeName , new PojoPropertiesCache ( keyTypeName , type . getKeyFields ( ) ) ) ; } String valTypeName = type . getValueType ( ) ; TypeKind valKind = kindForName ( valTypeName ) ; if ( valKind == TypeKind . POJO ) pojoProps . put ( valTypeName , new PojoPropertiesCache ( valTypeName , type . getValueFields ( ) ) ) ; } if ( ! pojoProps . isEmpty ( ) ) { Map < String , Map < String , PojoPropertiesCache > > newPojosProps = new HashMap < > ( pojosProps ) ; newPojosProps . put ( cacheName , pojoProps ) ; pojosProps = newPojosProps ; } }
target:  Prepare internal store specific builders for provided types metadata.