@Override public Map<String, ?> apply(Map<String, ?> childKeys, String pathPrefix) { // Adjust the name to add the table suffix to table.name.realtime/table.name.offline List<String> tableTypes = childKeys.get("table.types").map(tableTypesListOrString -> { if (tableTypesListOrString instanceof String) { return List.of((String) tableTypesListOrString); } else if (tableTypesListOrString instanceof Collection) { return List.ofAll((Collection<String>) tableTypesListOrString); } else { return List.empty(); } }).getOrElse(List.empty()).map(Object::toString); String tableName = childKeys.get("table.name").map(Object::toString).getOrElse( () -> childKeys.get("table.name.realtime").map(Object::toString) .getOrElse(() -> childKeys.get("table.name.offline").map(Object::toString).getOrNull())); Map<String, Object> remappedConfig = (Map<String, Object>) childKeys; for (String tableType : tableTypes) { String tableNameKey = "table.name." + tableType.toLowerCase(); CommonConstants.Helix.TableType type = CommonConstants.Helix.TableType.valueOf(tableType.toUpperCase()); remappedConfig = remappedConfig.put(tableNameKey, TableNameBuilder.forType(type).tableNameWithType(tableName)); } remappedConfig = remappedConfig.remove("table.name"); return remappedConfig; }
.map(t -> t._2 + ": " + t._3.getOrNull()); throw new NoSuchMapperException(type + " cannot be mapped. " + "If tuple columns are configured (TupleMappers config class), "
public Option<EventStore> getEventStore(EventStoreName eventStoreName) { return Option.of(eventstores.computeIfAbsent(eventStoreName, name -> createEventStore(name).getOrNull())); }
public Option<EventStream> getEventStream(EventStreamId eventStreamId) { return Option.of(eventstreams.computeIfAbsent(eventStreamId, definition -> getEventStore(eventStreamId .eventStoreName()).map(eventStore -> new EventStream(eventStore, eventStreamId)).getOrNull())); }