/** * Prepare internal store specific builders for provided types metadata. * * @param cacheName Cache name to prepare builders for. * @param types Collection of types. * @throws CacheException If failed to prepare internal builders for types. */ @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; } }
String mthName = capitalFirst(fldName); Method getter = methodByName(cls, "get" + mthName); getter = methodByName(cls, "is" + mthName); getter = methodByName(cls, fldName); Method setter = methodByName(cls, "set" + mthName, jdbcFld.getJavaFieldType()); setter = methodByName(cls, fldName, jdbcFld.getJavaFieldType());
String mthName = capitalFirst(fldName); Method getter = methodByName(cls, "get" + mthName); getter = methodByName(cls, "is" + mthName); getter = methodByName(cls, fldName); Method setter = methodByName(cls, "set" + mthName, jdbcFld.getJavaFieldType()); setter = methodByName(cls, fldName, jdbcFld.getJavaFieldType());
/** * Prepare internal store specific builders for provided types metadata. * * @param cacheName Cache name to prepare builders for. * @param types Collection of types. * @throws CacheException If failed to prepare internal builders for types. */ @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; } }