private ClassMeta<T> prepareClassMetaForDiscriminator(ClassMeta<T> classMeta, MapperConfig<K, ROW> mapperConfig) { List<MapperConfig.Discriminator<ROW, ?>> discriminators = mapperConfig.getDiscriminators(); if (discriminators.isEmpty()) { return classMeta; } else { Map<Class<?>, List<ClassMeta<?>>> discriminatorMap = new HashMap<Class<?>, List<ClassMeta<?>>>(); for(MapperConfig.Discriminator<?, ?> d : discriminators) { List<ClassMeta<?>> implementations = new ArrayList<ClassMeta<?>>(); for(MapperConfig.DiscriminatorCase<?, ?> dc : d.cases) { implementations.add(dc.classMeta); } discriminatorMap.put(TypeHelper.toClass(d.type), implementations); } DiscriminatorReflectionService dfs = new DiscriminatorReflectionService(classMeta.getReflectionService(), discriminatorMap); return classMeta.withReflectionService(dfs); } }
private ClassMeta<T> prepareClassMetaForDiscriminator(ClassMeta<T> classMeta, MapperConfig<K, ROW> mapperConfig) { List<MapperConfig.Discriminator<ROW, ?>> discriminators = mapperConfig.getDiscriminators(); if (discriminators.isEmpty()) { return classMeta; } else { Map<Class<?>, List<ClassMeta<?>>> discriminatorMap = new HashMap<Class<?>, List<ClassMeta<?>>>(); for(MapperConfig.Discriminator<?, ?> d : discriminators) { List<ClassMeta<?>> implementations = new ArrayList<ClassMeta<?>>(); for(MapperConfig.DiscriminatorCase<?, ?> dc : d.cases) { implementations.add(dc.classMeta); } discriminatorMap.put(TypeHelper.toClass(d.type), implementations); } DiscriminatorReflectionService dfs = new DiscriminatorReflectionService(classMeta.getReflectionService(), discriminatorMap); return classMeta.withReflectionService(dfs); } }