@Override protected <T> Object resolveCommandTarget(CommandMessage<?> msg, T parent, Field field, EntityModel<Object> childEntityModel) { Map<String, Property<Object>> commandHandlerRoutingKeys = extractCommandHandlerRoutingKeys(field, childEntityModel); Object routingValue = commandHandlerRoutingKeys.get(msg.getCommandName()) .getValue(msg.getPayload()); Iterable<?> iterable = ReflectionUtils.getFieldValue(field, parent); return StreamSupport.stream(iterable.spliterator(), false) .filter(i -> Objects.equals(routingValue, childEntityModel.getIdentifier(i))) .findFirst() .orElse(null); }
@Override protected <T> Object resolveCommandTarget(CommandMessage<?> msg, T parent, Field field, EntityModel<Object> childEntityModel) { Map<String, Property<Object>> commandHandlerRoutingKeys = extractCommandHandlerRoutingKeys(field, childEntityModel); Object routingValue = commandHandlerRoutingKeys.get(msg.getCommandName()) .getValue(msg.getPayload()); Iterable<?> iterable = ReflectionUtils.getFieldValue(field, parent); return StreamSupport.stream(iterable.spliterator(), false) .filter(i -> Objects.equals(routingValue, childEntityModel.getIdentifier(i))) .findFirst() .orElse(null); }