static Event fromKeywordMap(Map<Keyword, ?> map) { Map<Keyword, ?> encodedMap = EventUtils.encodeNemesis(map); Map<String, Object> convertedMap = new HashMap<>(); EntryStream.of(encodedMap) .mapKeys(Keyword::getName) .mapValues(value -> value != null && value instanceof Keyword ? ((Keyword) value).getName() : value) .forKeyValue(convertedMap::put); return OBJECT_MAPPER.convertValue(convertedMap, Event.class); }
private static List<Map<Keyword, ?>> getClojureMapFromFile(String resourcePath) throws IOException { List<Map<String, ?>> allEvents = new ObjectMapper().readValue(Resources.getResource(resourcePath), new TypeReference<List<Map<String, ?>>>() {}); return allEvents.stream() .map(singleEvent -> { Map<Keyword, Object> convertedEvent = new HashMap<>(); EntryStream.of(singleEvent) .mapKeys(Keyword::intern) .mapValues(value -> value instanceof String ? Keyword.intern((String) value) : value) .forKeyValue(convertedEvent::put); return convertedEvent; }) .collect(Collectors.toList()); } }
@PostConstruct protected void configure() { /* * Custom {@link ClassMap}s registration from spring application context */ classMaps.forEach(factory::registerClassMap); /* * Custom {@link ClassMapBuilder}s registration from spring application * context */ classMapBuilders.forEach(factory::registerClassMap); /* * Register custom interface/parent to implementation mappings from * spring application context */ StreamEx.of(classMappings).flatMapToEntry(c -> c.getClassMapping()).forKeyValue(factory::registerConcreteType); /* * Custom {@link Mapper}s registration from spring application context */ mappers.forEach(factory::registerMapper); /* * Custom {@link Converter) registration from spring application context */ converters.forEach(factory.getConverterFactory()::registerConverter); /* * Custom {@link ObjectFactory) registration from spring application */ objectFactoryDefenitions.forEach(this::registerObjectFactories); facade = factory.getMapperFacade(); }